mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-07 02:10:23 +00:00
fix: rbac 合并 (#7658)
* perf: 修复一些错误权限位 * Pr@fix rbac@fix rbac permissions (#7648) * fix: 确保每次 migrate 执行更新 role permissions * perf: 修改 choices * feat: 兼容apple m1 * perf: 修改 migrations role permissions * perf: pymysql 导入 * perf: admin 判断 * fix: 修复消息订阅权限 Co-authored-by: ibuler <ibuler@qq.com> Co-authored-by: Aaron3S <chenyang@fit2cloud.com> Co-authored-by: feng626 <1304903146@qq.com>
This commit is contained in:
@@ -64,11 +64,11 @@ class PredefineRole:
|
||||
}
|
||||
return defaults
|
||||
|
||||
def get_or_create_role(self):
|
||||
def update_or_create_role(self):
|
||||
from rbac.models import Role
|
||||
defaults = self._get_defaults()
|
||||
permissions = defaults.pop('permissions', [])
|
||||
role, created = Role.objects.get_or_create(defaults, id=self.id)
|
||||
role, created = Role.objects.update_or_create(defaults, id=self.id)
|
||||
role.permissions.set(permissions)
|
||||
return role, created
|
||||
|
||||
@@ -125,10 +125,10 @@ class BuiltinRole:
|
||||
return mapper[name].get_role()
|
||||
|
||||
@classmethod
|
||||
def sync_to_db(cls):
|
||||
def sync_to_db(cls, show_msg=False):
|
||||
roles = cls.get_roles()
|
||||
|
||||
for pre_role in roles.values():
|
||||
role, created = pre_role.get_or_create_role()
|
||||
print("Create builtin Role: {} - {}".format(role.name, created))
|
||||
|
||||
role, created = pre_role.update_or_create_role()
|
||||
if show_msg:
|
||||
print("Update builtin Role: {} - {}".format(role.name, created))
|
||||
|
Reference in New Issue
Block a user