我熟悉多种用于Web管理应用程序的用户身份验证方式,甚至还了解各种保持授权状态的技术...
然而,我的问题是,您如何推荐我实现一个细粒度的访问控制机制,提供以下功能:
1. 用户属于“角色”或“组”,例如“销售员”,“计划”等。 2. 管理员菜单系统仅显示与用户角色相关的“页面”功能。 3. 这些页面中的特定功能具有约束条件-例如,在“新预订”页面上,“销售员”用户只能“在未来”发出预订,并且在“编辑预订”页面上可以“从现在起一周内”编辑预订。但是,“计划”用户可能被允许“向前一个星期”进行回顾性预订,并且可以编辑自己进行的“任何时间段”的预订,但只能编辑其他人进行的预订,“直到明天”...
我知道我可以实现基本的基于角色的系统来满足第1点...我觉得我应该将整个应用程序拆分成代码块,每个块都有自己的对象ID-权限ID关系,以便我可以扫描权限数据库以查看哪些对象可用-这将帮助我完成第2点。
任何想法如何构建表单控件,例如,仅为“销售”用户显示将来的日期(但为计划用户显示最多“一周前”的日期),然后将其与POST解析器中的一行配对,以检查日期是否实际上在预期范围内?我已经尝试过保存每个代码块到数据库中的想法,然后有一个对象表根据权限表动态构建代码,这样服务器上唯一的“文件”就是db连接文件!欢迎任何想法...(即使您的背景不是php / MySQL)
然而,我的问题是,您如何推荐我实现一个细粒度的访问控制机制,提供以下功能:
1. 用户属于“角色”或“组”,例如“销售员”,“计划”等。 2. 管理员菜单系统仅显示与用户角色相关的“页面”功能。 3. 这些页面中的特定功能具有约束条件-例如,在“新预订”页面上,“销售员”用户只能“在未来”发出预订,并且在“编辑预订”页面上可以“从现在起一周内”编辑预订。但是,“计划”用户可能被允许“向前一个星期”进行回顾性预订,并且可以编辑自己进行的“任何时间段”的预订,但只能编辑其他人进行的预订,“直到明天”...
我知道我可以实现基本的基于角色的系统来满足第1点...我觉得我应该将整个应用程序拆分成代码块,每个块都有自己的对象ID-权限ID关系,以便我可以扫描权限数据库以查看哪些对象可用-这将帮助我完成第2点。
任何想法如何构建表单控件,例如,仅为“销售”用户显示将来的日期(但为计划用户显示最多“一周前”的日期),然后将其与POST解析器中的一行配对,以检查日期是否实际上在预期范围内?我已经尝试过保存每个代码块到数据库中的想法,然后有一个对象表根据权限表动态构建代码,这样服务器上唯一的“文件”就是db连接文件!欢迎任何想法...(即使您的背景不是php / MySQL)
以下是Zed Shaw在CUSEC演讲中探讨“ACL已死”的更多见解 - http://vimeo.com/2723800