Вопрос включает в себя дизайн пяти таблиц rba c, а именно User, UserRole, Role, RolePermission, Permission (Mysql). Я хотел бы знать, как запрашивать пользователей, у которых есть (все) указанные разрешения, с помощью peewee.
Прямо сейчас я просто выполняю несколько запросов и получаю их пересечение:
u1 = User.select().join(UserRole).join(Role).join(RolePermission).join(Permission).where(
Permission.permission_type == 1)
u2 = User.select().join(UserRole).join(Role).join(RolePermission).join(Permission).where(
Permission.permission_type == 2)
u3 = User.select().join(UserRole).join(Role).join(RolePermission).join(Permission).where(
Permission.permission_type == 3)
result = set(u1).intersection(set(u2).intersection(set(u3)))