示例#1
0
文件: models.py 项目: yfcheung/myrg
 def get_group_permissions(self, obj=None):
     """
     Returns a list of permission strings that this user has through their
     groups. This method queries all available auth backends. If an object
     is passed in, only permissions matching this object are returned.
     """
     permissions = set()
     for backend in auth.get_backends():
         if hasattr(backend, "get_group_permissions"):
             permissions.update(backend.get_group_permissions(self, obj))
     return permissions
示例#2
0
文件: models.py 项目: yfcheung/myrg
 def get_group_permissions(self, obj=None):
     """
     Returns a list of permission strings that this user has through their
     groups. This method queries all available auth backends. If an object
     is passed in, only permissions matching this object are returned.
     """
     permissions = set()
     for backend in auth.get_backends():
         if hasattr(backend, "get_group_permissions"):
             permissions.update(backend.get_group_permissions(self, obj))
     return permissions
示例#3
0
文件: models.py 项目: yfcheung/myrg
def _user_has_module_perms(user, app_label):
    """
    A backend can raise `PermissionDenied` to short-circuit permission checking.
    """
    for backend in auth.get_backends():
        if not hasattr(backend, 'has_module_perms'):
            continue
        try:
            if backend.has_module_perms(user, app_label):
                return True
        except PermissionDenied:
            return False
    return False
示例#4
0
文件: models.py 项目: yfcheung/myrg
def _user_has_module_perms(user, app_label):
    """
    A backend can raise `PermissionDenied` to short-circuit permission checking.
    """
    for backend in auth.get_backends():
        if not hasattr(backend, 'has_module_perms'):
            continue
        try:
            if backend.has_module_perms(user, app_label):
                return True
        except PermissionDenied:
            return False
    return False
示例#5
0
    def has_module_perms(self, app_label):
        """
        Returns True if the user has any permissions in the given app
        label. Uses pretty much the same logic as has_perm, above.
        """
        if not self.is_active:
            return False

        if self.is_superuser:
            return True

        for backend in auth.get_backends():
            if hasattr(backend, "has_module_perms"):
                if backend.has_module_perms(self, app_label):
                    return True
        return False
示例#6
0
    def has_perm(self, perm):
        """
        Returns True if the user has the specified permission. This method
        queries all available auth backends, but returns immediately if any
        backend returns True. Thus, a user who has permission from a single
        auth backend is assumed to have permission in general.
        """
        # Inactive users have no permissions.
        if not self.is_active:
            return False

        # Superusers have all permissions.
        if self.is_superuser:
            return True

        # Otherwise we need to check the backends.
        for backend in auth.get_backends():
            if hasattr(backend, "has_perm"):
                if backend.has_perm(self, perm):
                    return True
        return False
示例#7
0
文件: models.py 项目: yfcheung/myrg
def _user_get_all_permissions(user, obj):
    permissions = set()
    for backend in auth.get_backends():
        if hasattr(backend, "get_all_permissions"):
            permissions.update(backend.get_all_permissions(user, obj))
    return permissions
示例#8
0
文件: models.py 项目: yfcheung/myrg
def _user_get_all_permissions(user, obj):
    permissions = set()
    for backend in auth.get_backends():
        if hasattr(backend, "get_all_permissions"):
            permissions.update(backend.get_all_permissions(user, obj))
    return permissions
示例#9
0
 def get_all_permissions(self):
     permissions = set()
     for backend in auth.get_backends():
         if hasattr(backend, "get_all_permissions"):
             permissions.update(backend.get_all_permissions(self))
     return permissions