Пример #1
0
        /// <summary>
        /// Creates OrganizationUserRole
        /// </summary>
        /// <param name="createOrganizationUserRoleCommand">Model for all needed fields to create a tenant</param>
        /// <returns>ID of created OrganizationUserRole</returns>
        /// <exception cref="InvalidCreateOrganizationUserRoleDataError">If create data is not valid</exception>
        /// <exception cref="OrganizationUserRoleAlreadyExistsError">If OrganizationUserRole already exists</exception>
        public Result <int> CreateOrganizationUserRole(CreateOrganizationUserRoleCommand command)
        {
            if (!command.OrganizationUserId.HasValue)
            {
                return(new Result <int>(AuthorizationServiceErrors.InvalidCreateOrganizationDataError(nameof(command.OrganizationUserId))));
            }

            if (!command.OrganizationId.HasValue)
            {
                return(new Result <int>(AuthorizationServiceErrors.InvalidCreateOrganizationDataError(nameof(command.OrganizationId))));
            }

            if (string.IsNullOrEmpty(command.RoleId))
            {
                return(new Result <int>(AuthorizationServiceErrors.InvalidCreateOrganizationDataError(nameof(command.RoleId))));
            }

            var exists = this.organizationUserRoleRepository.ExistsOrganizationUserRole(command.OrganizationUserId.Value, command.OrganizationId.Value, command.RoleId);

            if (exists)
            {
                return(new Result <int>(AuthorizationServiceErrors.EntityAlreadyExistsError(nameof(CreateOrganizationUserRoleCommand))));
            }

            var id = this.organizationUserRoleRepository.CreateOrganizationUserRole(command);

            return(new Result <int>(id));
        }
Пример #2
0
        /// <summary>
        /// Updates an OrganizationUserPermission with passed fields
        /// </summary>
        /// <param name="command">contains ID and fields</param>
        /// <returns></returns>
        public EmptyResult UpdateOrganizationUserPermission(UpdateOrganizationUserPermissionCommand command)
        {
            if (!command.OrganizationUserId.HasValue)
            {
                return(new EmptyResult(AuthorizationServiceErrors.InvalidUpdateOrganizationNameError(nameof(command.OrganizationUserId))));
            }

            if (string.IsNullOrEmpty(command.UserId))
            {
                return(new EmptyResult(AuthorizationServiceErrors.InvalidExternalUserId()));
            }

            if (!organizationUserPermissionRepository.ExistsOrganizationUserPermission(command.OrganizationUserId.Value, command.UserId))
            {
                organizationUserPermissionRepository.CreateOrganizationUserPermission(
                    command.OrganizationUserId.Value,
                    command.UserId,
                    command.Permissions);
            }
            else
            {
                organizationUserPermissionRepository.UpdateOrganizationUserPermission(command);
            }

            return(new EmptyResult());
        }
Пример #3
0
        /// <summary>
        /// Creates RolePermission
        /// </summary>
        /// <param name="createRolePermissionCommand">Model for all needed fields to create a tenant</param>
        /// <returns>ID of created RolePermission</returns>
        /// <exception cref="InvalidCreateRolePermissionDataError">If create data is not valid</exception>
        /// <exception cref="RolePermissionAlreadyExistsError">If RolePermission already exists</exception>
        public Result <int> CreateRolePermission(CreateRolePermissionCommand command)
        {
            if (!command.OrganizationId.HasValue)
            {
                return(new Result <int>(AuthorizationServiceErrors.InvalidCreateOrganizationDataError(nameof(command.OrganizationId))));
            }

            if (string.IsNullOrEmpty(command.RoleId))
            {
                return(new Result <int>(AuthorizationServiceErrors.InvalidCreateOrganizationDataError(nameof(command.RoleId))));
            }

            if (string.IsNullOrEmpty(command.RoleName))
            {
                return(new Result <int>(AuthorizationServiceErrors.InvalidCreateOrganizationDataError(nameof(command.RoleName))));
            }

            if (string.IsNullOrEmpty(command.Permissions))
            {
                return(new Result <int>(AuthorizationServiceErrors.InvalidCreateOrganizationDataError(nameof(command.Permissions))));
            }

            var exists = this.rolePermissionRepository.ExistsRolePermission(command.OrganizationId.Value, command.RoleId);

            if (exists)
            {
                return(new Result <int>(AuthorizationServiceErrors.EntityAlreadyExistsError(nameof(CreateRolePermissionCommand))));
            }

            return(new Result <int>(this.rolePermissionRepository.CreateRolePermission(command)));
        }
