当前位置: 首页 > 面试题库 >

根据信誉实施权限[关闭]

邓光耀
2023-03-14
问题内容

已关闭 。这个问题需要更加集中。它当前不接受答案。

想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。

3年前关闭。

我正在创建一个网站,其中有项目,用户和每个用户或用户组的权限。这是一个社区协作工具,我有4个不同的权限:

  • 创建者-进行更改,接受更改,更改权限
  • 接受变更
  • 做出改变
  • 视图

如何在数据库中为用户组实现这种权限系统?

编辑:组/权限由信誉定义,例如在StackOverflow上。

编辑2-更详细:每个文件都需要具有权限,项目需要新创建文件的默认权限,并且我还需要设置MySQL数据库权限。


问题答案:
user_table
id, etc

permission table
id, user_id, permission_type

通过这种结构,每个用户可以具有与其帐户相关联的几种权限类型,每种权限类型 可以 访问的一组权限类型。您将无需更改表结构即可添加新的权限类型。

要使此步骤更进一步,您可以将每种类型的权限设置为二进制数。这样,您可以使用按位运算符使一组权限由一个整数表示。

例如,如果您有常数

PERMISSION_CHANGE_PERMISSIONS = bindec('001') = 1
PERMISSION_MAKE_CHANGES = bindec('010') = 2
PERMISSION_ACCEPT_CHANGES = bindec('100') = 4

您可以使用按位运算符“ |”将这些值组合为一个整数

(PERMISSION_CHANGE_PERMISSIONS | PERMISSION_MAKE_CHANGES) = bindec('011') = 3 = $users_combined_permissions

然后要检查他们是否具有特定权限,请使用按位运算符“&”

($users_combined_permissions & PERMISSION_MAKE_CHANGES) = true

如果这样做,则每组权限只需要一个数据库记录。



 类似资料:
  • 接口说明 根据用户登录之后生成的唯一token获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/power/1.0.0/get 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string form 是 用户登录标识 响应字段说明 参数 类型 说明 data String 数据

  • 我有一个用例,在这个用例中,我必须只执行授权部分。JWT令牌是由另一个服务生成的。我的服务只会消耗那个令牌,它的自定义声明中会有数据。在我的Spring启动应用程序中,我只想在允许用户访问任何应用编程接口之前验证该令牌是否有效。在所有答案中,我可以看到一个身份验证对象是从当前的安全上下文中创建的。在Spring,有没有什么方法可以让我不需要在自定义过滤器中编写这么多不必要的代码,只需编写解析JWT

  • 当我试图在mysql phpmyadmin中导航或了解更多关于用户的信息时,我不小心删除了root用户的权限。现在我不能创建新的数据库,新的用户,等等。如何再次恢复root用户的权限 < li >当我出错时,我想为我的一个数据库创建一个单独的用户。我想只删除特定数据库的root权限,而不是所有数据库的root权限。似乎我取消了整个mysql的root权限。 错误SQL查询: 使用mysql; My

  • 本文向大家介绍关于linux权限s权限和t权限详解,包括了关于linux权限s权限和t权限详解的使用技巧和注意事项,需要的朋友参考一下 常用权限 linux系统内有档案有三种身份 u:拥有者  g:群组   o:其他人 这些身份对于文档常用的有下面权限: r:读权限,用户可以读取文档的内容,如用cat,more查看 w:写权限,用户可以编辑文档 x:该目录具有可以被系统执行的权限 其他权限 除了读

  • 根据管理员的权限显示 前端检测权限显示按钮 例子: <if condition="\Libs\System\RBAC::ableAccess('Content', 'Content', 'edit')"> <a href="javascript:;;" onClick="javascript:openwinx('{:U("Content/edit", ["catid" =>$vo['ca

  • 问题内容: 我正在与扫描仪进行交互的应用程序(Java Applet)上。我知道我需要一个Twain库或WIA库来使其在Windows中工作。但是我不确定两者有什么区别?我正在尝试使用此库: http://thorntonzone.com/manuals/Compression/Fax,%20IBM%20MMR/MMSC/mmsc/uk/co/mmscomputing/device/twain/i