mirror of
https://github.com/ansible/awx.git
synced 2026-01-09 23:12:08 -03:30
Moving more logic into the models, more view cleanup
This commit is contained in:
parent
d338794ec2
commit
2c02dc73a0
@ -46,5 +46,13 @@ class BaseDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||
def delete_permissions_check(self, request, obj):
|
||||
raise exceptions.NotImplementedError()
|
||||
|
||||
def item_permissions_check(self, request, obj):
|
||||
|
||||
if request.method == 'GET':
|
||||
return self.__class__.model.can_user_read(request.user, obj)
|
||||
elif request.method in [ 'PUT' ]:
|
||||
return self.__class__.model.can_user_administrate(request.user, obj)
|
||||
return False
|
||||
|
||||
|
||||
|
||||
|
||||
@ -35,7 +35,10 @@ class CommonModel(models.Model):
|
||||
raise exceptions.NotImplementedError()
|
||||
|
||||
def can_user_delete(cls, user, obj):
|
||||
return user in obj.admins.all()
|
||||
raise exceptions.NotImplementedError
|
||||
|
||||
def can_user_access(cls, user, obj):
|
||||
raise exceptions.NotImplementedError()
|
||||
|
||||
|
||||
class Tag(models.Model):
|
||||
@ -88,6 +91,16 @@ class Organization(CommonModel):
|
||||
def can_user_delete(cls, user, obj):
|
||||
return user in obj.admins.all()
|
||||
|
||||
def can_user_administrate(cls, user, obj):
|
||||
return request.user in obj.admins.all()
|
||||
|
||||
def can_user_access(cls, user, obj):
|
||||
return self.can_user_administrate(user,obj) or request.user in obj.users.all()
|
||||
|
||||
def can_user_delete(cls, user, obj):
|
||||
return self.can_user_administrate(user, obj)
|
||||
|
||||
|
||||
class Inventory(CommonModel):
|
||||
'''
|
||||
an inventory source contains lists and hosts.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user