【发布时间】:2021-05-12 02:37:21
【问题描述】:
我正在创建一个所有用户都拥有不同类型权限的网站。
我没有执行基于角色的权限。
用户可以加入不同的群组,并为每个群组获得不同的权限。
我在这里苦苦挣扎的部分是如何处理管理员(组创建者)权限。
管理员权限与普通用户略有不同,因为即使添加了新权限,管理员也始终可以访问每个权限。
虽然用户必须由管理员授予权限。但管理员可以将所有权限授予用户,但编辑管理员权限除外。
我想我可以有一张桌子,上面有UsersId、PermissionId、Type(Admin/User)、GroupID。
每个组只有 1 名管理员。但是对我来说似乎很愚蠢的部分是如果我们(应用程序)要添加另一个权限功能。我们必须用type = Admin 查询每个UserID,并为该权限插入一条记录。这似乎非常低效。有没有更好的方法可以做到这一点?
【问题讨论】:
-
有一个特殊的 PermissionId,它对您的系统意味着“全部”。或者,如果 Type 为 Admin,则忽略 PermissionId。或者,有一个特殊的 PermissionId 表示“管理员”并完全删除 Type 字段。
-
另一个权限能力可能是什么? (虽然我想我可以看到为什么基于角色的权限很受欢迎)
-
是的,角色是个好主意,但这个应用程序不会有角色。它主要是允许组中的每个用户访问由管理员或其他指定用户设置的组中的功能。它真的只是
Super admin和users
标签: mysql database data-structures permissions