ykozhemiaka / simple-permission
PHP的简单权限处理。
v1.0.0
2019-10-21 11:33 UTC
Requires
- illuminate/database: ^6.3
Requires (Dev)
- phpunit/phpunit: 8
- symfony/var-dumper: ^4.3
This package is auto-updated.
Last update: 2024-09-29 05:42:29 UTC
README
PHP的简单权限管理。
入门指南
以下说明将帮助您快速开始PHP项目的简单权限管理。
安装
- 在
composer.json
中要求此包
composer require ykozhemiaka/simple-permission
- 在开始使用此包提供的所有命令之前,您应该初始化
Capsule
(例如在index.php
中初始化应用程序)
use Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'simple_permissions', 'username' => 'root', 'password' => '', 'charset' => 'utf8mb4' ]); $capsule->setAsGlobal(); $capsule->bootEloquent();
- 在要求此包后,您应该创建所有必要的表。
如果您已经创建了users
表,则无法执行以下指令,但如果您的数据库中没有users
表,您应该执行以下脚本以创建表。
use SimplePermission\Database\Schemas\UsersSchema; $userSchema = new UsersSchema($capsule); $userSchema->createTable();
- 接下来,您需要创建与权限表相关联的几个表。
use SimplePermission\Database\Schemas\PermissionSchemas; $permissionSchemas = new PermissionSchemas($capsule); $permissionSchemas->createTable();
- 如果表users的名称不是
users
,您应该在SimplePermission\Models\User.php
中设置自定义名称
namespace SimplePermission\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { use HasPermission; protected $table = 'custom-table-name'; ...
快速入门
权限管理
- 创建新的权限“编辑文章”。
use SimplePermission\Repositories\PermissionRepository; $permissionRepo = new PermissionRepository(); $permission = $permissionRepo->create('Edit article');
- 更新上述创建的权限。
$id = 1; $permission = $permissionRepo->update('Edit posts', 1)
- 按名称删除权限
$permissionRepo->deleteByName('Edit article');
或按id删除
$permissionRepo->deleteById(2)
- 将角色分配给权限
$role = Role::find(1); //or you can use role id $role = 1; $permission = $permissionRepo->whereId(1)->assignRole($role);
- 从角色撤销权限
$permissionRepo->whereId(1)->terminateToRole($role);
通过用户管理权限
- 授予用户权限。
$user = User::find(1); $role = Role::find(1); //or you can use role id $role = 1; $permission = Permission::find(1); //or you can use permission id $permission = 1; $user->allowTo($permission);
- 将角色分配给用户。
$user->grantRole($role);
- 验证权限。
$user->ableTo('Edit posts');
- 验证角色。
$user->hasRole('Admin');
- 撤销权限。
$user->terminateToPermission($permission);
- 撤销角色。
$user->terminateToRole($role);
角色管理
- 创建角色。
$roleRepo = new RoleRepository(); $role = $roleRepo->create('Admin');
- 检索附加到角色的所有权限。
$role->permissions;
- 更新角色。
$role = $roleRepo->update('Moderator', $role->id);
- 按名称删除
$roleRepo->deleteByName($role->name);
或按id删除
$roleRepo->deleteById($role->id);
- 将权限附加到角色。
$role = $roleRepo->whereId(1)->grant($permission)
- 将角色分配给用户。
$role = $roleRepo->whereId(1)->assignRoleTo($user)
- 从用户撤销角色。
$roleTerminate = $roleRepo->whereId(1)->terminateToUser($user);
- 从用户撤销权限。
$role = $roleRepo->whereId(1)->terminateToPermission($permission);
构建于
- illuminate/database - Illuminate数据库组件是PHP的完整数据库工具包。
作者
- Yaroslav Kozhemiaka - 初始工作 - Yaroslav Kozhemiaka