PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.6.1
GiveWP – Donation Plugin and Fundraising Platform v4.16.6.1
4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / vendor-prefixed / stellarwp / licensing-api-client / src / Http / AuthState.php
give / vendor / vendor-prefixed / stellarwp / licensing-api-client / src / Http Last commit date
Factories 3 months ago ApiUri.php 3 months ago ApiVersion.php 3 months ago AuthContext.php 3 months ago AuthState.php 3 months ago JsonDecoder.php 3 months ago RequestBuilder.php 3 months ago RequestExecutor.php 3 months ago RequestHeaderCollection.php 3 months ago RetryPolicy.php 3 months ago
AuthState.php
99 lines
1 <?php declare(strict_types=1);
2
3 namespace Give\Vendors\LiquidWeb\LicensingApiClient\Http;
4
5 use InvalidArgumentException;
6 use Give\Vendors\LiquidWeb\LicensingApiClient\Exceptions\MissingAuthenticationException;
7 use Give\Vendors\LiquidWeb\LicensingApiClient\Value\AuthToken;
8
9 /**
10 * Combines auth policy and configured token state for request execution.
11 */
12 final class AuthState
13 {
14 private AuthContext $authContext;
15
16 private ?AuthToken $token;
17
18 /**
19 * @throws InvalidArgumentException
20 */
21 public function __construct(AuthContext $authContext, ?AuthToken $token = null) {
22 if ($authContext->mode() === AuthContext::MODE_EXPLICIT && $token === null) {
23 throw new InvalidArgumentException('Explicit auth mode requires a token.');
24 }
25
26 $this->authContext = $authContext;
27 $this->token = $token;
28 }
29
30 /**
31 * @throws MissingAuthenticationException
32 */
33 public function optionalToken(): ?AuthToken {
34 if ($this->authContext->mode() === AuthContext::MODE_NONE) {
35 return null;
36 }
37
38 if ($this->authContext->mode() === AuthContext::MODE_CONFIGURED && $this->token === null) {
39 throw new MissingAuthenticationException(
40 'This request requires authentication, but no token is available.'
41 );
42 }
43
44 return $this->token;
45 }
46
47 /**
48 * @throws MissingAuthenticationException
49 */
50 public function requiredToken(): AuthToken {
51 $token = $this->optionalToken();
52
53 if ($token === null) {
54 throw new MissingAuthenticationException(
55 'This request requires authentication, but no token is available.'
56 );
57 }
58
59 return $token;
60 }
61
62 public function withoutAuth(): self {
63 return $this->withAuthContext(new AuthContext(AuthContext::MODE_NONE), $this->token);
64 }
65
66 public function withConfiguredToken(): self {
67 return $this->withAuthContext(new AuthContext(AuthContext::MODE_CONFIGURED), $this->token);
68 }
69
70 public function withToken(string $token): self {
71 return $this->withAuthContext(
72 new AuthContext(AuthContext::MODE_EXPLICIT),
73 new AuthToken($token)
74 );
75 }
76
77 public function authContext(): AuthContext {
78 return $this->authContext;
79 }
80
81 public function token(): ?AuthToken {
82 return $this->token;
83 }
84
85 private function withAuthContext(AuthContext $authContext, ?AuthToken $token): self {
86 if (
87 $this->authContext->equals($authContext)
88 && (
89 ($this->token === null && $token === null)
90 || ($this->token !== null && $token !== null && $this->token->equals($token))
91 )
92 ) {
93 return $this;
94 }
95
96 return new self($authContext, $token);
97 }
98 }
99