这是我的数据库“用户”:
用户组 show_groupmembers ---------------------------------- 鲍勃阿尔法Y 彼得阿尔法 N 彼得贝塔 Y 克里斯贝塔Y
如果 show_groupmembers 为“Y”,则用户可以看到其组的所有其他成员。(例如 Bob 可以看到所有“Alpha”组用户)
如果 show_groupmembers 是“N”,则用户看不到他的组的任何成员(例如,Peter 看不到任何“Alpha”组用户)
这就是我想做的:
我有一个 current_user,Peter,想检查一下 Peter 是否可以看到 Bob。所以必须检查
- 有在同一组和
- urrent_user (Peter) 的标志“show_groupmembers”是“Y”。
如果此检查失败(如在我的示例中),“EXIST SELECT 1”当然应该什么都不返回,否则它应该返回一些东西。
我见过有效的解决方案,但前提是 current_user 只是一个组的成员。一旦他是更多组,上面的检查似乎不起作用。
任何想法如何执行此操作?我完全坚持这一点。