跳至主要内容
截屏视频 06 用户和权限

用户与权限

Pagekit 配备了强大的用户系统,你可以灵活地使用。在这篇文章中,我们将为你简要介绍你需要了解的所有内容。

你可以在管理界面启用公开用户注册或创建账户。无论哪种情况,理解权限和角色的概念都很重要。作为开发者,你也可以在扩展代码中作用户账户。

视频地址(YouTube):https://www.youtube.com/watch?v=KMbcMU68n_Q

核心概念

权限定义了用户可以执行哪些作。许可通过唯一字符串标识,例如。该权限由模块定义。只有拥有此权限的用户才能登录管理员区域。user: access admin areauser

角色将多个用户账户分组在一起。所有拥有相同角色的用户共享相同的权限。角色也用于管理对网站内容元素的访问。Pagekit 有默认角色,还允许你添加自己的角色。

只显示特定角色的内容

角色可以用于多种任务。例如,创建只有特定用户才能访问的特殊内容。

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

此项现仅对“高级”角色登录用户可见。

请注意,管理员账户默认无法看到这些内容。将管理员用户添加到“高级”角色,或在限制访问设置中启用“管理员”。

模块定义中的寄存器权限

要添加新权限,请使用扩展中的关键字。你可以在管理员区域为角色分配这个权限。permissionsindex.php

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

通过控制器作检查权限

要检查 Pagekit 扩展中的权限,有几种可能性。

以下示例假设 Pagekit 应用程序可用。一定要把这个加到你的控制器类文件顶部。

use Pagekit\Application as App;

获取当前登录的用户。如果没有用户登录,这将返回属于匿名角色的用户对象。

$user = App::user();

检查用户的访问权限。当用户被分配到其某个角色权限,或是管理员时,这个请求会返回。true

if(!$user->hasAccess("hello: manage settings")) {
    return "Nope";
}

或者,使用控制器类或方法上方的注释。@Access

/**
* @Access("hello: manage settings")
*/

文献资料

在 Pagekit 文档中关于用户和权限的更多细节和示例中可找到。

评论与反馈

我们之所以讨论这个话题,是因为你们中有些人提出了请求。谢谢你的建议,请继续提供建议。欢迎在下方评论区留言,或加入我们的开发者聊天。

以下是所有现有屏幕录制教程的简短列表: