public List <int> GetDeptChildByDeptId(int deptId)
        {
            if (UserRepository == null)
            {
                UserRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <Entity.SysUser> >();
            }
            if (DepartRepository == null)
            {
                DepartRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <Entity.SysDepartments> >();
            }
            var all  = DepartRepository.GetQuery().ToList();
            var dept = all.FirstOrDefault(o => o.DeptId == deptId);
            var list = new List <Entity.SysDepartments>();

            SetChilds(dept, all, list);
            var deptIds = list.Select(o => o.DeptId).ToList();

            return(deptIds);
        }
Exemple #2
0
        public List <SysMenuLimitModel> GetUserMenus(string userId)
        {
            var list = new List <SysMenuLimitModel>();

            if (UserRepository == null)
            {
                UserRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <SysUser> >();
            }
            if (MenuRepository == null)
            {
                MenuRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <SysMenus> >();
            }
            if (RoleDataRepository == null)
            {
                RoleDataRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <SysRoleData> >();
            }
            if (RoleRepository == null)
            {
                RoleRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <SysRoles> >();
            }
            var user = UserRepository.Find(o => o.UserId == userId);

            if (user != null)
            {
                if (user.IsSuper)
                {
                    list = MenuRepository.GetQuery(o => o.Status).OrderBy(o => o.SortOrder).Select(y => new SysMenuLimitModel()
                    {
                        Id         = y.Id,
                        MenuId     = y.MenuId,
                        PMenuId    = y.PMenuId,
                        SortOrder  = y.SortOrder,
                        Status     = y.Status,
                        Title      = y.Title,
                        URL        = y.URL,
                        LimitIdStr = "-1"
                    }).ToList();
                }
                else if (!user.RoleIds.IsNullOrEmpty())
                {
                    var rids      = user.RoleIds.ToIntArray();
                    var queryRole = RoleRepository.GetQuery();
                    var queryMenu = MenuRepository.GetQuery();
                    var queryData = RoleDataRepository.GetQuery();
                    var query     = from x in queryData
                                    join y in queryMenu on x.MenuId equals y.MenuId
                                    join z in queryRole on x.RoleId equals z.RoleId
                                    where y.Status && z.Status && rids.Contains(x.RoleId) && x.HasSelected
                                    orderby x.SortOrder
                                    select new SysMenuLimitModel()
                    {
                        Id         = y.Id,
                        MenuId     = y.MenuId,
                        PMenuId    = y.PMenuId,
                        Status     = y.Status,
                        Title      = y.Title,
                        URL        = y.URL,
                        SortOrder  = x.SortOrder,
                        LimitIdStr = z.Limitids
                    };
                    list = query.ToList();
                }
            }
            return(list);
        }