mirror of https://github.com/openspug/spug
U 优化发布权限(自己创建的环境/应用自动具有对应的发布权限)
parent
a63a8191b0
commit
135cefcf4c
|
@ -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
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue