zoukankan      html  css  js  c++  java
  • 通用权限管理系统组件回答用户的常用问题:操作权限、用户角色、数据权限的解决方法

    1. 页面,通过权限控制某个页面是否能显示
    2. 按钮,通过权限控制某个页面上的按钮是否能显示
    3. 方法,通过权限控制某个方法(Service方法或者Server方法)是否能显示
    4. 数据行,通过权限控制某个用户只能看到某几行数据

    回答1:这个是属于菜单权限,所有的菜单都可以进行配置维护,然后通过 bs 中的 Utilities.GetUserPermissionList(userInfo); 函数可以获取当前用户所有能访问的菜单List。

    回答2:每个按钮都可以编上一个编号,然后在页面上调用 this.IsAuthorized("Project.Edit") 这个函数获取到当前用户是否有这个操作权限。按后按自己的意愿无效或者不显示处理。

    回答3:是否允许调用某个方法,可以参考问题2,每个服务都编上一个号码,调用更底层一点儿封装的函数就可以了,转到定义就可以找到了,permissionService.IsAuthorizedByUser。

    回答4:this.UserInfo.CompanyId, this.UserInfo.SubCompanyId, this.UserInfo.DepartmentId, this.UserInfo.WorkgroupId 类似函数可以获得当前用户的所在公司等信息,

    然后结合当前用户是否在哪个角色 BaseUserManager.IsInRoleByCode的函数

    在结合业务数据库里的公司部门字段,拼接where sql语句就可以了,几乎常用的行权限问题全搞定了,例如下图

  • 相关阅读:
    UNIX时间戳/日期转换
    慎用date获取未来时间
    lnmp集成开发环境安装pdo_dblib扩展
    elementary OS下netbeans中文乱码的问题
    一个轻量级javascript框架的设计模式
    debian清空消息通知
    一道数组方面的笔试题
    模拟post提交
    P2970 [USACO09DEC]自私的放牧Selfish Grazing
    P1063 能量项链
  • 原文地址:https://www.cnblogs.com/jirigala/p/3432164.html
Copyright © 2011-2022 走看看