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 RolePermissionPage GetRolePermissionPage(int roleId) { var rolePermissionPage = new RolePermissionPage { RoleId = roleId, Pages = _pageDao.GetPageListByRoleId(roleId).Select(PageService.GetPageFromPagePo).ToList() }; return(rolePermissionPage); }