注:GroupRange是用户组可以操作的权限值,不能大于对应菜单表的权限值
用户表UserInfo:
ID Name UserGroupID
1 admin 1
2 aaa 2
注:我上面只是取表中的主要字段,并没全部写出来哦
这样在用户登录时记录用户登录用户名,找出用户的UserGroupID,这里方便说明记录UGID
这样就可以利用这个用户组UGID去找出在GroupPurview的权限
假如GroupPurview有一个方法FindByUserGroup_ID
当前用户所属用户组权限GroupCollection= getGroupPurviewProx().FindByUserGroup_ID(UGID);
假如菜单表的所有记录集合为:PurviewCollection,那么就可以根据GroupCollection和PurviewCollection来找出当前用户可以访问的菜单集合了:
var value = from u in PurviewCollectionjoin r in GroupCollectionon u.PurviewID equals r.PurviewID select u;
List<Purview> modules=new List<Purview>();
modules.AddRange(value);
这个modules就是当前用户可访问的菜单集合
然后利用递归把这个菜单树构建出来即可