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);
            }
        }
Exemplo n.º 4
0
 public static IEnumerable <SubdivisionPermissionNode> GetAllSubdivisionEntityPermissions(IUnitOfWork uow, int subdivisionId, IPermissionExtensionStore permissionExtensionStore)
 {
     return(new EntityRepositories.Permissions.PermissionRepository().GetAllSubdivisionEntityPermissions(uow, subdivisionId, permissionExtensionStore));
 }