跳至主要内容

用户与权限

Pagekit配备了预设的注册流程和强大的用户管理器。有了这些用户,你的扩展可以轻松利用角色和权限。

概念

用户是注册于您网站并以用户名识别的个人的代表。用户账户的状态可以是活跃的、被封的新的。用户可以登录您的网站或管理区。并非所有用户的账户都被允许访问管理员区。

权限定义了用户可以执行的作。许可通过名称标识,例如。权限名称应具描述性,并以相应模块名称开头,例如: 对于用户模块。user: access admin areauser:

角色将多个用户账户分组在一起。所有拥有相同角色的用户共享相同的权限。角色也用于管理对网站内容元素的访问。用户可以属于零、一个或多个角色。一个角色可以被分配任意数量的用户。Pagekit默认包含匿名、认证管理员三个角色,允许你创建更多角色。

只显示特定角色的内容

角色的使用非常灵活。你可以创建只有特定用户才能访问的特定内容。

  1. 用户>角色中创建一个名为高级角色的新角色。不要给这个角色分配任何权限。
  2. “用户>列表”中,点击用户账户编辑个人资料,并为该用户启用新的高级角色。
  3. 网站区域的每个页面,你都能在侧边栏看到“限制访问”部分。确保只选择高级角色,别选其他角色。

此项将仅对已登录的高级会员用户可见。

 

注释

除非你把用户也加到高级权限,或者在限制访问设置中启用管理员,否则你的管理员账户也看不到这些内容。

 

模块定义中的寄存器权限

要在系统区域添加权限,然后可以分配给角色,请在扩展文件中使用关键词。permissionsindex.php

使用使用发言权限的名字。惯例是以扩展名开头,然后用简短的短语描述权限,全部小写。是浏览器中显示的字符串。调用确保该字符串可翻译。title_()

'permissions' => [
    'hello: manage settings' => [
        'title' => _('Manage settings')
    ],
],

检查用户是否有特定ID的角色。

$role_id = 4;
App::user()->hasRole($role_id);

检查用户是否拥有指定名称的角色。

$role_name = "Editor";
$role = Role::where('name = ?', [$role_name])->first();
App::user()->hasRole($role->id);