关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 14521|回复: 8

V3测试版上简单实现按钮权限,希望抛砖引玉......

[复制链接]
发表于 2013-4-9 16:55:59 | 显示全部楼层 |阅读模式
本帖最后由 小号工作 于 2013-4-9 16:55 编辑

1.菜单录入页面
WebRoot\webpage\system\function\function.jsp
菜单等级select下拉处增加一条:
<option value="100" <c:if test="${function.functionLevel eq 100}">selected="selected"</c:if>>操作按钮</option>
value="100"这个随便设置,意思是按钮都是这个数字的

2.java部分
src\jeecg\system\controller\core\UserController.java
修改
@RequestMapping(params = "user")
public String user(HttpServletRequest request) { 这个方法如下:
        /**
         * 用户列表页面跳转
         *
         * @return
         */
        @RequestMapping(params = "user")
        public String user(HttpServletRequest request) {
                HttpSession session = ContextHolderUtils.getSession();
                SessionInfo sessionInfo = (SessionInfo) session.getAttribute(Globals.USER_SESSION);
                CriteriaQuery cq = new CriteriaQuery(TSUserFunctionView.class);
                cq.eq("userId", sessionInfo.getUser().getId());
                cq.eq("functionLevel", Short.parseShort("100"));//100表示按钮(所有按钮都一样)
                cq.add();
                List<TSUserFunctionView> buttonList = systemService.getListByCriteriaQuery(cq, false);
                List<String> btnNameList = new ArrayList<String>();
                if(buttonList != null && buttonList.size() > 0) {
                        for (TSUserFunctionView userFunBtn : buttonList) {
                                btnNameList.add(userFunBtn.getFunctionName());
                        }
                }
                request.setAttribute("btnNameList", btnNameList);
//////////////////////////////////////////////////////  华丽的分割线 ////////////////////////////////////////////////////////////////
               
                return "system/user/userList";
        }

3.增加数据库视图:
select uuid() AS `id`,`u`.`id` AS `userId`,`f`.`functionname` AS `functionname`,`f`.`functionlevel` AS `functionlevel`,`f`.`functionurl` AS `functionurl` from (((`t_s_user` `u` left join `t_s_role_user` `ru` on((`u`.`id` = `ru`.`userid`))) left join `t_s_role_function` `rf` on((`ru`.`roleid` = `rf`.`roleid`))) left join `t_s_function` `f` on((`rf`.`functionid` = `f`.`id`)))

4.添加视图entity类到src\jeecg\system\pojo\base目录下
TSUserFunctionView.zip (632 Bytes, 下载次数: 30)

5.页面按钮权限控制:
WebRoot\webpage\system\user\userList.jsp
userList.zip (941 Bytes, 下载次数: 31)

6.到菜单模块,增加菜单如图,但后绑定到用户角色,刷新就ok啦
菜单.PNG

 楼主| 发表于 2013-4-9 17:00:02 | 显示全部楼层
实现结果:
我添加了 用户录入 和 用户编辑 按钮后
用户.PNG
删除 按钮被屏蔽了
实现比较简单,有待高手指点......
发表于 2013-4-10 21:37:34 | 显示全部楼层
为什么增加试图是select呢
 楼主| 发表于 2013-4-11 08:57:02 | 显示全部楼层
孤风无痕 发表于 2013-4-10 21:37
为什么增加试图是select呢

哦,我没有写完整视图create 语句啊,我用的mysql工具,navicat,然后点击新建视图,只需要写我上面贴的语句就好了,保存时会提示你添加一个视图名称。。。
发表于 2013-4-16 09:45:38 | 显示全部楼层
我要根据用户的权限如:查询全部 或 只能查询自己录入的 数据,用这种方法如何做?
 楼主| 发表于 2013-4-17 09:04:36 | 显示全部楼层
scocai 发表于 2013-4-16 09:45
我要根据用户的权限如:查询全部 或 只能查询自己录入的 数据,用这种方法如何做? ...

兄弟,这个属于数据权限,在本框架内,我还没有什么好的实现思路,不想弄得太复杂,又不想每个类都拼独有的数据过滤条件,所以这个有待后面版本出来参考看一下再说,我知道有朋友接到这个任务正在编写呢
发表于 2013-4-22 16:12:11 | 显示全部楼层
嗯  有时间研究一下
发表于 2013-9-25 08:48:03 | 显示全部楼层
scocai 发表于 2013-4-16 09:45
我要根据用户的权限如:查询全部 或 只能查询自己录入的 数据,用这种方法如何做? ...

我也有这需求
思路是增加 数据-用户关系表
发表于 2013-10-6 11:14:07 | 显示全部楼层
学习中,支持下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表