zoukankan      html  css  js  c++  java
  • 权限

    表groups(id,name,creator,create_time,remark)

    表users_groups(id,id_user,id_group,creator,create_time,remark)

    表users(id,login_name,name,description,password,email,phone_num,last_login_time,last_logout_time,online,sessionid,creator,create_time,remark)

    表users_roles(id,id_user,id_role,creator,create_time,remark)

    表roles(id,role_name,creator,create_time,remark)==>role_name是角色名称,比如普通用户,管理员,超级管理员

    表roles_permissions(id,id_role,id_permission,creator,create_time,remark)

    表permissions(id,permission_name,description,creator,create_time,remark)==>permission_name是权限名称,比如普通用户权限,管理员权限,超管权限

    表permissions_elements(id,id_permission,id_element,visible,name,description,creator,create_time,remark)

    表elements(id,name,code,creator,create_time,remark)

    另外组也有权限

    表groups_roles(id,id_group,id_role,creator,create_time,remark)

    SELECT p.id,elements.code,p.visible,elements.name FROM ((SELECT * FROM permission_elements WHERE id_permission in(SELECT id_permission FROM roles_permissions WHERE id_role in(SELECT id_role FROM users_roles WHERE id_user=?))) as p) left join elements on p.id_element=elements.id

    我们用上面的SQL语句从数据库中,查询出该用户的权限列表,放到session中,然后对该权限列表进行循环,

    @foreach(PermissionsElements item in (@Session["Permissions"] as List<PermissionsElements>))
    {
         if(item.ElementCode=="" && item.Visible==)
         {
              <div></div>
              //也可以写js
              <script>
                    ...
              </script>
         }      
    }        

    需要注意的是,在视图中的c#代码是在后台执行的,也就是说,在后台已经确定了传到前台的页面的具体内容时什么,传到前台的只是已经确定了的视图页面,和js代码。另外js代码也可以通过权限控制是否要传到前台来。

  • 相关阅读:
    [转]WM_COMMAND消息
    [转]DELPHI之关于String的内存分配
    [转]我们永远优雅,但绝不炫耀:合并BPL包图文教程!
    [转]AS400
    [转]Delphi中变体记录及存储方式
    [转]WaitForMultipleObject与MsgWaitForMultipleObjects用法
    [转]delphi中的HWnd,THandle,HDC有什么区别
    [转]Delphi使用FireBird嵌入式版本发布方法
    [转]如何使用Delphi设计强大的服务器程序
    Oracle递归查询
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/5253159.html
Copyright © 2011-2022 走看看