U api update

pull/22/head
vapao 2020-01-12 17:01:58 +08:00
parent f109600ce7
commit d56f14cfd9
2 changed files with 20 additions and 1 deletions

View File

@ -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

View File

@ -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)