[英]Common CMS roles and access levels
我目前正在编写CMS并记住有人(可能已经在这里)批评现有的CMS没有足够强大的用户权限系统。 我有一个计划出来的方法,但我觉得它已陷入通常的陷阱,因为它太精细了,这使得理解和实施它对最终用户来说是一种恐怖。
我认为拥有一系列具有权限的默认用户角色就是答案,所以我想我的问题是:
您希望在CMS中看到哪些默认角色以及与这些角色相关联的权限类型?
提前致谢!
这是我在大多数项目中最终得到的“最佳实践”,我非常满意:
1.角色
谈到角色时,我建议灵活性很高,即能够自由创建和定义用户帐户和组(“贡献者”,“管理员”等角色)不是硬编码的,而是放入可以是的配置文件中。根据申请变更) 。 角色配置对用户来说是不可访问的,但引擎本身应该没有硬编码角色。
2.权利
权利是需要易于理解和实施的地方 。
我在代码/ API级别上使用并检查了非常细粒度的权限,我已经取得了非常好的经验:
但用户从未见过这些 。 对于他们来说,他们被归为极少数“正确的群体”:
用户永远不会看到“移动”权限,只能看到“管理”权限组。
这样,您可以在未来的代码中保留细粒度权限的全部功能 - 例如,您可以轻松地适应“实习生必须能够编辑页面但无法更改其标题的规则”,也不删除它们“,向CMS添加有价值的资产。 对于最终用户,此功能仍然不可见,并且权限系统易于使用。
我刚才问了这个问题并得到了以下回复。
admin //Manage everything
manager //Manage most aspects of the site
editor //Scheduling and managing content
author //Write important content
contributors //Authors with limited rights
moderator //Moderate user content
member //Special user access
subscriber //Paying Average Joe
user //Average Joe
您是否研究过RBAC等现有解决方案? 虽然这样的系统很可能对特定的坚果来说是完全矫枉过正的,但是你试图破解它至少有助于增强你对正确轨道的信心。
除此之外,我期望的一般角色将是:
管理员 - 对系统的完全控制,可以查看日志(因为您应该记录所有更改 )等等......
发布者 - 可以直播内容加...
作者 - 可以创建内容
但是,如何在整个系统中应用这些角色是一件非常棘手的事情,因为特定用户可能会对不同的内容区域/模块拥有不同的权限。
对于大多数应用程序,我认为对于CMS也是如此,我的客户通常更喜欢以权利为导向的方法。 这是怎么回事:
为了使事情变得更好,您可以创建多个角色(编辑器;管理员)以简化典型用户创建(通过在选择角色时预填表单)。
我有一个基于Zend Framework构建的自定义CMS,它使用Zend的ACL来扩展一些基本角色(因此您可以专门为其他用户拒绝资源或允许其他人访问他们通常无法访问的资源)。 我的基本角色从CMS用户一直到网站“成员”如下(我只使用一个用户表来存储我的所有身份验证)。
开发人员
编辑任何内容,编辑布局,设置,配置。 使用可以调用shell脚本和强制cron作业的特殊工具。
管理员
编辑任何内容,编辑布局,设置。
作者
编辑内容。
会员
可以查看登录界面,忘记密码和错误报告。
现在,Zend有一个很好的ACL实现,因此您可以轻松扩展基本ACL类并添加从基本角色扩展的新角色。 因此,我可以让“管理员”访问其中一个开发人员工具(例如清除或缓存管理)或锁定作者只能管理博客(而不是例如新闻)。
我不一定会忽略你现在拥有的细粒度控制系统。 如果您有一个适应性强调通过提供简化的界面(例如使用外观模式或适配器模式)来隐藏复杂性。 好处是您为用户提供简化版本(简单权限,如'admin'可以'删除''帖子'),同时如果您以后需要它们仍保留细粒度功能(例如,更复杂的权限处理是允许删除帖子是你在X类别中的帖子时的帖子。 然后,您可以在某些地方为该需求提供简化版本的替代方案。
管理员 :拥有所有权利的人
作者 :对特定内容拥有所有权利的人(如拥有博客的博客作者),也有权添加/邀请用户协作/查看内容
协作者 :可以编辑/添加作者授予权限的内容的人,无法删除内容或邀请/添加更多协作者
查看者 :如果作者邀请查看,则可以查看内容的人
编辑 :可以批准/编辑所有类型内容的人
如果您希望高级用户/开发人员使用CMS,那么精细控制颗粒并不是一个坏主意。 但对于新手CMS管理员来说,基本角色使系统更加实用。
管理员 - 可以在下面创建用户+全部
编辑 - 可以编辑其他人的帖子+以下全部
作者 - 可以撰写帖子,编辑自己的帖子
创作者 - 负责创建和编辑内容。
编辑 - 负责调整内容消息和交付方式,包括翻译和本地化。
发布者 - 负责发布内容以供使用。
管理员 - 负责管理对文件夹和文件的访问权限,通常通过为用户组或角色分配访问权限来完成。
消费者,观众或访客 - 在发布或共享内容后阅读或以其他方式接收内容的人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.