如何处理具有多个角色类型的同一用户

时间:2018-07-18 09:16:09

标签: php mysqli

Am使用层次结构顺序的以下类型的帐户来构建系统 -院长 -PG电源线。 - 部门主管 -员工

现在每个人都有不同的角色。 问题。 同一个人有可能担任系主任和研究生监考官。我的问题是,如果他们登录,我该如何确定是否以研究生事务员或系主任的身份登录。 他们的查询有些不同。

对于PG监禁员,他只会看到所在系的研究生,对于部门负责人,他只会看到所在系的所有学生。

我尝试过的事情 我试图赋予用户最高的角色,例如,如果您是部门主管(PG)和PG协调者,因为PG协调员高于H.O.D,那么我以PG Cord身份登录。

但是,它们的查询参数不同。例如,作为您所在部门的H.O.D获取学生,我的查询字符串需要一个部门作为参数。而PG线。不需要部门

  1. 再三考虑,我尝试登录用户,然后立即将用户重定向到页面,在该页面中,他们将选择要登录的方式。根据他们的角色。这样,仅当用户指定了他们希望如何登录时,我的用户会话才会完成。但是我不知道它是最好的方法还是有更好的方法

2 个答案:

答案 0 :(得分:0)

某些网站通过在登录屏幕上要求一个角色来解决此问题。

username: [        ]
pasword:  [        ]
Role:     [Staff Members   V] <-- Dropdown, with the most common option pre-selected.

[Log in]

答案 1 :(得分:0)

解决方案#1:一个角色表,其中的每个权限都由一个微小整数列(1、0)表示。它们将像“ can_add_students”,“ can_view_students”之类。

解决方案2:创建一个角色表和一个权限表。权限表将具有一个权限,一个值和一个父角色。这样一来,它的用途更加广泛,看起来也不会那么混乱。

解决方案3:可能最好的也是最难的是实现OAuth 2.0,因为它正是您所描述的。它也是安全的,是行业标准。不利的一面是,如果您仍在问这个问题,学习曲线可能会有些陡峭。