kineticamobile / lumki
Laravel 9用户管理,支持Jetstream
v0.1.12
2023-02-16 07:32 UTC
Requires
- illuminate/support: ~5|~6|~7|~8|~9|^10.0
- lab404/laravel-impersonate: ^1.7
- spatie/laravel-permission: ^3.0|^4.0|^5.0
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3|~4|~5|~6|^8.0
- phpunit/phpunit: ~8.0|~9.0
- sempro/phpunit-pretty-print: ^1.0
README
Laravel 8 Jetstream用户管理(使用Spatie/LaravelPermissions和Lab404/LaravelImpersonate)。
功能
✓/⨯
安装
通过Composer
$ composer require kineticamobile/lumki
在至少有一个用户注册并关联权限的Laravel 8 Jetstream上设置
$ php artisan lumki:setup
设置说明
发布spatie/laravel-permissions
$ php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
发布lab404/laravel-permissions
$ php artisan vendor:publish --tag=impersonate
将权限特性添加到Models/User
Lumki::insertLineAfter( app_path("Models/User.php"), "use Laravel\Jetstream\HasProfilePhoto;", "use Spatie\Permission\Traits\HasRoles;" );
Lumki::insertLineAfter( app_path("Models/User.php"), "use HasProfilePhoto;", "use HasRoles;" );
将代理特性添加到Models/User
Lumki::insertLineAfter( app_path("Models/User.php"), "use Spatie\Permission\Traits\HasRoles;", "use Lab404\Impersonate\Models\Impersonate;" );
Lumki::insertLineAfter( app_path("Models/User.php"), "use HasRoles;", "use Impersonate;" );
运行迁移
$ php artisan migrate
添加代理路由
Lumki::insertLineBefore( base_path("routes/web.php"), "Route::get('/', function () {", "Route::impersonate();\n" );
在用户菜单中添加Lumki菜单项
Lumki::insertLineBefore( resource_path('views/navigation-dropdown.blade.php'), "@if (Laravel\Jetstream\Jetstream::hasApiFeatures())", "\n@lumki\n" );
添加角色/权限
$r1 = Role::firstOrCreate(["name" => "Superadmin"]); $r2 = Role::firstOrCreate(["name" => "Admin"]); $r3 = Role::firstOrCreate(["name" => "User"]); $p1 = Permission::firstOrCreate(['name' => 'manage users']); $r1->givePermissionTo('manage users'); $user = User::first(); $user->assignRole($r1); $user->assignRole($r2); $user->assignRole($r3);
用法
自定义路由前缀
要更改路由中的前缀lumki
,必须发布配置
$ php artisan vendor:publish --tag=lumki.config
现在,您可以根据需要编辑文件config/lumki.php
并将前缀从'lumki'更改为所需的任何内容,允许空字符串,如果此字段为null,则默认为' lumki'。
错误'GuardDoesNotMatch'
如果您在处理GuardDoesNotMatch错误,可能是您已修改了config/auth.php
文件中的提供程序
为了解决这个问题,您可以指定模型的保护程序名称。
例如:如果您使用的是User模型,但使用LdapRecord通过ldap连接,您可以通过在上面的User模型中添加代码来解决此问题
class User extends Authenticatable { // ... public function guardName(){ return "web"; } }
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息和工作清单,请参阅contributing.md。
安全
如果您发现任何与安全相关的问题,请通过作者电子邮件而不是问题跟踪器来联系。
鸣谢
许可证
许可证。有关更多信息,请参阅许可证文件。