diff --git a/apps/orgs/models.py b/apps/orgs/models.py index 72231f3c3..d762e5eba 100644 --- a/apps/orgs/models.py +++ b/apps/orgs/models.py @@ -363,13 +363,7 @@ class OrgMemberManager(models.Manager): if role in to_add: to_add[role].add(user) - self.remove_users_by_role( - org, - to_remove.users, - to_remove.admins, - to_remove.auditors - ) - + # 先添加再移除 (防止用户角色由组织用户->组织管理员时从组织清除用户) self.add_users_by_role( org, to_add.users, @@ -377,6 +371,13 @@ class OrgMemberManager(models.Manager): to_add.auditors ) + self.remove_users_by_role( + org, + to_remove.users, + to_remove.admins, + to_remove.auditors + ) + def set_users_by_role(self, org, users=None, admins=None, auditors=None): """ 给组织设置带角色的用户