mirror of https://github.com/openspug/spug
U api update
parent
f109600ce7
commit
d56f14cfd9
|
@ -49,6 +49,22 @@ class Role(models.Model, ModelMixin):
|
|||
created_at = models.CharField(max_length=20, default=human_datetime)
|
||||
created_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='+')
|
||||
|
||||
@property
|
||||
def permissions(self):
|
||||
if self.page_perms:
|
||||
data = []
|
||||
perms = json.loads(self.page_perms)
|
||||
for m, v in perms.items():
|
||||
for p, d in v.items():
|
||||
data.extend(f'{m}.{p}.{x}' for x in d)
|
||||
return data
|
||||
else:
|
||||
return []
|
||||
|
||||
@property
|
||||
def deploy(self):
|
||||
return json.loads(self.deploy_perms) if self.deploy_perms else {'apps': [], 'envs': []}
|
||||
|
||||
def to_dict(self, *args, **kwargs):
|
||||
tmp = super().to_dict(*args, **kwargs)
|
||||
tmp['page_perms'] = json.loads(self.page_perms) if self.page_perms else None
|
||||
|
|
|
@ -90,6 +90,7 @@ class RoleView(View):
|
|||
role.page_perms = json.dumps(form.page_perms)
|
||||
if form.deploy_perms is not None:
|
||||
role.deploy_perms = json.dumps(form.deploy_perms)
|
||||
role.user_set.update(token_expired=0)
|
||||
role.save()
|
||||
return json_response(error=error)
|
||||
|
||||
|
@ -126,7 +127,9 @@ def login(request):
|
|||
return json_response({
|
||||
'access_token': user.access_token,
|
||||
'nickname': user.nickname,
|
||||
'has_real_ip': True if x_real_ip else False
|
||||
'is_supper': user.is_supper,
|
||||
'has_real_ip': True if x_real_ip else False,
|
||||
'permissions': [] if user.is_supper else user.role.permissions
|
||||
})
|
||||
|
||||
value = cache.get_or_set(form.username, 0, 86400)
|
||||
|
|
Loading…
Reference in New Issue