ykozhemiaka/simple-permission

v1.0.0 2019-10-21 11:33 UTC

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);

构建于

作者