天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1205|回复: 6

能不能根据用户获得所有角色集合

[复制链接]
cebuer 发表于 2012-4-1 09:46:28 | 显示全部楼层 |阅读模式
本帖最后由 purple 于 2012-4-1 15:27 编辑

要求:可以根据不同软件获得该用户的所有角色不同的集合
purple 发表于 2012-4-1 10:02:51 | 显示全部楼层
您好,请问您是要做什么?方便描述您实际的需要吗?
 楼主| cebuer 发表于 2012-4-1 13:44:11 | 显示全部楼层
已解决,,谢谢
purple 发表于 2012-4-1 13:54:51 | 显示全部楼层
您好,请问您是东莞力凯科技的技术人员吗?如果不是,方便分享您的解决方案吗?
 楼主| cebuer 发表于 2012-4-1 14:18:50 | 显示全部楼层
回复 4# purple


    我是天翎的 ,xm1/cebuer/左国尧
 楼主| cebuer 发表于 2012-4-1 15:24:31 | 显示全部楼层
  1. /**
  2. *获得当前应用下,用户拥有的所有角色名称
  3. */
  4. function getRoleNamesByUser(user){
  5.         var rolesNames ="";
  6.         var currentApplicationid =getApplication();
  7.         var roles=user.getRoles();
  8.         if(roles !=null){
  9.                 for(var iter = roles.iterator();iter.hasNext();){
  10.                 var roler = iter.next();
  11.                 if(currentApplicationid.equals(roler.getApplicationid())){               
  12.                                 rolesNames+=roler.getName() +";";
  13.                         }
  14.                 }
  15.         }
  16.         return rolesNames ;
  17. }

  18. /**
  19. * 判断是否存在
  20. * arryName 待验证数组,names
  21. *arryName=["采购","财务"] or ["财务"]
  22. */
  23. function isIndexOf(arryName,names){
  24.           var flag = false ;
  25.           for(var i =0;i<arryName.length;i++){
  26.                 if(names.indexOf(arryName[i]) >-1){
  27.                                         flag = true ;
  28.                                         break ;
  29.                         }
  30.                 }
  31.         return flag ;
  32. }
  33. /**
  34. *  先从session获取
  35. */
  36. function isPowerRoleByName(arrayRoleName){
  37.         var user = getWebUser();
  38.         var rolesNames = "";
  39.         if(user !=null){
  40.                 var userLoginName = user.getLoginno();
  41.                 var request = $WEB.getParamsTable().getHttpRequest();
  42.                         if(request !=null && request.getSession()!=null){
  43.                                                 var session = request.getSession();
  44.                                             rolesNames = session.getAttribute(userLoginName+"roleIsPower");       
  45.                                                 if(isNotNull(rolesNames)){                                                            
  46.                                                                 return isIndexOf(arrayRoleName,rolesNames) ;
  47.                                                 }else{
  48.                                                             rolesNames = getRoleNamesByUser(user);
  49.                                                                 session.setAttribute(userLoginName+"roleIsPower",rolesNames);// 存入session
  50.                                                                 return  isIndexOf(arrayRoleName,rolesNames) ;
  51.                                                 }
  52.                         }else{//session isnull
  53.                                             var rolesNames =getRoleNamesByUser(user);
  54.                                                 return  isIndexOf(arrayRoleName,rolesNames) ;
  55.                         }
  56.         }else{
  57.                                 return false ; // 没有用户
  58.         }
  59. }
复制代码
purple 发表于 2012-4-1 15:25:31 | 显示全部楼层
非常感谢楼主的共享。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 23:10

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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