Added singleton role support method and parent_role auto-binder in the ImplicitRoleField

Also fixed bug in the single object permission lookup.
This commit is contained in:
Akita Noek
2016-01-29 16:37:13 -05:00
parent 4d080497cc
commit 1035a6737e
3 changed files with 22 additions and 3 deletions

View File

@@ -119,11 +119,17 @@ class ImplicitRoleDescriptor(ReverseSingleRelatedObjectDescriptor):
# Add all non-null parent roles as parents
if type(self.parent_role) is list:
for path in self.parent_role:
parent = resolve_field(instance, path)
if path.startswith("singleton:"):
parent = Role.singleton(path[10:])
else:
parent = resolve_field(instance, path)
if parent:
role.parents.add(parent)
else:
parent = resolve_field(instance, self.parent_role)
if self.parent_role.startswith("singleton:"):
parent = Role.singleton(self.parent_role[10:])
else:
parent = resolve_field(instance, self.parent_role)
if parent:
role.parents.add(parent)
setattr(instance, self.field.name, role)