U 优化发布权限(自己创建的环境/应用自动具有对应的发布权限)

pull/103/head
vapao 2020-05-15 19:55:43 +08:00
parent a63a8191b0
commit 135cefcf4c
3 changed files with 12 additions and 2 deletions

View File

@ -79,6 +79,12 @@ class Role(models.Model, ModelMixin):
tmp['used'] = self.user_set.count()
return tmp
def add_deploy_perm(self, target, value):
perms = json.loads(self.deploy_perms) if self.deploy_perms else {'apps': [], 'envs': []}
perms[target].append(value)
self.deploy_perms = json.dumps(perms)
self.save()
def __repr__(self):
return '<Role name=%r>' % self.name

View File

@ -32,7 +32,9 @@ class AppView(View):
if form.id:
App.objects.filter(pk=form.id).update(**form)
else:
App.objects.create(created_by=request.user, **form)
app = App.objects.create(created_by=request.user, **form)
if request.user.role:
request.user.role.add_deploy_perm('apps', app.id)
return json_response(error=error)
def patch(self, request):

View File

@ -31,7 +31,9 @@ class EnvironmentView(View):
if form.id:
Environment.objects.filter(pk=form.id).update(**form)
else:
Environment.objects.create(created_by=request.user, **form)
env = Environment.objects.create(created_by=request.user, **form)
if request.user.role:
request.user.role.add_deploy_perm('envs', env.id)
return json_response(error=error)
def delete(self, request):