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; }
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); }
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; }
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); }