/// <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()); }
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)); }