ssh整合easyui的权限设计(登录不同账号关联不同的role获取不同的权限)

基于权限基础表建立,权限基础数据操作。

简单叙述下流程:

登录账号:获取当前账号绑定的role,根据role获取此role关联的action,action为菜单的时候怎么做,为按钮的时候怎么做。

此处介绍一种最简单的方法仅供参考。

第一步 登录

流程:

前台:

1.发送账号密码到action(各种验证不再讲述)

actiong层

1.根据账号密码进行查询

2.获取role 保存到session

3.获取action 保存到session

4.登录失败提示

public String login() {
        String r = "";

        T_user u = service.getByHql("from T_user where t_name=‘"
                + data.getT_name() + "‘and t_password=‘" + data.getT_password()
                + "‘");
        if (u != null) {
            Set<T_role> roles = u.getRole();
            for (Iterator<T_role> iterator = roles.iterator(); iterator
                    .hasNext();) {
                T_role role = iterator.next();
                getSession().setAttribute("role", role.getName());
                getSession().setAttribute("roleid", role.getId());
                Set<Menu> menu = role.getMenu();
                List<Menu> list = new ArrayList<Menu>(menu);
                getSession().setAttribute("action", list);
            }
            r = "login";
        } else {
            r = "loginOut";
        }
        return r;
    }

这样的话就将所有action保存了到了session中(此处没有加按钮,以后会做一份优化的,此时没有时间)

然后权限菜单树根据角色生成不同的菜单

前台

1.easyui异步树

action层

1.获取角色Id

2.根绝角色id查关联节点

3.生成异步树

//获取当前角色的权限树
    public void getRoleTree()
    {

        String  roleId=(String) getSession().getAttribute("roleid");
        JSONArray jsonArray =new JSONArray();

        String hql="";
        try {
            if(id!=null&&!id.equals(""))
            {
                hql="From Menu Where pid=‘"+id+"‘";

            }
            else
            {
                hql="From Menu Where pid=NULL";
            }

            List<Menu> list=service.find(hql);

            for(int i=0;i<list.size();i++)
            {
                Set<T_role> role =new HashSet<>();
                role=list.get(i).getRole();
                JSONObject json=new JSONObject();

                for (Iterator<T_role> iterator = role.iterator(); iterator.hasNext();) {
                    T_role r = iterator.next();
                    if(r.getId().equals(roleId))
                    {

                        json.put("id", list.get(i).getId());
                        json.put("text",list.get(i).getName());
                        if(service.find("From Menu Where pid=‘"+list.get(i).getId()+"‘").size()==0)
                        {
                            json.put("state","open");
                        }
                        else if(service.find("From Menu Where pid=‘"+list.get(i).getId()+"‘").size()>0)
                        {
                            json.put("state","closed");
                        }
                        JSONObject j=new JSONObject();
                        j.put("url",list.get(i).getUrl());
                        json.put("attributes",j);
                        jsonArray.add(json);

                    }

                    }
                }

        } catch (Exception e) {
            // TODO: handle exception

            logger.info(e.toString());
        }
        writeJson(jsonArray);
    }

对于按钮保存到session的思路为再

getSession().setAttribute("quanxian", "none");在session中保存对应按钮的标识为显示或隐藏

按钮上style="disply:${sessionScope.quanxian}"

这样的话就将对应的按钮隐藏了。当然后面有更好的方法先写到这里,后面会有更好的方法。

时间: 2024-10-29 19:08:55

ssh整合easyui的权限设计(登录不同账号关联不同的role获取不同的权限)的相关文章

ssh整合easyui的权限设计(基础数据实现)

基于基础数据库建立完毕,建立对基础数据的操作. 用户的增删改,角色的增删改,action的增删改. 首先介绍用户增删改. 仅仅为测试数据(不要钻牛角尖说没验证,目前主要是实现user表关联role表) (crud操作后面会专门写一篇此处只关心绑定角色) 思路为:点击分配角色获取角色列表,将当前选中的用户id和角色id发送到action层. 简单叙述下前台需要做些什么: 1.获取当前用户id(id为空验证要加上) 2.获取选中角色id(id为空验证要加上) 3.ajax操作 4.操作完以后需要实时

ssh整合easyui的权限设计

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联. 理解为用户拥有多个角色,角色拥有多个权限.构成了“用 户-角色-权限”的授权模型.并且他们之间的关系为多对多. 对于用户来说,登陆不同的账号密码,所属的角色不同,可拥有不同的操作. (写任何代码之前先要构思我们要做什么,做这件事情,需要哪些最基础的东西,他们之间的关系是什么,如何把他们整合在一起. 如果没有想好,代码写下去会造成反复的修改浪费了时间.) 1.首先我们需要3张表 

