我目前正在写一个CMS和记得有人(可能已经在这里)批评现有的CMS不具有足够强大的用户权限系统。 我有计划进行的方法,但我觉得它已经陷入被有点过于细粒度,这使得理解和执行它为最终用户提供恐怖通常陷阱。
我认为有一个范围与权限默认用户角色将是这个问题的答案,所以我想我的问题是这样的:
什么是你想在一个CMS看到和什么样的权限将与这些关联的默认角色?
提前致谢!
我目前正在写一个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 ? 虽然这样的系统将最有可能为某些特定的螺母完整的矫枉过正,你试图破解它至少有助于提高你是在正确的轨道上的信心。
这且不说,我期望的一般角色将是沿着线:
Administator -系统的完全控制,可以查看日志(你应该记录所有的变化 )等加...
出版商 -可以把内容直播加...
作者 -可以创建内容
然而,这些角色是如何在整个系统中应用的情况变得有些棘手,因为一个特定的用户大概有不同的权限,不同的内容区域/模块。
对于大多数应用程序,所以我认为这将是对CMS的也是如此,我的客户通常喜欢以权利为导向的方法。 这是怎么一回事呢:
为了让事情变得更好,你可以创建多个角色(编辑;管理员),使普通用户创建更容易(通过预填表选择角色时)。
我有一个自定义的CMS建立在使用Zend的ACL来扩展一些基本的角色Zend框架(这样你就可以明确否认资源,获取更多的用户或者允许他人访问他们通常不能资源)。 我的基本角色从CMS用户走一路下跌到网站“会员”如下(我只使用一个用户表来存储我所有的认证)。
开发人员
编辑任何内容,编辑布局,设置,配置。 使用可以调用shell脚本和力cron作业专用工具。
管理员
编辑任何内容,编辑布局,设置。
作者
编辑内容。
会员
可以查看登录屏幕,忘记密码和bug报告。
现在,Zend公司有一个很好的ACL实现,所以你可以很容易地扩展您的基础ACL类并添加从基本的角色扩展新的角色。 所以,我可能会做一个“管理员”谁有权访问的开发工具之一(如清洗或高速缓存管理),或锁定一个作家只能够管理博客(而不是例如新闻)。
我不一定会解雇你现在有细粒度的控制系统。 如果你有一个是适应专注于通过提供简化的接口隐藏掉复杂性(如使用门面模式或适配器模式)。 好处是,你提供的简化版本的用户(简单的权限,如“管理员”可以“删除”一个“后”),同时仍然保留了细粒度的功能,便于您以后(如更复杂的权限处理是允许删除当职位是在X类自己的职位)的职位。 然后,你可以提供的简化版本对于需要在一些地方的替代品。
admin表示一个与所有的权利
作者 :谁拥有的所有权利的具体内容(如博客作者谁拥有博客)之一,也有权限添加/邀请用户进行协作/查看内容
合作者 :谁可以编辑/添加内容,作者给了权利,不能删除内容或邀请/添加更多合作者的一个
观众 :如果作者已经邀请观看谁可以查看内容的一个
编辑 :谁可以批准/编辑所有类型的内容中选择一个
有一个精细控制是不是如果你指望高级用户/开发者使用的CMS是一个坏主意。 但对于新手CMS管理人员,其基本作用使系统更有用。
管理员 - 可以创建+用户的所有下方
编辑器 - 可以编辑他人+以下所有的帖子
作者 - 可以写帖子,编辑自己的帖子
创建者 -负责创建和编辑内容。
编辑器 -负责调整内容信息和交付的风格,包括翻译和本地化。
发布者 -负责释放使用的内容。
管理员 -负责管理访问权限的文件夹和文件,通常是通过用户组或角色分配访问权限来实现的。
消费者,观众或客人 -谁读或以其他方式在发布或共享后内容需要的人。