geonode.security.models ======================= .. py:module:: geonode.security.models Attributes ---------- .. autoapisummary:: geonode.security.models.logger Exceptions ---------- .. autoapisummary:: geonode.security.models.PermissionLevelError Classes ------- .. autoapisummary:: geonode.security.models.PermissionLevelMixin Module Contents --------------- .. py:data:: logger .. py:exception:: PermissionLevelError Bases: :py:obj:`Exception` Common base class for all non-exit exceptions. .. py:class:: PermissionLevelMixin 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" .. py:method:: get_all_level_info() Translates the current object guardian permissions into a JSON-like "perm_spec" object in the form: .. code-block:: json { "users": { "": ["view"], "": ["perm1", "perm2", "perm3"], "": ["perm1", "perm2", "perm3"] }, "groups": { "": ["perm1", "perm2", "perm3"], "": ["perm1", "perm2", "perm3"] } } .. py:method:: get_self_resource() Returns the "ResourceBase" associated to this "object". .. py:method:: get_group_managers(group=None) 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 .. py:method:: set_default_permissions(owner=None, created=False) Removes all the permissions except for the owner and assign the view permission to the anonymous group. .. py:method:: set_permissions(perm_spec=None, created=False, approval_status_changed=False, group_status_changed=False) Sets an object's the permission levels based on the perm_spec JSON. the mapping looks like: .. code-block:: bash { 'users': { 'AnonymousUser': ['view'], 'username': ['perm1','perm2','perm3'], 'username2': ['perm1','perm2','perm3'] ... }, 'groups': [ 'groupname': ['perm1','perm2','perm3'], 'groupname2': ['perm1','perm2','perm3'], ... ] } .. py:method:: handle_moderated_uploads() .. py:method:: compare_perms(prev_perm_spec, perm_spec) Compare two perm_specs in the form .. code-block:: bash { 'users': { : ['view'], : ['perm1','perm2','perm3'], : ['perm1','perm2','perm3'] ... }, 'groups': [ : ['perm1','perm2','perm3'], : ['perm1','perm2','perm3'], ... ] } .. py:method:: fixup_perms(perm_spec) Transform a perm_spec in the form .. code-block:: bash { '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': { : ['view'], : ['perm1','perm2','perm3'], : ['perm1','perm2','perm3'] ... }, 'groups': [ : ['perm1','perm2','perm3'], : ['perm1','perm2','perm3'], ... ] } It also removes items with empty permissions, e.g.: 'AnonymousUser': [] # the item will completely removed .. py:method:: get_user_perms(user) Returns a list of permissions a user has on a given resource. .. py:method:: user_can(user, permission) Checks if a has a given permission to the resource.