用户与权限
Pagekit 配备了强大的用户系统,你可以灵活地使用。在这篇文章中,我们将为你简要介绍你需要了解的所有内容。
你可以在管理界面启用公开用户注册或创建账户。无论哪种情况,理解权限和角色的概念都很重要。作为开发者,你也可以在扩展代码中作用户账户。
视频地址(YouTube):https://www.youtube.com/watch?v=KMbcMU68n_Q
核心概念
权限定义了用户可以执行哪些作。许可通过唯一字符串标识,例如。该权限由模块定义。只有拥有此权限的用户才能登录管理员区域。user: access admin areauser
角色将多个用户账户分组在一起。所有拥有相同角色的用户共享相同的权限。角色也用于管理对网站内容元素的访问。Pagekit 有默认角色,还允许你添加自己的角色。
只显示特定角色的内容
角色可以用于多种任务。例如,创建只有特定用户才能访问的特殊内容。
- 在用户>角色中,创建一个名为“高级”的新角色。不要给这个角色分配任何权限。
- 在用户>列表中,点击用户账户编辑个人资料并启用“高级”角色。保存你的更改。
- 在网站区域的每个页面,你都会在侧边栏看到“限制访问”部分。确保只选“高级”职位,别选其他。
此项现仅对“高级”角色登录用户可见。
请注意,管理员账户默认无法看到这些内容。将管理员用户添加到“高级”角色,或在限制访问设置中启用“管理员”。
模块定义中的寄存器权限
要添加新权限,请使用扩展中的关键字。你可以在管理员区域为角色分配这个权限。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 文档中关于用户和权限的更多细节和示例中可找到。
评论与反馈
我们之所以讨论这个话题,是因为你们中有些人提出了请求。谢谢你的建议,请继续提供建议。欢迎在下方评论区留言,或加入我们的开发者聊天。
以下是所有现有屏幕录制教程的简短列表: