0

我需要关于我一直在做的事情的帮助。因此,我在此表中存储了一些访问数据:

SELECT * FROM MASTER_ROLE;
+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
| userid | Page A | Page B | Page C | Page D | Page E | Page F | Page G | Page H | Page I |
+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
|      0 |      0 |      0 |      0 |      0 |      0 |      0 |      0 |      0 |      0 |
|      1 |      0 |      2 |      1 |      1 |      0 |      2 |      0 |      1 |      2 |
+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+

我正在存储这样的数据,因为我需要将不同页面的 3 级访问权限(受限、用户和管理员)中的任何 1 级分别提供给不同的人。因此,如果一个人是页面 A 的管理员,他可能会被限制访问页面 B。这里,我显示了 0:管理员、1:用户和 2:受限。

因此,当用户登录成功时,我需要将这张表发送到前端:

//query to retreive access rights for userid=1;

+-----------+-------+
| Page Name | Right |
+-----------+-------+
|    Page A |     0 |
|    Page B |     2 |
|    Page C |     1 |
|    Page D |     1 |
|    Page E |     0 |
|    Page F |     2 |
|    Page G |     0 |
|    Page H |     1 |
|    Page I |     2 | 
+-----------+-------+

这是因为在前端,我会使用循环遍历这个表,并禁用所有访问权限 = Restricted 的页面。

另外,请注意查询需要是动态的,这样当页数(即 MASTER_ROLE 表中的列数增加时)不需要更改。

非常感谢 :)

4

0 回答 0