mirror of
https://github.com/ansible/awx.git
synced 2026-05-13 04:17:36 -02:30
Added Role.grant method for convenient permission granting
This commit is contained in:
@@ -59,6 +59,27 @@ class Role(CommonModelNameNotUnique):
|
|||||||
for child in self.children.all():
|
for child in self.children.all():
|
||||||
child.rebuild_role_hierarchy_cache()
|
child.rebuild_role_hierarchy_cache()
|
||||||
|
|
||||||
|
def grant(self, resource, permissions):
|
||||||
|
# take either the raw Resource or something that includes the ResourceMixin
|
||||||
|
resource = resource if type(resource) is Resource else resource.resource
|
||||||
|
|
||||||
|
if 'all' in permissions and permissions['all']:
|
||||||
|
del permissions['all']
|
||||||
|
permissions['create'] = True
|
||||||
|
permissions['read'] = True
|
||||||
|
permissions['write'] = True
|
||||||
|
permissions['update'] = True
|
||||||
|
permissions['delete'] = True
|
||||||
|
permissions['scm_update'] = True
|
||||||
|
permissions['use'] = True
|
||||||
|
permissions['execute'] = True
|
||||||
|
|
||||||
|
permission = RolePermission(role=self, resource=resource)
|
||||||
|
for k in permissions:
|
||||||
|
setattr(permission, k, int(permissions[k]))
|
||||||
|
permission.save()
|
||||||
|
|
||||||
|
|
||||||
m2m_changed.connect(rebuild_role_hierarchy_cache, Role.parents.through)
|
m2m_changed.connect(rebuild_role_hierarchy_cache, Role.parents.through)
|
||||||
|
|
||||||
|
|
||||||
@@ -161,4 +182,3 @@ class RolePermission(CreatedModifiedModel):
|
|||||||
scm_update = models.IntegerField(default = 0)
|
scm_update = models.IntegerField(default = 0)
|
||||||
use = models.IntegerField(default = 0)
|
use = models.IntegerField(default = 0)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user