• 老广's avatar
    Merge to master (#944) · 5c8dd567
    老广 authored
    * [Update] 修改 success message, 添加资产组时可以添加资产
    
    * [Update] system user form add label
    
    * [Update] set default cluster
    
    * [Update] 修改一些翻译
    
    * [Bugfix] 修复重置密码bug
    
    * [Bugfix] 默认default cluster
    
    * [Bugfix] 用户添加报错
    
    * 修改tab样式
    
    * [Bugfix] 修复了一些显示上的bug
    
    * 修复全选按钮在搜索后仍然选择全部的问题
    
    * [Bugfix] 修复以下bug
    1. 查看执行历史异常
    2. 用户授权资产页显示message
    
    * [Update] api 返回platform, 并增加web terminal nav
    
    * [Feature] 添加setting页面
    
    * [Feature] 添加basic settings
    
    * [Update] 修改翻译
    
    * [Update] 修改config
    
    * [Update] 启动加载common setting
    
    * [Bugfix] 修复cluster创建的bug
    
    * [Bugfix] 修复title显示Jumpserver
    
    * [Bugfix] setting tables not found
    
    * [Bugfix] settings add option
    
    * [Feature] 添加后端paging
    
    * [Bugfix] 资产列表选择别的页会报错
    
    * [Update] check all 只选择当前页面
    
    * [Bugfix] user login ip
    
    * [Bugfix] for login ip
    
    * [Bugfix] 修复资产列表显示bug
    
    * [Remove] labels
    
    * [Bugfix] task运行失败,因为tasks没有设置
    
    * [Bugfix] 读取不到prefix
    
    * [Change] 修改部分翻译
    
    * [Update] 启用ldap移动位置
    
    * [Update] 修改翻译
    
    * Update README.md
    Unverified
    5c8dd567
permissions.py 1.66 KB
# -*- coding: utf-8 -*-
#

from rest_framework import permissions


class IsValidUser(permissions.IsAuthenticated, permissions.BasePermission):
    """Allows access to valid user, is active and not expired"""

    def has_permission(self, request, view):
        return super(IsValidUser, self).has_permission(request, view) \
            and request.user.is_valid


class IsAppUser(IsValidUser):
    """Allows access only to app user """

    def has_permission(self, request, view):
        return super(IsAppUser, self).has_permission(request, view) \
            and request.user.is_app


class IsSuperUser(IsValidUser):
    """Allows access only to superuser"""

    def has_permission(self, request, view):
        return super(IsSuperUser, self).has_permission(request, view) \
            and request.user.is_superuser


class IsSuperUserOrAppUser(IsValidUser):
    """Allows access between superuser and app user"""

    def has_permission(self, request, view):
        return super(IsSuperUserOrAppUser, self).has_permission(request, view) \
            and (request.user.is_superuser or request.user.is_app)


class IsSuperUserOrAppUserOrUserReadonly(IsSuperUserOrAppUser):
    def has_permission(self, request, view):
        if IsValidUser.has_permission(self, request, view) \
                and request.method in permissions.SAFE_METHODS:
            return True
        else:
            return IsSuperUserOrAppUser.has_permission(self, request, view)


class IsCurrentUserOrReadOnly(permissions.BasePermission):
    def has_object_permission(self, request, view, obj):
        if request.method in permissions.SAFE_METHODS:
            return True
        return obj == request.user