api.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:geekcloud 作者: Mr-Linus 项目源码 文件源码
def require_role(role='user'):
    """
    decorator for require user role in ["super", "admin", "user"]
    ????????? ["super", "admin", "user"]????
    """

    def _deco(func):
        def __deco(request, *args, **kwargs):
            request.session['pre_url'] = request.path
            if not request.user.is_authenticated():
                return HttpResponseRedirect(reverse('login'))
            if role == 'admin':
                # if request.session.get('role_id', 0) < 1:
                if request.user.role == 'CU':
                    return HttpResponseRedirect(reverse('index'))
            elif role == 'super':
                # if request.session.get('role_id', 0) < 2:
                if request.user.role in ['CU', 'GA']:
                    return HttpResponseRedirect(reverse('index'))
            return func(request, *args, **kwargs)

        return __deco

    return _deco
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号