许可系统(用户,群组,特殊权利)

时间:2013-10-17 17:54:20

标签: sql join permissions

以下场景:我目前正在尝试使用连接建立一个复杂的Permission系统,使用连接等。它的大多数都像魅力,但我现在的问题是:

首先,表格的设置: (对不起外部链接,但编辑器目前似乎并不适合我。)

表:http://pastebin.de/36727 数据:http://pastebin.de/36726

好:

用户通过成为群组成员获得权利。 (那很有效!)

所以,但是现在,我希望能够为用户提供特殊权利(组不包括在内)

我怎么能这样做? 多数民众赞成我的尝试(但问题是,如果存在特殊权利,结果中没有给出回复):

SELECT DISTINCT
    `user`.`username`,
    `right`.`name`

FROM
    `user`

INNER JOIN
    `user_group` ON
        `user`.`id` = `user_group`.`user_id`

INNER JOIN
    `group` ON
        `user_group`.`group_id` = `group`.`id`

INNER JOIN
    `group_right` ON
        `group`.`id` = `group_right`.`group_id`

INNER JOIN
    `right` ON
        `group_right`.`right_id` = `right`.`id`

LEFT JOIN
    `user_right` ON
        `user_right`.`user_id` = `user`.`id` AND
        `user_right`.`right_id` = `right`.`id`

WHERE
    `user`.`username` = 'Domi'

我希望你知道我的意思,因为我的英语不太好。

0 个答案:

没有答案