zoukankan      html  css  js  c++  java
  • 设计角色状态权限控制问题

    http://www.dewen.io/q/4996/%E8%AE%BE%E8%AE%A1%E8%A7%92%E8%89%B2%E7%8A%B6%E6%80%81%E6%9D%83%E9%99%90%E6%8E%A7%E5%88%B6%E9%97%AE%E9%A2%98

    问:

    extjs中,模块包含菜单,菜单对于表格数据,表格含有增加,删除,按钮,设计权限控制。
    还有,表格行数据状态有审核,审批,付款,发货,要求不同角色处理不同的状态。
    请问如何设计?请说下具体思路,不希望是通过按钮隐藏实现。有无办法实现

    答:

    可以实现,说说我的思路,其实不通过页面隐藏按钮,菜单等,更安全的做法无非就是后台权限的验证或者URL验证工作。
    首先,Ext与服务端的校验工作都是Ext。data。Connection这个类中的方法实现的,与服务端的交互首先要被这个类中拦截的。知道了这一点剩下的就少说了,后台的权限可以用很多方法控;制,这里就不说了,不是重点,我们假定用acegi来做验证机,然后根据用户不同的授权来返回:
    A。jsp-;未登录;b.jsp-无权限等等,然后在a。jsp中只是简单的输出MSG。NOLOGIN。b.jsp中输出-MSG。NOT_ACCESS.然后在复写Conection类中的handleResponse方法就可以了。
    例子如下:

    1. Ext.override(Ext.data.Connection, {  
    2.             handleResponse : Ext.data.Connection.prototype.handleResponse.createInterceptor(  
    3.          function(response) {  
    4.              var resText=response.responseText;
    5.         if (resText.length>5) {
    6.            resText=resText.substr(0,9);
    7.         }  
    8.         if (resText=='msg_nologin'){
    9. //未登录,让该用户去登陆
    10.             window.top.location.href = topURL+"/login.jsp";
    11.          } else if (resText=='msg.NO_ACCESS'){
    12.               Ext.Msg.show({
    13.        title : '错误提示',
    14.        msg : '无权访问此功能',
    15.        buttons : Ext.Msg.OK,
    16.        icon : Ext.Msg.INFO
    17.         });
    18.           };    
    19.          } else if (resText=='<!--404--'){
    20.               Ext.Msg.show({
    21.        title : '错误提示',
    22.        msg : '页面未找到',
    23.        buttons : Ext.Msg.OK,
    24.        icon : Ext.Msg.INFO
    25.         });
    26.          }
    27.         })  
    28. });
     

    ----------------------------华丽的分割线-------------------------------------
    完善下前台部分的,也很简单,首先所有的页面在加载之前,要进行权限的过滤的,对于页面的按钮,可以使用json来讲过滤的结果的传递到前台,比如['add_but':true,'remove_but':flase]等,通过boolean值来判别这个按钮是否运行在页面显示
    然后前台部分按照取来的json值进行初始化就可以了

    1. var button = new Ext.Button({  
    2.       hidden:flag,//这里写刚才从后台传递来的boolean值,表明是否显示  
    3.       text:'submit'  
    4. }):
     

    这些json串可以按照角色存在一张页面权限表中去控制

  • 相关阅读:
    gflags命令行参数解析
    Caffe2 Detectron安装错误记录
    geeksforgeeks-Array-Rotation and deletion
    geeksforgeeks-Array-Rotate and delete
    case7 淋巴瘤子类分类实验记录
    FPN-Feature Pyramid Networks for Object Detection
    Python提示AttributeError 或者DeprecationWarning: This module was deprecated解决方法
    win10彻底永久关闭自动更新的方法
    第十三篇:python之异常处理
    第十二篇:python中的面向对象
  • 原文地址:https://www.cnblogs.com/walter371/p/4748116.html
Copyright © 2011-2022 走看看