From 0043ecc4e74f03e8bf497335fcff49639dad5be2 Mon Sep 17 00:00:00 2001 From: Julian Rother <julian@cccv.de> Date: Tue, 8 Feb 2022 23:07:49 +0100 Subject: [PATCH] Fix User-Group and Role-Group relationship config --- uffd/role/models.py | 4 ++-- uffd/user/models.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/uffd/role/models.py b/uffd/role/models.py index fa60c9be..8bd6fcfc 100644 --- a/uffd/role/models.py +++ b/uffd/role/models.py @@ -8,7 +8,7 @@ from uffd.user.models import User class RoleGroup(db.Model): __tablename__ = 'role_groups' role_id = Column(Integer(), ForeignKey('role.id', onupdate='CASCADE', ondelete='CASCADE'), primary_key=True) - role = relationship('Role') + role = relationship('Role', back_populates='groups') group_id = Column(Integer(), ForeignKey('group.id', onupdate='CASCADE', ondelete='CASCADE'), primary_key=True) group = relationship('Group') requires_mfa = Column(Boolean(), default=False, nullable=False) @@ -94,7 +94,7 @@ class Role(db.Model): members = relationship('User', secondary='role_members', back_populates='roles') - groups = relationship('RoleGroup', collection_class=RoleGroupMap, cascade='all, delete-orphan') + groups = relationship('RoleGroup', collection_class=RoleGroupMap, cascade='all, delete-orphan', back_populates='role') # Roles that are managed externally (e.g. by Ansible) can be locked to # prevent accidental editing of name, moderator group, included roles diff --git a/uffd/user/models.py b/uffd/user/models.py index 4878ba0d..ad6f3a7a 100644 --- a/uffd/user/models.py +++ b/uffd/user/models.py @@ -84,7 +84,7 @@ class User(db.Model): mail = Column(String(128), nullable=False) pwhash = Column(String(256), nullable=True) is_service_user = Column(Boolean(), default=False, nullable=False) - groups = relationship('Group', secondary='user_groups') + groups = relationship('Group', secondary='user_groups', back_populates='members') roles = relationship('Role', secondary='role_members', back_populates='members') @property @@ -169,7 +169,7 @@ class Group(db.Model): unix_gid = Column(Integer(), unique=True, nullable=False, default=get_next_unix_gid) name = Column(String(32), unique=True, nullable=False) description = Column(String(128), nullable=False, default='') - members = relationship('User', secondary='user_groups') + members = relationship('User', secondary='user_groups', back_populates='groups') def set_name(self, value): if len(value) > 32 or len(value) < 1: -- GitLab