小号工作 发表于 2013-4-9 16:55:59

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

本帖最后由 小号工作 于 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目录下


5.页面按钮权限控制:
WebRoot\webpage\system\user\userList.jsp


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


小号工作 发表于 2013-4-9 17:00:02

实现结果:
我添加了 用户录入 和 用户编辑 按钮后

删除 按钮被屏蔽了
实现比较简单,有待高手指点......

孤风无痕 发表于 2013-4-10 21:37:34

为什么增加试图是select呢

小号工作 发表于 2013-4-11 08:57:02

孤风无痕 发表于 2013-4-10 21:37 static/image/common/back.gif
为什么增加试图是select呢

哦,我没有写完整视图create 语句啊,我用的mysql工具,navicat,然后点击新建视图,只需要写我上面贴的语句就好了,保存时会提示你添加一个视图名称。。。

scocai 发表于 2013-4-16 09:45:38

我要根据用户的权限如:查询全部 或 只能查询自己录入的 数据,用这种方法如何做?

小号工作 发表于 2013-4-17 09:04:36

scocai 发表于 2013-4-16 09:45 static/image/common/back.gif
我要根据用户的权限如:查询全部 或 只能查询自己录入的 数据,用这种方法如何做? ...

兄弟,这个属于数据权限,在本框架内,我还没有什么好的实现思路,不想弄得太复杂,又不想每个类都拼独有的数据过滤条件,所以这个有待后面版本出来参考看一下再说,我知道有朋友接到这个任务正在编写呢

♪飛的旋律♫ 发表于 2013-4-22 16:12:11

嗯有时间研究一下

bigshuai 发表于 2013-9-25 08:48:03

scocai 发表于 2013-4-16 09:45 static/image/common/back.gif
我要根据用户的权限如:查询全部 或 只能查询自己录入的 数据,用这种方法如何做? ...

我也有这需求
思路是增加 数据-用户关系表

huanlema 发表于 2013-10-6 11:14:07

学习中,支持下
页: [1]
查看完整版本: V3测试版上简单实现按钮权限,希望抛砖引玉......