关于数据权限设计的一些想法

序言 在各种系统中,要保证数据对象的安全性以及易操作性,使企业的各业务部门.职能部门能够方便而且高效的协同工作,那么一个好的数据权限管理设计就成为一个关键的问题.虽然企业中各个单元的工作流程有所不同,处理的数据对象也有所不同,但是在组织结构.信息的处理方式上具有很多相同的地方,这就为设计数据对象的权限控制提供了一个抽象基础.数据权限的控制不同于一般的功能权限的控制,一般的功能权限指的是某个用户.角色或者是某个用户组能不能操作某种功能.而数据权限指的是某个用户.角色或者是某个用户组对某个数据对象的

JAVA 数据权限设计

数据权限设计 序言 在各种系统中,要保证数据对象的安全性以及易操作性,使企业的各业务部门.职能部门能够方便而且高效的协同工作,那么一个好的数据权限管理设计就成为一个关键的问题.虽然企业中各个单元的工作流程有所不同,处理的数据对象也有所不同,但是在组织结构.信息的处理方式上具有很多相同的地方,这就为设计数据对象的权限控制提供了一个抽象基础.数据权限的控制不同于一般的功能权限的控制,一般的功能权限指的是某个用户.角色或者是某个用户组能不能操作某种功能.而数据权限指的是某个用户.角色或者是某个用户组对

OFBiz 初步 之 权限设计

简介 Apache Open For Business(Apache OFBiz) 是Apache开源的一个经典ERP项目.它提供了一套企业应用,用于集成以及自动化一些企业的"商业流程". 从学习角度来看,它也是一个非常不错的企业级应用框架.这篇文章从OFBiz的权限设计这一切入点来谈谈OFBiz对于应用系统的权限设计. 设计思想简述 OFBiz采用的"安全组"(Security Group)来将"权限"跟"用户"联系起来.系

C# 枚举 Flag属性(权限设计)

枚举是一个可以列举元素的对象,常用于权限,日期,类型等. 如果对一个值可以包含多个,那么可以使用枚举,加上Flags [Flag] public enum Permission { create=1, add=2, delete=4, update=8 } //权限设计通常用2的幂次方,防止值重复 权限相加 Permission addP=Permission.create|Permission.add 判断是否含有此权限 addP.HasFlag(Permission.add); //或者 (

ASP.NET MVC +EasyUI 权限设计(一)开篇

在前一段时间中,老魏的确非常的忙碌,Blog基本上没有更新了,非常的抱歉,那么在后面的时间中,老魏会尽量的抽时间来写的,可能时间上就不太富裕了.今天开始呢,老魏会和大家分享一下关于权限设计的有关文章,由于在园子中已经有很多人写过这方面的知识了,所以老魏在这里呢可不能班门弄斧了,只是把自己的理解和做法和大家分享一下,如果有什么不对的地方或者可以优化的地方,老魏非常希望能够得到各位的建议. 话说权限是在任何的项目或者产品中都必须要用的模块,而这部分呢基本上是作为基础数据来提供的,为了能够控制各个用户

【Struts2+Hibernate3+Spring3】利用SSH整合,完成打印用户表,用户登录、注册、修改密码系统

本文视图尽可能不杂糅其它技术,尽可能少写代码,完成SSH整合.以致于各位在现有网上资料越来越天花龙凤之下,清晰地了解到传说中的三大框架SSH是怎么整合的. 一.SSH的下载 首先SSH的下载就已经是一个难点.SSH三个地方同时推出各自的新技术,已经要求利用Maven完成其版本的同步.毕竟Spring的版本,决定其能整合什么版本的Struts与Hibernate.Spring3.0.5就不能整合Hibernate4.x了.因此本文选取的SSH的版本,分别为struts 2.3.20 GA.Hibe

ASP.NET MVC +EasyUI 权限设计(二)环境搭建

请注明转载地址:http://www.cnblogs.com/arhat 今天突然发现博客园出问题了,老魏使用了PC,手机,平板都访问博客园了,都是不能正常的访问,原因是不能加载CSS,也就是不能访问common.cnblogs.com这个域名,一直出现"Aborted",非常的郁闷. 页面就是这样子的,不知道为什么,难道是不是我的3个终端有问题吧,还是园子的服务器有问题呢?还是路由器的问题呢?到现在这个问题还没解决,郁闷死了!弄得心情非常的不爽. 好吧,不在说这个问题了,开始我们的正