我正在寻找有关为基于网络的应用程序设计权限名称的信息来源。
例如,如果我想要创建新员工成员的权限,可能会将其称为create_staff
,new_employee
,add_worker
或同一事物的任意数量的不同名称
此新员工权限可能需要多个“父”权限才能运作; edit_employee_name
,update_date_of_birth
等。目前,在这些“父级”权限的名称上,无法将其与子级权限区分开来。
我们正在使用php和MySQL进行编码,(目前正在使用phpGACL),但欢迎来自任何其他语言的方法。谢谢!
答案 0 :(得分:0)
你可以从linux中找到灵感,其权利是“读”,“写”和“执行”,并将这些或类似的动词添加到你自己的名词中。 (我认为你走在正确的轨道上。)
您要搜索的字词很可能是ACL(访问控制列表)。 Zend_Acl
是此模式的PHP实现,它支持非常精细的解决方案,如继承。 This article有望成为使用Zend_Acl
的良好指南,即使您还不熟悉Zend Framework。 MySQL非常适合作为Zend_Acl
的设计存储。
我认为您的示例看起来很好,但请记住在您的措辞中保持一致。对此的解决方案可能包括发布一个小指南或让一个人命名所有规则。
回答评论:
你真的应该和那些参与者(包括设计师和用户)讨论ACL,看看他们喜欢什么。起点可以是verb_noun(s)
。确保每个规则都可以用真或假来回答,否则规则不明确。确保设计师和用户知道每个名词和动词在您的上下文中的含义,这包括域/业务逻辑。还要确保不使用可能的业务条款,例如,如果您的企业使用的组合名称可能意味着“dev-speak”中的不同内容 - 请勿使用它。另一个可以帮助的规则:避免stop words。
设计师& users = devs和那些曾读过规则名称的人:)