Пример #4
0
        public Result <bool> ExistRolePermissionById(string roleId, int?organizationId)
        {
            if (!organizationId.HasValue)
            {
                return(new Result <bool>(AuthorizationServiceErrors.InvalidOrganizationIdError()));
            }

            var result = rolePermissionRepository.ExistsRolePermission(organizationId.Value, roleId);

            return(new Result <bool>(result));
        }
Пример #5
0
        public EmptyResult DeleteRolePermission(DeleteRolePermissionCommand command)
        {
            if (string.IsNullOrEmpty(command.RoleId))
            {
                return(new Result <bool>(AuthorizationServiceErrors.InvalidDeleteEntityError(nameof(command.RoleId))));
            }

            if (!command.OrganizationId.HasValue)
            {
                return(new Result <bool>(AuthorizationServiceErrors.InvalidDeleteEntityError(nameof(command.OrganizationId))));
            }

            rolePermissionRepository.DeleteRolePermission(command);
            return(new Result <bool>());
        }
Пример #6
0
        /// <summary>
        /// Updates an RolePermission with passed fields
        /// </summary>
        /// <param name="command">contains ID and fields</param>
        /// <returns></returns>
        public EmptyResult UpdateRolePermission(UpdateRolePermissionCommand command)
        {
            if (!command.OrganizationId.HasValue)
            {
                return(new EmptyResult(AuthorizationServiceErrors.InvalidUpdateOrganizationNameError(nameof(command.OrganizationId))));
            }

            if (string.IsNullOrEmpty(command.RoleId))
            {
                return(new EmptyResult(AuthorizationServiceErrors.InvalidUpdateOrganizationNameError(nameof(command.RoleId))));
            }

            if (!rolePermissionRepository.ExistsRolePermission(command.OrganizationId.Value, command.RoleId))
            {
                return(new EmptyResult(AuthorizationServiceErrors.InvalidUpdateOrganizationNameError(nameof(command.OrganizationId))));
            }

            rolePermissionRepository.UpdateRolePermission(command);

            return(new EmptyResult());
        }
Пример #7
0
        public Result <OrganizationUserAndRolePermissionsListView> QueryOrganizationUserAndRolePermission(QueryOrganizationUserAndRolePermissionCriteria criteria)
        {
            if (string.IsNullOrEmpty(criteria.UserId))
            {
                return(new Result <OrganizationUserAndRolePermissionsListView>(AuthorizationServiceErrors.InvalidExternalUserId()));
            }

            if (!criteria.OrganizationId.HasValue)
            {
                return(new Result <OrganizationUserAndRolePermissionsListView>(AuthorizationServiceErrors.InvalidOrganizationIdError()));
            }
            var userPermissions = organizationUserPermissionRepository.QueryAllOrganizationUserPermission(criteria.OrganizationId.Value, criteria.UserId);
            var rolePermissions = rolePermissionRepository.QueryRolePermissionByExternalUserId(criteria.OrganizationId.Value,
                                                                                               criteria.UserId);
            var result = new OrganizationUserAndRolePermissionsListView
            {
                OrganizationId     = criteria.OrganizationId,
                OrganizationUserId = rolePermissions.FirstOrDefault(rp => rp.OrganizationUserId.HasValue)
                                     ?.OrganizationUserId ??
                                     userPermissions.FirstOrDefault(up => up.OrganizationUserId.HasValue)
                                     ?.OrganizationUserId,
                UserId      = criteria.UserId,
                Permissions = new List <string>()
            };

            if (userPermissions != null && userPermissions.Any())
            {
                result.Permissions.AddRange(userPermissions.Select(up => up.Permissions));
            }
            if (rolePermissions != null && rolePermissions.Any())
            {
                result.Permissions.AddRange(rolePermissions.Select(up => up.Permissions));
            }

            return(new Result <OrganizationUserAndRolePermissionsListView>(result));
        }