Skip to content

Commit

Permalink
change to immutable
Browse files Browse the repository at this point in the history
  • Loading branch information
bessudnov committed Nov 21, 2023
1 parent 9e7765d commit 9818fc3
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 7 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,11 @@ $accessToken = $apiClient->getOAuthClient()->getAccessTokenByCode($_GET['code'])
### Авторизация с правами конкретного пользователя аккаунта
Начиная с версии 1.4.0 появилась возможность авторизоваться с правами конкретного пользователя, если токен был выпущен администратором аккаунта.

Для авторизации под пользователем аккаунта - необходимо задать ID пользователя у объекта типа ```\AmoCRM\Client\AmoCRMApiClient```.
Для авторизации под пользователем аккаунта - необходимо задать ID пользователя у объекта типа ```\AmoCRM\Client\AmoCRMApiClient```. Метод вернет новый объект с установленным контекстом.

```php
$apiClient = new \AmoCRM\Client\AmoCRMApiClient($clientId, $clientSecret, $redirectUri);
$apiClient->setContextUserId(123);
$apiClientWithContext = $apiClient->withContextUserId(123);
```


Expand Down
4 changes: 2 additions & 2 deletions examples/user_context_actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ function (AccessTokenInterface $accessToken, string $baseDomain) {
);

$contextUserId = 123;
$apiClient->setContextUserId($contextUserId);
$apiClientWithContext = $apiClient->withContextUserId($contextUserId);

//Получим свойства аккаунта и сравним юезра
try {
$account = $apiClient->account()->getCurrent();
$account = $apiClientWithContext->account()->getCurrent();

echo 'Текущий юзер, тот кого вы передали? - ' . ($account->getCurrentUserId() === $contextUserId ? 'да' : 'нет');
} catch (AmoCRMApiException $e) {
Expand Down
8 changes: 5 additions & 3 deletions src/AmoCRM/Client/AmoCRMApiClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -115,15 +115,17 @@ public function getContextUserId(): ?int

/**
* Для админских токеном можно задать пользователя аккаунта, в контексте которого будет сделан запрос
* Метод возвращает новый объект апи клиента с установленным контекстом
* @param int|null $contextUserId
*
* @return $this
*/
public function setContextUserId(?int $contextUserId): AmoCRMApiClient
public function withContextUserId(?int $contextUserId): AmoCRMApiClient
{
$this->contextUserId = $contextUserId;
$apiClient = clone $this;
$apiClient->contextUserId = $contextUserId;

return $this;
return $apiClient;
}

/**
Expand Down

0 comments on commit 9818fc3

Please sign in to comment.