用户与权限
Pagekit配备了预设的注册流程和强大的用户管理器。有了这些用户,你的扩展可以轻松利用角色和权限。
概念
用户是注册于您网站并以用户名识别的个人的代表。用户账户的状态可以是活跃的、被封的或新的。用户可以登录您的网站或管理区。并非所有用户的账户都被允许访问管理员区。
权限定义了用户可以执行的作。许可通过名称标识,例如。权限名称应具描述性,并以相应模块名称开头,例如: 对于用户模块。user: access admin areauser:
角色将多个用户账户分组在一起。所有拥有相同角色的用户共享相同的权限。角色也用于管理对网站内容元素的访问。用户可以属于零、一个或多个角色。一个角色可以被分配任意数量的用户。Pagekit默认包含匿名、认证和管理员三个角色,允许你创建更多角色。
只显示特定角色的内容
角色的使用非常灵活。你可以创建只有特定用户才能访问的特定内容。
- 在用户>角色中创建一个名为高级角色的新角色。不要给这个角色分配任何权限。
- 在“用户>列表”中,点击用户账户编辑个人资料,并为该用户启用新的高级角色。
- 在网站区域的每个页面,你都能在侧边栏看到“限制访问”部分。确保只选择高级角色,别选其他角色。
此项将仅对已登录的高级会员用户可见。
注释
除非你把用户也加到高级权限,或者在限制访问设置中启用管理员,否则你的管理员账户也看不到这些内容。
模块定义中的寄存器权限
要在系统区域添加权限,然后可以分配给角色,请在扩展文件中使用关键词。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);