美文网首页
权限中间件

权限中间件

作者: 仁安天下 | 来源:发表于2019-11-28 19:59 被阅读0次

控制访问权限一般有两种方式,一种是通过前端控制,一种是通过后端控制,在前后端分离的开发中,路由一般都是由前端完成的。前后端不分离的开发,则用后台控制比较好。
下面是一个用后台控制路由的例子

class PermisionMiddleware(object):
    """权限中间件"""
    def process_view(self, request, view, args, kwargs):
        if getattr(view, 'permision_exempt', False):
            return None
        user = request.user
        path = ["/UserViewSet"]
        for i in user.groups.all():
            menu = i.grouptomenu_set.all()
            for j in menu:
                path.append(j.menu.path)
        patten = re.compile(r'\.[^\.]*')
        current_path = request.resolver_match._func_path
        format_path = patten.findall(current_path)[-1]
        print format_path
        if format_path.replace('.', '/') not in path:
            return HttpResponseRedirect('/permission')
        else:
            return None

很简单,思路就是在中间件中检查一下当前登录用户所在组有哪些权限路径,如果没有就默认重定向至指定路径,这里要注意的是,这个指定的路径必须包含一个跳过权限检查的装饰器,不然就会无限循环了。

相关文章

  • DRF之认证、权限、限流

    认证 权限 视图做权限 中间件做权限 DRF做权限 限流

  • django进阶技巧

    权限控制 在有较多方法需要权限控制时:可使用权限控制中间件,permissionMiddleWare 在只有少量方...

  • 权限中间件

    控制访问权限一般有两种方式,一种是通过前端控制,一种是通过后端控制,在前后端分离的开发中,路由一般都是由前端完成的...

  • 基于角色的权限控制原理与实战(14 个视频)

    你会学到什么知识? 后台用户管理 简单的权限验证中间件 添加角色 添加权限 给角色分配权限 给用户分配角色 单角色...

  • 漏洞检测

    # 中间件自查 ## 1.redis 权限最小化 ``` 添加redis 用户 useradd -M -s /sb...

  • Node.js学习——Express使用中间件

    中间件:就是匹配路由之前和匹配路由之后做的一系列的操作。中间件可以用来做权限判断:没有登录跳转到登录页面,登录以后...

  • Koa集成权限认证中间件之Passport

    前言 在我之前的【Node服务集成权限认证中间件之Passport】一文中已经介绍了如何为普通express应用集...

  • go web开发之iris(四)中间件Middleware

    中间件主要用来处理页面的登录校验、跨站请求伪造防御、日志记录、session设置,权限管理等。例如:可以对所有请求...

  • .net core下验证码及二维码登录的实现

    在上一篇[.net core下访问控制层的实现]主要介绍了通过中间件实现逻辑层面的权限控制,本篇主要介绍下在 .n...

  • koa的中间件

    中间件就是匹配路由(匹配任何路由或者特定的路由,其作用比如打印日志,查看权限)之前或者匹配路由完成之后所得一系列操...

网友评论

      本文标题:权限中间件

      本文链接:https://www.haomeiwen.com/subject/fekiwctx.html