techlify-inc/laravel-rbac

Laravel 基于角色的访问控制

1.2.2 2019-08-05 16:35 UTC

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