public UserPermissionPage GetUserPermissionPage(int userId)
        {
            var userPermisssionPage = DataCache.Get <UserPermissionPage>(CacheKey.KeyUserPermissionPage + userId);

            if (userPermisssionPage.IsNullOrEmpty())
            {
                userPermisssionPage = new UserPermissionPage
                {
                    UserId = userId,
                    Pages  = _pageDao.GetPageListByUserId(userId).Select(PageService.GetPageFromPagePo).ToList()
                };

                var roles = _roleDao.GetRoleList(userId).Where(role => role.IsValid);
                foreach (var role in roles)
                {
                    var rolePermissionPage = new RolePermissionPage
                    {
                        RoleId = role.Id,
                        Pages  = _pageDao.GetPageListByRoleId(role.Id).Select(PageService.GetPageFromPagePo).ToList()
                    };
                    foreach (var page in rolePermissionPage.Pages)
                    {
                        if (!userPermisssionPage.Pages.Select(p => p.Id).ToList().Contains(page.Id))
                        {
                            userPermisssionPage.Pages.Add(page);
                        }
                    }
                }
                DataCache.Insert(CacheKey.KeyUserPermissionPage + userId, userPermisssionPage);
            }
            return(userPermisssionPage);
        }
        public UserRoles GetUserRoles(int userId)
        {
            var userRoles = new UserRoles
            {
                User  = GetUser(userId),
                Roles = _roleDao.GetRoleList(userId).Select(RoleService.GetRoleFromRolePo).ToList()
            };

            return(userRoles);
        }
Esempio n. 3
0
 //todo unitestd
 public List <Role> GetRoleList(string strOrder)
 {
     return(_roleDao.GetRoleList(strOrder).Select(GetRoleFromRolePo).ToList());
 }