public List <UserLiteDto> GetGroupUsersByFunctionKey(string functionKey, int userId, int menuId, int appId = 0) { var engine = PermissionDb.CreateEngine(); // var funcId = engine.Esmart_Sys_Functions.Where(n => n.FunctionKey == functionKey && n.).Select(n => n.FunctionId).FirstOrDefault(); //if (funcId < 1) return new List<UserLiteDto>(0); var query1 = (from user in engine.Esmart_Sys_Users join userRole in engine.Esmart_Sys_User_Roles on user.UserID equals userRole.UserId join roleFunc in engine.Esmart_Sys_Role_Navigation_Function on userRole.RoleId equals roleFunc.RoleId join func in engine.Esmart_Sys_Functions on roleFunc.FunctionId equals func.FunctionId where user.Isleave != 1 && user.IsDelete != 1 && func.FunctionKey == functionKey && (menuId > 0 ? roleFunc.NavigationId == menuId : true) select new UserLiteDto { UserID = user.UserID, Ename = user.Ename, TrueName = user.TrueName, WorkNo = user.WorkNo }).Union( from user in engine.Esmart_Sys_Users join userFunc in engine.Esmart_Sys_User_Navigation_Function on user.UserID equals userFunc.UserId join func in engine.Esmart_Sys_Functions on userFunc.FunctionId equals func.FunctionId where user.Isleave != 1 && user.IsDelete != 1 && func.FunctionKey == functionKey && (menuId > 0 ? userFunc.NavigationId == menuId : true) select new UserLiteDto { UserID = user.UserID, Ename = user.Ename, TrueName = user.TrueName, WorkNo = user.WorkNo }); var groupUsers = DepartmentUserDbAction.GetGroupsByUserId(userId); var filterto = groupUsers.ConvertAll(c => c.UserID); List <UserLiteDto> lstUsers = CommonAction.IsSysAdmin(userId)?query1.ToList(): query1.Where(w => filterto.Contains(w.UserID)).ToList(); var allUsers = lstUsers.Where((x, i) => lstUsers.FindIndex(f => f.UserID == x.UserID) == i).ToList(); return(allUsers); }
//获取所有的学习顾问或排课顾问 private static List <UserLiteDto> GetAllConsultant(IEnumerable <string> roleNames, bool isGettingStudyConsultant) { var engine = PermissionDb.CreateEngine(); var query = from user in engine.Esmart_Sys_Users join userRole in engine.Esmart_Sys_User_Roles on user.UserID equals userRole.UserId join role in engine.Esmart_Sys_Roles on userRole.RoleId equals role.RoleId where user.Isleave != 1 && user.IsDelete == 0 //&& !excludeUserIds.Contains(userRole.UserId) && roleNames.Contains(role.RoleName) select new UserLiteDto { UserID = user.UserID, Ename = user.Ename, TrueName = user.TrueName, WorkNo = user.WorkNo, Sex = user.Sex }; if (!isGettingStudyConsultant) { //11月24日 添加了排除 教务质监 角色的关联用户 //12月1日 学习顾问不再排除教务质监 var query1 = from userRole in engine.Esmart_Sys_User_Roles join role in engine.Esmart_Sys_Roles on userRole.RoleId equals role.RoleId where role.RoleName == BuiltinRoles.ScheduleConsultantAdmin select userRole.UserId; var excludeUserIds = query1.ToArray(); query = query.Where(n => !excludeUserIds.Contains(n.UserID)); } var list = query.Distinct().ToList(); //将超级管理员排除 list.RemoveAll(n => CommonAction.IsSysAdmin(n.UserID)); return(list); }
public List <MenuResponse> GetMenuByUserId(int userId, int appId, out List <RoleResponse> roles) { roles = UserManagerDb.GetRolesByUserId(userId); List <MenuResponse> menus = null; if (CommonAction.IsSysAdmin(userId)) { menus = RoleNavigationFunctionDbAction.GetAdminMenu(appId); } else { menus = new List <MenuResponse>(); menus.AddRange(RoleNavigationFunctionDbAction.GetMenuFunctions(roles.Select(n => n.RoleId).ToList(), appId)); menus.AddRange(UserNavigationFunctionDbAction.GetMenuFunctions(new List <int> { userId }, appId)); menus = menus.Where((i, j) => menus.FindIndex(f => f.Id == i.Id) == j).ToList(); } //var menus = CommonAction.IsSysAdmin(userId) // ? RoleNavigationFunctionDbAction.GetAdminMenu(appId) // : RoleNavigationFunctionDbAction.GetMenuFunctions(roles.Select(n => n.RoleId).ToList(), appId); var topMenus = new List <MenuResponse>(); foreach (var fun in menus) { GetTopMenu(fun, menus, topMenus); } foreach (var menu in topMenus) { SetChildren(menus, menu); } return(topMenus); }
/// <summary> /// 获取当前部门以外的用户列表 by wangligui /// </summary> public List <DepartmentUserResponse> GetUserOutDepartment(int departmentId, int loginUserId) { var isSysAdmin = CommonAction.IsSysAdmin(loginUserId); return(DepartmentUserDbAction.GetUserOutDepartment(departmentId, loginUserId, isSysAdmin)); }