public static IList <UserPermissionNode> GetUserAllEntityPermissions(IUnitOfWork uow, int userId, IPermissionExtensionStore permissionExtensionStore) { return(UserPermissionSingletonRepository.GetInstance().GetUserAllEntityPermissions(uow, userId, permissionExtensionStore).ToList()); }
public EntityExtendedPermissionValidator(IPermissionExtensionStore permissionExtensionStore, IEmployeeRepository employeeRepository, IUserRepository userRepository) { PermissionExtensionStore = permissionExtensionStore ?? throw new NullReferenceException(nameof(permissionExtensionStore)); EmployeeRepository = employeeRepository ?? throw new NullReferenceException(nameof(employeeRepository)); UserRepository = userRepository ?? throw new NullReferenceException(nameof(userRepository)); }
public IEnumerable <UserPermissionNode> GetUserAllEntityPermissions(IUnitOfWork uow, int userId, IPermissionExtensionStore permissionExtensionStore) { var entityPermissionList = uow.Session.QueryOver <EntityUserPermission>() .Where(x => x.User.Id == userId) .List(); foreach (var item in entityPermissionList) { var node = new UserPermissionNode(); node.EntityUserOnlyPermission = item; node.TypeOfEntity = item.TypeOfEntity; node.EntityPermissionExtended = new List <EntityUserPermissionExtended>(); foreach (var extension in permissionExtensionStore.PermissionExtensions) { EntityUserPermissionExtended permissionExtendedAlias = null; var permission = uow.Session.QueryOver(() => permissionExtendedAlias) .Where(x => x.User.Id == userId) .And(() => permissionExtendedAlias.PermissionId == extension.PermissionId) .And(x => x.TypeOfEntity.Id == node.TypeOfEntity.Id) .Take(1)?.List()?.FirstOrDefault(); if (permission != null) { node.EntityPermissionExtended.Add(permission); continue; } permission = new EntityUserPermissionExtended(); permission.IsPermissionAvailable = null; permission.PermissionId = extension.PermissionId; permission.User = item.User; permission.TypeOfEntity = item.TypeOfEntity; node.EntityPermissionExtended.Add(permission); } yield return(node); } }
public static IEnumerable <SubdivisionPermissionNode> GetAllSubdivisionEntityPermissions(IUnitOfWork uow, int subdivisionId, IPermissionExtensionStore permissionExtensionStore) { return(new EntityRepositories.Permissions.PermissionRepository().GetAllSubdivisionEntityPermissions(uow, subdivisionId, permissionExtensionStore)); }