geonode.security.models
Attributes
Exceptions
Common base class for all non-exit exceptions. |
Classes
Mixin for adding "Permission Level" methods to a model class -- eg role systems where a user has exactly one assigned role with respect to an object representing an "access level" |
Module Contents
- exception geonode.security.models.PermissionLevelError[source]
Bases:
ExceptionCommon base class for all non-exit exceptions.
- class geonode.security.models.PermissionLevelMixin[source]
Mixin for adding “Permission Level” methods to a model class – eg role systems where a user has exactly one assigned role with respect to an object representing an “access level”
- get_all_level_info()[source]
Translates the current object guardian permissions into a JSON-like “perm_spec” object in the form:
{ "users": { "<Profile AnonymousUser>": ["view"], "<Profile username>": ["perm1", "perm2", "perm3"], "<Profile username2>": ["perm1", "perm2", "perm3"] }, "groups": { "<Group groupname>": ["perm1", "perm2", "perm3"], "<Group groupname2>": ["perm1", "perm2", "perm3"] } }
- get_group_managers(group=None)[source]
Given the groups belonging to a “user”, this method returns a tuple containing:
The “groups” perms spec with resource access permissions (at least VIEW ones)
The list of “group managers” of the groups above
- set_default_permissions(owner=None, created=False)[source]
Removes all the permissions except for the owner and assign the view permission to the anonymous group.
- set_permissions(perm_spec=None, created=False, approval_status_changed=False, group_status_changed=False)[source]
Sets an object’s the permission levels based on the perm_spec JSON.
the mapping looks like:
{ 'users': { 'AnonymousUser': ['view'], 'username': ['perm1','perm2','perm3'], 'username2': ['perm1','perm2','perm3'] ... }, 'groups': [ 'groupname': ['perm1','perm2','perm3'], 'groupname2': ['perm1','perm2','perm3'], ... ] }
- compare_perms(prev_perm_spec, perm_spec)[source]
Compare two perm_specs in the form
{ 'users': { <Profile AnonymousUser>: ['view'], <Profile username>: ['perm1','perm2','perm3'], <Profile username2>: ['perm1','perm2','perm3'] ... }, 'groups': [ <Group groupname>: ['perm1','perm2','perm3'], <Group groupname2>: ['perm1','perm2','perm3'], ... ] }
- fixup_perms(perm_spec)[source]
Transform a perm_spec in the form
{ 'users': { 'AnonymousUser': ['view'], 'username': ['perm1','perm2','perm3'], 'username2': ['perm1','perm2','perm3'] ... }, 'groups': [ 'groupname': ['perm1','perm2','perm3'], 'groupname2': ['perm1','perm2','perm3'], ... ] } to the one in the form: { 'users': { <Profile AnonymousUser>: ['view'], <Profile username>: ['perm1','perm2','perm3'], <Profile username2>: ['perm1','perm2','perm3'] ... }, 'groups': [ <Group groupname>: ['perm1','perm2','perm3'], <Group groupname2>: ['perm1','perm2','perm3'], ... ] }
It also removes items with empty permissions, e.g.:
‘AnonymousUser’: [] # the item will completely removed