Exemple #1
0
        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);
        }
Exemple #2
0
        //获取所有的学习顾问或排课顾问
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        /// <summary>
        /// 获取当前部门以外的用户列表 by wangligui
        /// </summary>
        public List <DepartmentUserResponse> GetUserOutDepartment(int departmentId, int loginUserId)
        {
            var isSysAdmin = CommonAction.IsSysAdmin(loginUserId);

            return(DepartmentUserDbAction.GetUserOutDepartment(departmentId, loginUserId, isSysAdmin));
        }