gpt4 book ai didi

php - 添加不同级别php的新用户的最佳方法

转载 作者:可可西里 更新时间:2023-11-01 00:02:58 24 4
gpt4 key购买 nike

我用 PHP 创建了一个应用程序,其中有用户,用户有不同的级别,比如说 1、2、3、4。当用户登录时,它会设置一个 session ,其中包含他们的级别编号。该应用程序根据用户级别显示不同的页面,如下所示:

if($role_level > 3)
{
//Show something
}

现在我想创建一个添加用户部分,用户可以在其中添加新用户并可能从下拉(html 选择)框中为他们定义角色。但是他们只能定义一个比自己低的角色。我在想这样的事情:

<select>
("SELECT * FROM `roles` WHERE `roles_level` < $role_level)
loop results into <options></options>
</select>

对此有何评论?更好的方法去做?以上会影响吗?

最佳答案

您的想法似乎可行,但它不是很灵活,因为它允许角色之间存在单一的直接层次结构。如果您需要分支角色怎么办?例如,您现在可能将“users”、“publishers”、“reviewers”和“admins”作为当前的 1、2、3 和 4。

用户只能阅读文章,发布者也可以撰写和编辑他们的文章,评论者也可以编辑其他发布者的文章,管理员也可以做一些管理工作。

如果你想要一个版主角色怎么办?主持人可以编辑任何人的文章,但不能撰写新文章。你将如何实现?您不能使用当前的模型。

我建议你定义一个“roles”表,一个“actions”表,以及它们之间的一个N-M关系表:

角色:

  • 1,用户
  • 2、出版商
  • 3、审稿人
  • 4,管理员
  • 5,article_moderator

Action :

  • 1,阅读帖子
  • 2,写帖子
  • 3、edit_own_post
  • 4,edit_others_post
  • 5、管理工具

角色_ Action :

  • 1,1
  • 2,1
  • 2,2
  • 2,3
  • 3,1
  • 3,2
  • 3,3
  • 3,4
  • 4,1
  • 4,2
  • 4,3
  • 4,4
  • 4,5
  • 5,1
  • 5,4(请注意,版主 (5) 不能 write_own_post 甚至 edit_own_post 但只能 edit_others_post)

当然,这更复杂,但它对 future 更灵活

我建议您也阅读这个答案:LINK @Vyktor 解释了 ACL 概念,对大型项目很有用

关于php - 添加不同级别php的新用户的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16032446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com