用ejb,在商务逻辑层有一个实体bean A(表示层是什么形式随你),接收表示层传来的用户id和密码,A对应在数据层的一张表的用户id:
用户id-密码-职位级别-权限级别-子模块id集合(用户id做主键)
根据用户id和密码找到子模块id,返回子模块id号集合。表示层接收返回的子模块id号集合,在表示层生成菜单。
不过窃以为应该用
用户id-密码-职位级别-权限级别-不允许进行的操作集合的代码
(用户id做主键)
比如:用1代表可以执行所有的操作。
      用2表示只允许进行查询操作。。
更合适。表示层接收返回的不允许进行的操作集合的代码,在表示层生成菜单。而且设计菜单的时候可以把所有的操作选项都在表示层表示出来,只是根据返回的不允许进行的操作集合的代码把对应的操作选项disable掉,这样可以使你的表示层“瘦一些”。不过无论怎么做你都要定义好每一种用户对应的不允许的操作集合。如果你熟悉ejb的话--很快。

解决方案 »

  1.   

    我觉的你的想法显得又些麻烦,其实你的操作在权限这一级别,可以用每个权限对应一个一级权限字符串和二级权限字符串,比如说你有A、B 、C、D四个一级别模块可用1和0组成一个字符串,1表示有权限,0表示没权限,同样,二级权限也用这样的方法,不过这样的方法的坏处就是各个级别的菜单的位置要求固定,而且增加新的功能模块后需要更改所有的权限