zoukankan      html  css  js  c++  java
  • ssh整合easyui的权限设计(基础数据实现)

    基于基础数据库建立完毕,建立对基础数据的操作。

    用户的增删改,角色的增删改,action的增删改。

    首先介绍用户增删改。

    仅仅为测试数据(不要钻牛角尖说没验证,目前主要是实现user表关联role表)

    (crud操作后面会专门写一篇此处只关心绑定角色)

    思路为:点击分配角色获取角色列表,将当前选中的用户id和角色id发送到action层。

    简单叙述下前台需要做些什么:

    1.获取当前用户id(id为空验证要加上)

    2.获取选中角色id(id为空验证要加上)

    3.ajax操作

    4.操作完以后需要实时刷新当前表(各种细节不再贴代码)

    下面为点击保存时的ajax代码(只写关键性代码其余代码省略)

    $.ajax({
                                     type: 'POST',
                                     url: 'userAction!changeRole.action' ,
                                     data:{"id":id,"roleId":row.id},
                                     success : function(data) {
                                         $("#UserList_dg").datagrid('reload');
                                         message.show(data);  
                                         $("#userList_dialog").dialog('close');
                                     }
                                });

    下面是action层代码

    简答叙述下action需要做些什么

    1.获取roleid

    2.通过userid获取对应实体

    3.将role实体加入到user实体中

    4.进行保存user实体

    public void changeRole() {
            Json j = new Json();
            try {
                String roleId = getRequest().getParameter("roleId");
                T_role role = new T_role();
                role.setId(roleId);
                T_user u = service.getById(id);
                Set<T_role> r = new HashSet<T_role>();
                r.add(role);
                u.setRole(r);
                service.update(u);
                j.setMsg("修改角色成功");
                j.setSuccess(true);
            } catch (Exception e) {
                // TODO: handle exception
                j.setMsg("修改角色失败");
                j.setSuccess(false);
            }
            writeJson(j);
        }

    (此处只做1个角色的保存,如果保存多个角色,需要前台发送多个角色id,可以数组的形式,然后action进行循环将roleid加入到set中)

    这样就将用户和角色进行了关联。

    下面进行角色和action关联

    简单叙述下前台需要做什么

    1.获取当前角色id

    2.获取所选权限树节点的id(这里没有看到按钮的action因为我没做,加个判断保存节点类型为菜单或者按钮就可以)

    3.ajax

    4.前台刷新(细节问题不再重复)

    前台核心代码

    var m = window.frames['aa'].contentWindow;
                        var nodes = m.$("#AllTreeList_tree").tree('getChecked');
                        var treeID = "";
                        if (nodes == null || nodes.length == 0) {
                            treeID = "";
                        } else {
                            for (i = 0; i < nodes.length; i++) {
                                if (treeID == "") {
                                    treeID = nodes[i].id;
                                } else {
                                    treeID = nodes[i].id + "," + treeID;
                                }
                            }
                        }
                        $.ajax({
                            type : 'POST',
                            url : 'roleAction!changeAction.action',
                            data : {
                                "ids" : treeID,
                                "id" : id
                            },
                            success : function(data) {
                                message.show(data);
                                $("#RoleList_dialog").dialog('close');
                                $("#RoleList_dg").datagrid('reload');
    
                            }
                        });

    下面是action层代码

    简单叙述下action需要做什么

    1.获取节点id。(因为是多个,所以要循环加入到set中)

    2.根据角色Id获取角色实体

    3.保存

    4.清空action

    //配置权限
        public void changeAction()
        {
            String[] arr_aciton_id = null;
            
            Json j =new Json();
            
            if(ids!=null&&!ids.equals(""))
            {
                arr_aciton_id = ids.split(","); 
                try {
                    T_role role=service.getById(id);
                    Set<Menu> menu = new HashSet<Menu>();
                    for(int i=0;i<arr_aciton_id.length;i++)
                    {
                        Menu m =new Menu();
                        m.setId(arr_aciton_id[i]);
                        menu.add(m);
                    }
                    role.setMenu(menu);
                    service.update(role);
                    j.setMsg("权限配置成功");
                    j.setSuccess(true);
                } catch (Exception e) {
                    // TODO: handle exception
                    j.setMsg("权限配置失败");
                    j.setSuccess(false);
                }
            }
            else
            {
                try {
                    T_role role=service.getById(id);
                    role.setMenu(null);
                    service.update(role);
                    j.setMsg("权限配置成功");
                    j.setSuccess(true);
                } catch (Exception e) {
                    // TODO: handle exception
                    logger.info(e.toString());
                    j.setMsg("权限配置失败");
                    j.setSuccess(false);
                }
            }
            
            writeJson(j);
        }

    到此为止,用户绑定角色,角色绑定action已经完成。

    下面需要做的是不同的账号登录获取不同的权限。、

    客户端表现为:显示不同的权限树,关联的按钮在没有显示的时候为隐藏状态。

  • 相关阅读:
    【转】免费搭建独立博客,WordPress+独立域名+独立空间
    MongoDB索引
    面向对象
    浏览器为webapp
    转载Chrome浏览器IOS
    浅淡Webservice、WSDL三种服务访问的方式(附案例)
    Plupload
    转载Yale CAS + .net Client 实现 SSO(6)
    java 对Hbase的基本操作
    【精】iOS开发视频教程下载
  • 原文地址:https://www.cnblogs.com/wsy123/p/4463000.html
Copyright © 2011-2022 走看看