mirror of https://github.com/jumpserver/jumpserver
fix: 修复授权树显示
parent
a7cc457f54
commit
cca49fa9cd
|
@ -12,7 +12,7 @@ class Migration(migrations.Migration):
|
||||||
operations = [
|
operations = [
|
||||||
migrations.AlterModelOptions(
|
migrations.AlterModelOptions(
|
||||||
name='account',
|
name='account',
|
||||||
options={'permissions': [('view_applicationaccountsecret', 'Can view application account secret'), ('change_appplicationaccountsecret', 'Can view application account secret')], 'verbose_name': 'Application account'},
|
options={'permissions': [('view_applicationaccountsecret', 'Can view application account secret'), ('change_appplicationaccountsecret', 'Can change application account secret')], 'verbose_name': 'Application account'},
|
||||||
),
|
),
|
||||||
migrations.AlterModelOptions(
|
migrations.AlterModelOptions(
|
||||||
name='applicationuser',
|
name='applicationuser',
|
||||||
|
|
|
@ -24,7 +24,7 @@ class Account(BaseUser):
|
||||||
unique_together = [('username', 'app', 'systemuser')]
|
unique_together = [('username', 'app', 'systemuser')]
|
||||||
permissions = [
|
permissions = [
|
||||||
('view_applicationaccountsecret', _('Can view application account secret')),
|
('view_applicationaccountsecret', _('Can view application account secret')),
|
||||||
('change_appplicationaccountsecret', _('Can view application account secret')),
|
('change_appplicationaccountsecret', _('Can change application account secret')),
|
||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
|
|
@ -30,6 +30,7 @@ exclude_permissions = (
|
||||||
('users', 'userpasswordhistory', '*', '*'),
|
('users', 'userpasswordhistory', '*', '*'),
|
||||||
('applications', 'applicationuser', '*', '*'),
|
('applications', 'applicationuser', '*', '*'),
|
||||||
('applications', 'historicalaccount', '*', '*'),
|
('applications', 'historicalaccount', '*', '*'),
|
||||||
|
('applications', 'account', 'add,change', 'account'),
|
||||||
('assets', 'adminuser', '*', '*'),
|
('assets', 'adminuser', '*', '*'),
|
||||||
('assets', 'assetgroup', '*', '*'),
|
('assets', 'assetgroup', '*', '*'),
|
||||||
('assets', 'cluster', '*', '*'),
|
('assets', 'cluster', '*', '*'),
|
||||||
|
@ -38,6 +39,7 @@ exclude_permissions = (
|
||||||
('assets', 'assetuser', '*', '*'),
|
('assets', 'assetuser', '*', '*'),
|
||||||
('assets', 'gathereduser', 'add,delete,change', 'gathereduser'),
|
('assets', 'gathereduser', 'add,delete,change', 'gathereduser'),
|
||||||
('assets', 'accountbackupplanexecution', 'delete,change', 'accountbackupplanexecution'),
|
('assets', 'accountbackupplanexecution', 'delete,change', 'accountbackupplanexecution'),
|
||||||
|
('assets', 'authbook', 'add', 'authbook'),
|
||||||
('perms', 'databaseapppermission', '*', '*'),
|
('perms', 'databaseapppermission', '*', '*'),
|
||||||
('perms', 'k8sapppermission', '*', '*'),
|
('perms', 'k8sapppermission', '*', '*'),
|
||||||
('perms', 'remoteapppermission', '*', '*'),
|
('perms', 'remoteapppermission', '*', '*'),
|
||||||
|
|
|
@ -14,6 +14,10 @@ class ContentType(DjangoContentType):
|
||||||
class Meta:
|
class Meta:
|
||||||
proxy = True
|
proxy = True
|
||||||
|
|
||||||
|
@property
|
||||||
|
def app_model(self):
|
||||||
|
return '%s.%s' % (self.app_label, self.model)
|
||||||
|
|
||||||
|
|
||||||
class Permission(DjangoPermission):
|
class Permission(DjangoPermission):
|
||||||
""" 权限类 """
|
""" 权限类 """
|
||||||
|
|
|
@ -263,6 +263,7 @@ class PermissionTreeUtil:
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_permission_name(p, content_types_name_mapper):
|
def _get_permission_name(p, content_types_name_mapper):
|
||||||
|
p: Permission
|
||||||
code_name = p.codename
|
code_name = p.codename
|
||||||
action_mapper = {
|
action_mapper = {
|
||||||
'add': ugettext('Create'),
|
'add': ugettext('Create'),
|
||||||
|
@ -285,8 +286,9 @@ class PermissionTreeUtil:
|
||||||
name = action_mapper['delete']
|
name = action_mapper['delete']
|
||||||
ct = code_name.replace('delete_', '')
|
ct = code_name.replace('delete_', '')
|
||||||
|
|
||||||
if ct in content_types_name_mapper:
|
app_model = '%s.%s' % (p.content_type.app_label, ct)
|
||||||
name += content_types_name_mapper[ct]
|
if app_model in content_types_name_mapper:
|
||||||
|
name += content_types_name_mapper[app_model]
|
||||||
else:
|
else:
|
||||||
name = gettext(p.name)
|
name = gettext(p.name)
|
||||||
name = name.replace('Can ', '').replace('可以', '')
|
name = name.replace('Can ', '').replace('可以', '')
|
||||||
|
@ -296,7 +298,7 @@ class PermissionTreeUtil:
|
||||||
permissions_id = self.permissions.values_list('id', flat=True)
|
permissions_id = self.permissions.values_list('id', flat=True)
|
||||||
nodes = []
|
nodes = []
|
||||||
content_types = ContentType.objects.all()
|
content_types = ContentType.objects.all()
|
||||||
content_types_name_mapper = {ct.model: ct.name for ct in content_types}
|
content_types_name_mapper = {ct.app_model: ct.name for ct in content_types}
|
||||||
|
|
||||||
for p in self.all_permissions:
|
for p in self.all_permissions:
|
||||||
model_id = f'{p.app}.{p.model}'
|
model_id = f'{p.app}.{p.model}'
|
||||||
|
|
Loading…
Reference in New Issue