コード例 #1
0
 public List<string> Handle(ActivityAuth auth)
 {
     List<string> result = new List<string>();
     ISqlMapper mapper = Common.GetMapperFromSession();
     UserBLL bll = new UserBLL();
     string userid = bll.GetCurrentUser().User.ID;
     //string userid = "16";
     RoleDao roledao = new RoleDao(mapper);
     User_RoleDao urdao = new User_RoleDao(mapper);
     string[] roleids = auth.Value.Split(',');
     var subroles = roledao.Query(new RoleQueryForm { ParentIDs = roleids.ToList() });
     var urs = urdao.Query(new User_RoleQueryForm { UserID = userid });
     var roles = subroles.FindAll(t => urs.Exists(p => p.RoleID == t.ID));
     if (roles == null || roles.Count == 0)
     {
         result.Add(userid);
     }
     else
     {
         IWorkflowAuthorityHandler handler = new RoleWorkflowAuthorityHandler();
         foreach (var role in roles)
         {
             if (roleids.Any(t => t == role.ParentID))
             {
                 result.AddRange(handler.Handle(new ActivityAuth
                 {
                     Value = role.ParentID,
                 }));
             }
         }
     }
     return result;
 }
コード例 #2
0
        public static IWorkflowAuthorityHandler CreateHandler(string type)
        {
            IWorkflowAuthorityHandler handler = null;

            switch (type)
            {
            case "role":
                handler = new RoleWorkflowAuthorityHandler();
                break;

            case "user":
                handler = new UserWorkflowAuthorityHandler();
                break;

            case "creatorleader":
                handler = new CreatorLeaderWorkflowAuthorityHandler();
                break;

            case "currentleader":
                handler = new CurrentLeaderWorkflowAuthorityHandler();
                break;

            case "leaderinrole":
                handler = new LeaderInRoleWorkflowAuthorityHandler();
                break;

            default:
                throw new Exception("流程权限类型设置错误,未能找到权限类型:" + type);
            }
            return(handler);
        }
コード例 #3
0
 public static IWorkflowAuthorityHandler CreateHandler(string type)
 {
     IWorkflowAuthorityHandler handler = null;
     switch (type)
     {
         case "role":
             handler = new RoleWorkflowAuthorityHandler();
             break;
         case "user":
             handler = new UserWorkflowAuthorityHandler();
             break;
         case "creatorleader":
             handler = new CreatorLeaderWorkflowAuthorityHandler();
             break;
         case "currentleader":
             handler = new CurrentLeaderWorkflowAuthorityHandler();
             break;
         case "leaderinrole":
             handler = new LeaderInRoleWorkflowAuthorityHandler();
             break;
         default:
             throw new Exception("流程权限类型设置错误,未能找到权限类型:" + type);
     }
     return handler;
 }
コード例 #4
0
        public List <string> Handle(ActivityAuth auth)
        {
            List <string> result = new List <string>();
            ISqlMapper    mapper = Common.GetMapperFromSession();
            UserBLL       bll    = new UserBLL();
            string        userid = bll.GetCurrentUser().User.ID;
            //string userid = "16";
            RoleDao      roledao = new RoleDao(mapper);
            User_RoleDao urdao   = new User_RoleDao(mapper);

            string[] roleids  = auth.Value.Split(',');
            var      subroles = roledao.Query(new RoleQueryForm {
                ParentIDs = roleids.ToList()
            });
            var urs = urdao.Query(new User_RoleQueryForm {
                UserID = userid
            });
            var roles = subroles.FindAll(t => urs.Exists(p => p.RoleID == t.ID));

            if (roles == null || roles.Count == 0)
            {
                result.Add(userid);
            }
            else
            {
                IWorkflowAuthorityHandler handler = new RoleWorkflowAuthorityHandler();
                foreach (var role in roles)
                {
                    if (roleids.Any(t => t == role.ParentID))
                    {
                        result.AddRange(handler.Handle(new ActivityAuth
                        {
                            Value = role.ParentID,
                        }));
                    }
                }
            }
            return(result);
        }