目前想做一个按钮级的权限控制。之前做成页面级的是这样做的:
数据库表有: 用户表  角色表  权限菜单表  角色权限中间表  有需要可以加入部门表或用户组表
我想如果做得按钮级的话,我打算加一个具体的按钮表, 我上面所说的权限菜单表其实就是具体的每个页面,所以我准备将按钮表与权限菜单表中的具体的每个页面进行关联。这样在分配权限时,同时给每个按钮一起分配。
但是如果我这样做的话,在对其进行过滤的时候,是不是在每个页面中都去加JS进行判断,如果有该按钮的操作权限就显示,反之则隐藏呢?希望大家给点意见

解决方案 »

  1.   

    老大你不是在做北大青鸟3期的JAVA结业项目吧……
    怎么看着这么像
      

  2.   

    我来推荐一个在线试听课程http://www.cdlanah.com/zxst/
      

  3.   

    我以前在别人的代码基础上做过一个权限过滤的树结构
    基本上程序底层架构跟你一样
    只不过有一些细节上的区别
    在具体的权限表中,多加一列,用来储存该权限能访问的页的URL,也就是说,把权限具体到页
    然后当用户登陆的时候,按用户→角色→权限,返回一个权限列表
    然后通过JS绑定到树上
    这样的话,可以在登陆的同时直接把权限过滤好
      

  4.   

    我先说说我自己的想法哈,我打算给每个页面当中的一类按钮都取一个一样的ID,例如:添加按钮,我就取一个ID 'add' ,我再写一个过滤器,因为系统登陆之后,我肯定将登陆用户的权限保存起来了,当我点击具体每个页面的时候,在过滤器中通过该页面的地址或者我传一参数,即可知道当前请求的页面。已知当前请求的页面,即可知道当前用户在该页面中能操作哪些按钮。然而我在过滤器中就可以进行判断哪个按钮显示哪个按钮不显示了(已知每个按钮的具体ID)。 
    不知我的想法可不可以,希望大家给点意见。
      

  5.   

    我之前和你做的一个样。也是在权限表里有个url,而且权限表自关联,通过大菜单得到具体的小菜单,再生成树或者其它控件,可是那样做的话,做不到按钮级啊
      

  6.   

    按扭功能不外呼add delete update query 
    权限里操作再分成这4个
      

  7.   

    如果在权限菜单表里加4个的话,那么这几个操作应该是跟角色关联的对吧。我的这些操作不是对所有的模块都是一样的。有可能一个用户对A模块有add或update的操作,但是对B模块没有这些操作的
      

  8.   

    我7楼所说的,不要每次访问都去访问数据库啦,和你的想法差不多。我如果添加了按钮表的话,再给角色分配权限的时候就把按钮的权限给分配好了。A用户登陆以后,已知A用户所有的权限了。在过滤器中只要拿出来比较就OK了。你所说的将  你把生成超连接的代码改成按扭不就得了……  这里没搞明白。
      

  9.   

    以前做树的时候,我不知道你是怎么实现的
    我是在JS里直接控制树所在的“容器”的内部代码,比如:body的innerHtml
    这样的话,JS中就是
         开始递归循环树
                  <a href='url'>树节点的内容</a>
         结束循环
    这样的话,把内部的A标签修改一下,改成<input type....><...>,这样就能做按扭了
      

  10.   

    我原先做的是,目标页里的权限树所在的容器是空白的
    通过JS的一个函数往里动态的写代码来生成树
    ……
    实际上我用了FRAME,左面是固定死的……
    只有MAINFRAME是活动的
    LEFTFRAME原来是空的,然后引用一段JS代码
    在代码中,通过接收动态的权限列表,操纵LEFTFRAME的BODY的INNERHTML
    就是动态的用JS函数把我需要的内容写到BODY标签中间去
    这样就能动态生成导航树如果按我的这个方法的话,我完全可以把我需要的内容从超连接改成按扭
    这样就能动态生成了
      

  11.   

    left页面是空白的,但是main页面是已知的啊,就是具体的业务页面了,你是说这个动态生成吗?
      

  12.   

    动态生成的是LEFTFRAME的树节点
    这样的话,我在树节点的A标签里,把TARGET定到MAINFRAME就行了
    每次访问超连接都是直接在MAINFRAME里
    实际上,我的业务分类就是写在树里的
    然后在初次登陆的时候,在MAINFRAME里显示个欢迎页就一切OK了
      

  13.   

    我所说的main页面指的是具体的业务页面,不是main.jsp 呵呵 main.jsp写不写一句话都无所谓。
      

  14.   

    我也是啊,后台肯定有N多的JSP对应业务的,不过是关联到MAINFRAME的