private static IEnumerable <Menu> getCompanyPermissions(Guid company, UserRole userRole, Website website) { var repository = Factory.CreatePermissionRepository(); var userRolePermitMenus = repository.QueryPermitMenusOfUserRole(userRole, website); var allowableMenus = repository.QueryCompanyPermitMenus(company, website, PermissionType.Allowable); var forbiddenMenus = repository.QueryCompanyPermitMenus(company, website, PermissionType.Forbidden); var permitMenus = PermissionCollection.Union(userRolePermitMenus, allowableMenus); return(PermissionCollection.Subtract(permitMenus, forbiddenMenus)); }
private static PermissionCollection QueryPermissionOfCommonUser(Guid company, UserRole userRole, Guid user, Website website) { var repository = Factory.CreatePermissionRepository(); var userPermissionRoles = repository.QueryPermissionRolesOfUser(user, website); var userPermissions = PermissionCollection.Union(userPermissionRoles); var companyPermissions = getCompanyPermissions(company, userRole, website); var finalPermissions = PermissionCollection.Intersact(userPermissions, companyPermissions); return(new PermissionCollection(finalPermissions)); }