常见的CMS角色和访问级别

时间:2009-07-28 10:47:04

标签: php permissions content-management-system roles access-levels

我目前正在编写CMS并记住有人(可能已经在这里)批评现有的CMS没有足够强大的用户权限系统。我有一个计划出来的方法,但我觉得它已经落入了通常的陷阱,因为它太精细了,这使得理解和实施它对最终用户来说是一种恐怖。

我认为拥有一系列具有权限的默认用户角色就是答案,所以我想我的问题是:

您希望在CMS中看到哪些默认角色以及与这些角色相关联的权限类型?

提前致谢!

9 个答案:

答案 0 :(得分:24)

这是我在大多数项目中最终获得的“最佳实践”,并且非常满意:

<强> 1。角色

说到角色,我建议有很大的灵活性,即能够自由地创建和定义用户帐户和组(像“贡献者”,“经理”等角色)不是硬编码的,而是放入可根据应用程序更改的配置文件。角色配置对用户来说是不可访问的,但引擎本身应该没有硬编码角色。

<强> 2。版权

权利是需要易于理解和实施的地方。

我在代码/ API级别上使用非常细粒度的权利时,已经取得了非常好的经验:

  • 视图
  • 修改
  • 更改名称
  • 重命名
  • 删除
  • 移动
  • 更改权利

用户永远不会看到。对于他们来说,他们分组成为极少数“正确的群体”:

  • 只读
  • 修改
  • 管理=移动,重命名....

用户永远不会看到“移动”权限,只能看到“管理”权限组。

这样,您保留代码中的细粒度权利的全部功能 - 例如,您可以轻松适应“实习生必须能够编辑页面”这样的规则,但无法更改其标题,也无法删除它们“,为CMS添加了宝贵的资产。对于最终用户,此功能仍然不可见,并且权限系统易于使用。

答案 1 :(得分:18)

asked this question前一点,得到了以下回应。

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

答案 2 :(得分:8)

您是否研究过RBAC等现有解决方案?虽然这样的系统很可能对于你试图破解的特定螺母完全过度杀伤,但这至少有助于增强你在正确轨道上的信心。

除此之外,我期望的一般角色将是:

管理员 - 完全控制系统,可以查看日志(因为您应该记录所有更改)等等......

发布商 - 可以直播内容...

作者 - 可以创建内容

但是,如何在整个系统中应用这些角色是件事变得棘手的问题,因为特定用户可能会对不同的内容区域/模块拥有不同的权利。

答案 3 :(得分:5)

对于大多数应用程序,我认为CMS也是如此,我的客户通常更喜欢以权利为导向的方法。这是怎么回事:

  1. 列出主要操作。在您的CMS中,它将是:创建和编辑内容;删除内容;对内容进行分类/分类;验证内容;发布内容;管理用户;等
  2. 您可以定义每个用户允许或拒绝的操作
  3. 为了让事情变得更好,您可以创建多个角色(编辑器;管理员),以便更轻松地创建典型用户(通过在选择角色时预先填写表单)。

答案 4 :(得分:2)

我有一个基于Zend Framework构建的自定义CMS,它使用Zend的ACL来扩展一些基本角色(因此您可以专门为其他用户拒绝资源或允许其他人访问他们通常无法访问的资源)。我的基本角色从CMS用户一直到网站“成员”如下(我只使用一个用户表来存储我的所有身份验证)。

<强>开发

编辑任何内容,编辑布局,设置,配置。使用可以调用shell脚本并强制执行cron作业的特殊工具。

管理

编辑任何内容,编辑布局,设置。

<强>作者

修改内容。

<强>会员

可以查看登录界面,忘记密码和错误报告。

现在,Zend有一个很好的ACL实现,因此您可以轻松扩展基本ACL类并添加从基本角色扩展的新角色。因此,我可以让“管理员”访问其中一个开发人员工具(例如清除或缓存管理)或锁定作者只能管理博客(而不是例如新闻)。

答案 5 :(得分:2)

我不一定会忽略你现在拥有的细粒度控制系统。如果您有一个适应性强调通过提供简化的界面(例如使用外观模式或适配器模式)来隐藏复杂性。好处是您为用户提供简化版本(简单权限,如'admin'可以'删除''帖子'),同时如果您以后需要它们仍保留细粒度功能(例如,更复杂的权限处理是允许删除帖子是你在X类别中的帖子时的帖子。然后,您可以在某些地方为该需求提供简化版本的替代方案。

答案 6 :(得分:2)

管理员:拥有所有权利的人

作者:对特定内容拥有所有权利的人(如拥有该博客的博客作者)也具有添加/邀请用户协作/查看内容的权限

协作者:可以编辑/添加作者授予权限的内容的人,无法删除内容或邀请/添加更多协作者

查看器:如果作者邀请观看,则可以查看内容的人

编辑:可以批准/编辑所有类型内容的人

如果您希望高级用户/开发人员使用CMS,那么精细控制颗粒并不是一个坏主意。但对于新手CMS管理员来说,基本角色使系统更加可用。

答案 7 :(得分:1)

管理员 - 可以创建用户+以下所有

编辑 - 可以编辑其他人的帖子+以下所有

作者 - 可以撰写帖子,编辑自己的帖子

答案 8 :(得分:0)

创作者 - 负责创建和编辑内容。

编辑 - 负责调整内容消息 和交付方式,包括翻译和 定位。

发布商 - 负责发布内容 使用

管理员 - 负责管理访问权限 对文件夹和文件的权限,通常是完成的 通过为用户组或角色分配访问权限。

消费者,观众或来宾 - 阅读或阅读的人 否则在发布后收录内容或 共享。