techlify-inc / laravel-rbac
Laravel 基于角色的访问控制
1.2.2
2019-08-05 16:35 UTC
Requires
- php: >=7.1.3
- doctrine/dbal: >=2.6
- laravel/framework: >=5.6
- laravel/passport: >=6.0
- laravel/tinker: ^1.0
This package is not auto-updated.
Last update: 2024-09-24 09:11:12 UTC
README
这是另一个为 Laravel 提供基于角色的访问控制功能的包。这个包专注于保持简单和优雅。
安装
使用以下命令通过 composer 安装此包
composer require techlify-inc/laravel-rbac
运行迁移
$ php artisan migrate
将 Rbac 特性添加到您的 User 模型中
class User extends Authenticatable { use TechlifyInc\LaravelRbac\Traits\LaravelRbac; }
使用方法
角色
创建角色
use \TechlifyInc\LaravelRbac\Models\Role; $adminRole = Role::create([ 'name' => 'Administrator', 'slug' => 'admin' ]); $managerRole = Role::create([ 'name' => 'Manager', 'slug' => 'manager' ]);
分配和移除角色
您可以直接将角色附加到用户上
use App\User; $user = User::find(1); $user->attachRole($adminRole); //or you can attach using the role slug $user->attachRole("admin");
如果您想移除角色也是同样的操作
$user->detachRole($adminRole); //or you can remove using the role slug $user->detachRole("admin");
检查角色
您可以直接检查用户是否有角色
use App\User; $user = User::find(1); if ($user->hasRole('admin')) { }
权限
创建权限
use \TechlifyInc\LaravelRbac\Models\Permission; $createPermission = Permission::create([ 'name' => 'Create product', 'slug' => 'product.create' ]); $removePermission = Permission::create([ 'name' => 'Delete product', 'slug' => 'product.remove' ]);
附加和移除权限
您可以直接将权限附加到角色上
use \TechlifyInc\LaravelRbac\Models\Role; $adminRole = Role::find(1); $adminRole->attachPermission($createPermission); //or you can insert only slug $adminRole->attachPermission("product.create");
同样,您也可以移除权限
$adminRole->detachPermission($createPermission); $adminRole->detachPermission("product.create");
检查权限
您可以直接检查用户是否有权限
use App\User; $user = User::find(1); if ($user->hasPermission('product.create')) { } // OR for currently logged in user if (auth()->user()->hasPermission('product.create'))
您还可以从 v0.2 版本开始使用中间件在路由级别强制执行权限
Route::get("customers", "CustomerController@index")->middleware("LaravelRbacEnforcePermission:customer_view");
LaravelUserManagement 已合并到这个包中
这是一个为 Laravel 提供用户管理服务的简单包
安装
使用以下命令通过 composer 安装此包
composer require techlify-inc/laravel-user-management
运行迁移
$ php artisan migrate
使用方法
此包提供以下 API 服务,您的前端可以使用
用户管理
// Get the set of users GET api/users // Get a single user GET api/users/{id} // Add a new user POST api/users // Update a user record PATCH api/users/{id} // Delete a user record DELETE api/users/{id}
用户密码管理
// Change the current user password POST api/user/current/update-password {current_password, new_password}
用户会话管理
// Log out the currently logged in user POST api/user/logout // Get the User record of the currently logged in user GET api/user/current