@@ -5,4 +5,4 @@ |
||
5 | 5 | use Spinen\Halo\Http\Controllers\HaloController; |
6 | 6 | |
7 | 7 | Route::get(rtrim(Config::get('halo.oauth.authorization_code.route.sso', '/halo/sso'), '/'), HaloController::class) |
8 | - ->name('halo.sso.redirect_uri'); |
|
8 | + ->name('halo.sso.redirect_uri'); |
@@ -27,16 +27,16 @@ discard block |
||
27 | 27 | $this->setToken($token); |
28 | 28 | } |
29 | 29 | |
30 | - /** |
|
31 | - * Shortcut to 'DELETE' request |
|
32 | - * |
|
33 | - * @throws GuzzleException |
|
34 | - * @throws TokenException |
|
35 | - */ |
|
36 | - public function delete(string $path): ?array |
|
37 | - { |
|
38 | - return $this->request($path, [], 'DELETE'); |
|
39 | - } |
|
30 | + /** |
|
31 | + * Shortcut to 'DELETE' request |
|
32 | + * |
|
33 | + * @throws GuzzleException |
|
34 | + * @throws TokenException |
|
35 | + */ |
|
36 | + public function delete(string $path): ?array |
|
37 | + { |
|
38 | + return $this->request($path, [], 'DELETE'); |
|
39 | + } |
|
40 | 40 | |
41 | 41 | /** |
42 | 42 | * Generate keys need for PKCE |
@@ -272,41 +272,41 @@ discard block |
||
272 | 272 | } |
273 | 273 | } |
274 | 274 | |
275 | - /** |
|
276 | - * Validate & set the configs |
|
277 | - * |
|
278 | - * @throws ClientConfigurationException |
|
279 | - */ |
|
280 | - protected function setConfigs(array $configs): self |
|
281 | - { |
|
282 | - // Replace empty strings with nulls in config values |
|
283 | - $this->configs = array_map(fn ($v) => $v === '' ? null : $v, $configs); |
|
284 | - |
|
285 | - // Default to true if not set |
|
286 | - $this->configs['oauth']['authorization_code']['pkce'] ??= true; |
|
287 | - |
|
288 | - if (is_null($this->configs['oauth']['authorization_server'] ?? null)) { |
|
289 | - throw new ClientConfigurationException('The "authorization_server" cannot be null'); |
|
290 | - } |
|
291 | - |
|
292 | - if (! filter_var($this->configs['oauth']['authorization_server'], FILTER_VALIDATE_URL)) { |
|
293 | - throw new ClientConfigurationException( |
|
294 | - sprintf('A valid url must be provided for "authorization_server" [%s]', $this->configs['oauth']['authorization_server']) |
|
295 | - ); |
|
296 | - } |
|
297 | - |
|
298 | - if (is_null($this->configs['resource_server'] ?? null)) { |
|
299 | - throw new ClientConfigurationException('The "resource_server" cannot be null'); |
|
300 | - } |
|
301 | - |
|
302 | - if (! filter_var($this->configs['resource_server'], FILTER_VALIDATE_URL)) { |
|
303 | - throw new ClientConfigurationException( |
|
304 | - sprintf('A valid url must be provided for "resource_server" [%s]', $this->configs['resource_server']) |
|
305 | - ); |
|
306 | - } |
|
307 | - |
|
308 | - return $this; |
|
309 | - } |
|
275 | + /** |
|
276 | + * Validate & set the configs |
|
277 | + * |
|
278 | + * @throws ClientConfigurationException |
|
279 | + */ |
|
280 | + protected function setConfigs(array $configs): self |
|
281 | + { |
|
282 | + // Replace empty strings with nulls in config values |
|
283 | + $this->configs = array_map(fn ($v) => $v === '' ? null : $v, $configs); |
|
284 | + |
|
285 | + // Default to true if not set |
|
286 | + $this->configs['oauth']['authorization_code']['pkce'] ??= true; |
|
287 | + |
|
288 | + if (is_null($this->configs['oauth']['authorization_server'] ?? null)) { |
|
289 | + throw new ClientConfigurationException('The "authorization_server" cannot be null'); |
|
290 | + } |
|
291 | + |
|
292 | + if (! filter_var($this->configs['oauth']['authorization_server'], FILTER_VALIDATE_URL)) { |
|
293 | + throw new ClientConfigurationException( |
|
294 | + sprintf('A valid url must be provided for "authorization_server" [%s]', $this->configs['oauth']['authorization_server']) |
|
295 | + ); |
|
296 | + } |
|
297 | + |
|
298 | + if (is_null($this->configs['resource_server'] ?? null)) { |
|
299 | + throw new ClientConfigurationException('The "resource_server" cannot be null'); |
|
300 | + } |
|
301 | + |
|
302 | + if (! filter_var($this->configs['resource_server'], FILTER_VALIDATE_URL)) { |
|
303 | + throw new ClientConfigurationException( |
|
304 | + sprintf('A valid url must be provided for "resource_server" [%s]', $this->configs['resource_server']) |
|
305 | + ); |
|
306 | + } |
|
307 | + |
|
308 | + return $this; |
|
309 | + } |
|
310 | 310 | |
311 | 311 | /** |
312 | 312 | * Set debug |
@@ -48,11 +48,11 @@ discard block |
||
48 | 48 | 'verifier' => $verifier = base64_encode(Str::random($length)), |
49 | 49 | // Convert "+" to "-" & "/" to "_" & remove trailing "=" |
50 | 50 | 'challenge' => rtrim( |
51 | - characters: '=', |
|
52 | - string: strtr( |
|
53 | - from: '+/', |
|
54 | - string: base64_encode(hash(algo: 'sha256', data: $verifier, binary: true)), |
|
55 | - to: '-_', |
|
51 | + characters : '=', |
|
52 | + string : strtr( |
|
53 | + from : '+/', |
|
54 | + string : base64_encode(hash(algo : 'sha256', data : $verifier, binary : true)), |
|
55 | + to : '-_', |
|
56 | 56 | ), |
57 | 57 | ), |
58 | 58 | ] |
@@ -101,7 +101,7 @@ discard block |
||
101 | 101 | $grant_type = $this->token->grant_type ?? $params['grant_type']; |
102 | 102 | |
103 | 103 | if (is_null($this->configs['oauth'][$grant_type]['id'] ?? null)) { |
104 | - throw new ClientConfigurationException('The "client_id" for "'.$grant_type.'" cannot be null'); |
|
104 | + throw new ClientConfigurationException('The "client_id" for "' . $grant_type . '" cannot be null'); |
|
105 | 105 | } |
106 | 106 | |
107 | 107 | try { |
@@ -120,10 +120,10 @@ discard block |
||
120 | 120 | ], |
121 | 121 | ], |
122 | 122 | uri: $this->uri( |
123 | - path: 'token?'.http_build_query( |
|
123 | + path: 'token?' . http_build_query( |
|
124 | 124 | $this->configs['tenant'] ? ['tenant' => $this->configs['tenant']] : [], |
125 | 125 | ), |
126 | - url: $this->configs['oauth']['authorization_server'] |
|
126 | + url : $this->configs['oauth']['authorization_server'] |
|
127 | 127 | ), |
128 | 128 | ) |
129 | 129 | ->getBody() |
@@ -198,7 +198,7 @@ discard block |
||
198 | 198 | } |
199 | 199 | |
200 | 200 | return $this->uri( |
201 | - path: 'authorize?'.http_build_query( |
|
201 | + path: 'authorize?' . http_build_query( |
|
202 | 202 | [ |
203 | 203 | 'client_id' => $this->configs['oauth']['authorization_code']['id'], |
204 | 204 | ...$challenge |
@@ -212,7 +212,7 @@ discard block |
||
212 | 212 | 'scope' => $scope ?? $this->token->scope, |
213 | 213 | ...$this->configs['tenant'] ? ['tenant' => $this->configs['tenant']] : [], |
214 | 214 | ]), |
215 | - url: $this->configs['oauth']['authorization_server'] |
|
215 | + url : $this->configs['oauth']['authorization_server'] |
|
216 | 216 | ); |
217 | 217 | } |
218 | 218 | |
@@ -248,10 +248,10 @@ discard block |
||
248 | 248 | { |
249 | 249 | try { |
250 | 250 | return json_decode( |
251 | - associative: true, |
|
252 | - json: $this->guzzle->request( |
|
253 | - method: $method, |
|
254 | - options: [ |
|
251 | + associative : true, |
|
252 | + json : $this->guzzle->request( |
|
253 | + method : $method, |
|
254 | + options : [ |
|
255 | 255 | 'debug' => $this->debug, |
256 | 256 | 'headers' => [ |
257 | 257 | 'Authorization' => (string) $this->getToken(), |
@@ -259,7 +259,7 @@ discard block |
||
259 | 259 | ], |
260 | 260 | 'body' => empty($data) ? null : json_encode($data), |
261 | 261 | ], |
262 | - uri: $this->uri($path), |
|
262 | + uri : $this->uri($path), |
|
263 | 263 | ) |
264 | 264 | ->getBody() |
265 | 265 | ->getContents(), |
@@ -289,7 +289,7 @@ discard block |
||
289 | 289 | throw new ClientConfigurationException('The "authorization_server" cannot be null'); |
290 | 290 | } |
291 | 291 | |
292 | - if (! filter_var($this->configs['oauth']['authorization_server'], FILTER_VALIDATE_URL)) { |
|
292 | + if (!filter_var($this->configs['oauth']['authorization_server'], FILTER_VALIDATE_URL)) { |
|
293 | 293 | throw new ClientConfigurationException( |
294 | 294 | sprintf('A valid url must be provided for "authorization_server" [%s]', $this->configs['oauth']['authorization_server']) |
295 | 295 | ); |
@@ -299,7 +299,7 @@ discard block |
||
299 | 299 | throw new ClientConfigurationException('The "resource_server" cannot be null'); |
300 | 300 | } |
301 | 301 | |
302 | - if (! filter_var($this->configs['resource_server'], FILTER_VALIDATE_URL)) { |
|
302 | + if (!filter_var($this->configs['resource_server'], FILTER_VALIDATE_URL)) { |
|
303 | 303 | throw new ClientConfigurationException( |
304 | 304 | sprintf('A valid url must be provided for "resource_server" [%s]', $this->configs['resource_server']) |
305 | 305 | ); |
@@ -321,10 +321,10 @@ discard block |
||
321 | 321 | /** |
322 | 322 | * Set the token & refresh if needed |
323 | 323 | */ |
324 | - public function setToken(Token|string $token): self |
|
324 | + public function setToken(Token | string $token): self |
|
325 | 325 | { |
326 | 326 | $this->token = is_string($token) |
327 | - ? new Token(access_token: $token) |
|
327 | + ? new Token(access_token : $token) |
|
328 | 328 | : $token; |
329 | 329 | |
330 | 330 | return $this; |
@@ -346,7 +346,7 @@ discard block |
||
346 | 346 | $path = ltrim($path ?? '/', '/'); |
347 | 347 | |
348 | 348 | return rtrim($url ?? $this->configs['resource_server'], '/') |
349 | - .($path ? (Str::startsWith($path, '?') ? null : '/').$path : '/'); |
|
349 | + .($path ? (Str::startsWith($path, '?') ? null : '/') . $path : '/'); |
|
350 | 350 | } |
351 | 351 | |
352 | 352 | /** |
@@ -33,7 +33,7 @@ discard block |
||
33 | 33 | |
34 | 34 | public function __toString(): string |
35 | 35 | { |
36 | - return $this->token_type.' '.$this->access_token; |
|
36 | + return $this->token_type . ' ' . $this->access_token; |
|
37 | 37 | } |
38 | 38 | |
39 | 39 | /** |
@@ -63,8 +63,8 @@ discard block |
||
63 | 63 | */ |
64 | 64 | public function isValid(?string $scope = null): bool |
65 | 65 | { |
66 | - return ! is_null($this->access_token) && |
|
67 | - ! $this->isExpired() && |
|
66 | + return !is_null($this->access_token) && |
|
67 | + !$this->isExpired() && |
|
68 | 68 | ($scope ? $this->allowedScope($scope) : true); |
69 | 69 | } |
70 | 70 |
@@ -28,7 +28,7 @@ |
||
28 | 28 | */ |
29 | 29 | public function handle(Request $request, Closure $next) |
30 | 30 | { |
31 | - if (! $request->user()->halo_token) { |
|
31 | + if (!$request->user()->halo_token) { |
|
32 | 32 | // Set intended route, so that after linking account, user is put where they were going |
33 | 33 | $this->redirector->setIntendedUrl($request->path()); |
34 | 34 |
@@ -33,7 +33,7 @@ discard block |
||
33 | 33 | */ |
34 | 34 | public function register() |
35 | 35 | { |
36 | - $this->mergeConfigFrom(__DIR__.'/../../config/halo.php', 'halo'); |
|
36 | + $this->mergeConfigFrom(__DIR__ . '/../../config/halo.php', 'halo'); |
|
37 | 37 | } |
38 | 38 | |
39 | 39 | /** |
@@ -54,19 +54,19 @@ discard block |
||
54 | 54 | protected function registerPublishes() |
55 | 55 | { |
56 | 56 | if ($this->app->runningInConsole()) { |
57 | - $this->loadMigrationsFrom(__DIR__.'/../../database/migrations'); |
|
57 | + $this->loadMigrationsFrom(__DIR__ . '/../../database/migrations'); |
|
58 | 58 | |
59 | 59 | $this->publishes( |
60 | 60 | groups: 'halo-config', |
61 | 61 | paths: [ |
62 | - __DIR__.'/../../config/halo.php' => config_path('halo.php'), |
|
62 | + __DIR__ . '/../../config/halo.php' => config_path('halo.php'), |
|
63 | 63 | ], |
64 | 64 | ); |
65 | 65 | |
66 | 66 | $this->publishes( |
67 | 67 | groups: 'halo-migrations', |
68 | 68 | paths: [ |
69 | - __DIR__.'/../../database/migrations' => database_path('migrations'), |
|
69 | + __DIR__ . '/../../database/migrations' => database_path('migrations'), |
|
70 | 70 | ], |
71 | 71 | ); |
72 | 72 | } |
@@ -83,7 +83,7 @@ discard block |
||
83 | 83 | 'namespace' => 'Spinen\Halo\Http\Controllers', |
84 | 84 | 'middleware' => Config::get('halo.oauth.authorization_code.route.middleware', ['web']), |
85 | 85 | ], |
86 | - routes: fn () => $this->loadRoutesFrom(realpath(__DIR__.'/../../routes/web.php')) |
|
86 | + routes: fn () => $this->loadRoutesFrom(realpath(__DIR__ . '/../../routes/web.php')) |
|
87 | 87 | ); |
88 | 88 | } |
89 | 89 | } |
@@ -42,7 +42,7 @@ discard block |
||
42 | 42 | /** |
43 | 43 | * Get the foreign key's name |
44 | 44 | */ |
45 | - public function getForeignKey(): int|string|null |
|
45 | + public function getForeignKey(): int | string | null |
|
46 | 46 | { |
47 | 47 | return $this->getChild()->{$this->getForeignKeyName()}; |
48 | 48 | } |
@@ -65,7 +65,7 @@ discard block |
||
65 | 65 | */ |
66 | 66 | public function getResults(): ?Model |
67 | 67 | { |
68 | - if (! $this->getForeignKey()) { |
|
68 | + if (!$this->getForeignKey()) { |
|
69 | 69 | return null; |
70 | 70 | } |
71 | 71 |
@@ -235,7 +235,7 @@ discard block |
||
235 | 235 | $foreignKey = $foreignKey ?? $this->assumeForeignKey($related); |
236 | 236 | |
237 | 237 | $builder = (new Builder())->setClass($related) |
238 | - ->setClient($this->getClient()); |
|
238 | + ->setClient($this->getClient()); |
|
239 | 239 | |
240 | 240 | return new BelongsTo($builder, $this, $foreignKey); |
241 | 241 | } |
@@ -255,8 +255,8 @@ discard block |
||
255 | 255 | $foreignKey = $foreignKey ?? $this->assumeForeignKey($related); |
256 | 256 | |
257 | 257 | $builder = (new Builder())->setClass($related) |
258 | - ->setClient($this->getClient()) |
|
259 | - ->setParent($this); |
|
258 | + ->setClient($this->getClient()) |
|
259 | + ->setParent($this); |
|
260 | 260 | |
261 | 261 | return new ChildOf($builder, $this, $foreignKey); |
262 | 262 | } |
@@ -276,7 +276,7 @@ discard block |
||
276 | 276 | |
277 | 277 | try { |
278 | 278 | $this->getClient() |
279 | - ->delete($this->getPath()); |
|
279 | + ->delete($this->getPath()); |
|
280 | 280 | |
281 | 281 | return true; |
282 | 282 | } catch (GuzzleException $e) { |
@@ -449,7 +449,7 @@ discard block |
||
449 | 449 | public function givenOne($related, $attributes, $reset = false): Model |
450 | 450 | { |
451 | 451 | return (new $related([], $this->parentModel))->setClient($this->getClient()) |
452 | - ->newFromBuilder($reset ? reset($attributes) : $attributes); |
|
452 | + ->newFromBuilder($reset ? reset($attributes) : $attributes); |
|
453 | 453 | } |
454 | 454 | |
455 | 455 | /** |
@@ -464,8 +464,8 @@ discard block |
||
464 | 464 | public function hasMany($related): HasMany |
465 | 465 | { |
466 | 466 | $builder = (new Builder())->setClass($related) |
467 | - ->setClient($this->getClient()) |
|
468 | - ->setParent($this); |
|
467 | + ->setClient($this->getClient()) |
|
468 | + ->setParent($this); |
|
469 | 469 | |
470 | 470 | return new HasMany($builder, $this); |
471 | 471 | } |
@@ -623,7 +623,7 @@ discard block |
||
623 | 623 | if ($this->exists) { |
624 | 624 | // TODO: If we get null from the PUT, throw/handle exception |
625 | 625 | $response = $this->getClient() |
626 | - ->put($this->getPath(), $this->getDirty()); |
|
626 | + ->put($this->getPath(), $this->getDirty()); |
|
627 | 627 | |
628 | 628 | // Record the changes |
629 | 629 | $this->syncChanges(); |
@@ -635,7 +635,7 @@ discard block |
||
635 | 635 | } |
636 | 636 | |
637 | 637 | $response = $this->getClient() |
638 | - ->post($this->getPath(), $this->toArray()); |
|
638 | + ->post($this->getPath(), $this->toArray()); |
|
639 | 639 | |
640 | 640 | $this->exists = true; |
641 | 641 |
@@ -238,7 +238,7 @@ discard block |
||
238 | 238 | */ |
239 | 239 | protected function assumeForeignKey($related): string |
240 | 240 | { |
241 | - return Str::snake((new $related())->getResponseKey()).'_id'; |
|
241 | + return Str::snake((new $related())->getResponseKey()) . '_id'; |
|
242 | 242 | } |
243 | 243 | |
244 | 244 | /** |
@@ -379,7 +379,7 @@ discard block |
||
379 | 379 | */ |
380 | 380 | public function getOrderByDirectionParameter(): string |
381 | 381 | { |
382 | - return $this->orderByDirectionParameter ?? $this->getOrderByParameter().'desc'; |
|
382 | + return $this->orderByDirectionParameter ?? $this->getOrderByParameter() . 'desc'; |
|
383 | 383 | } |
384 | 384 | |
385 | 385 | /** |
@@ -406,20 +406,20 @@ discard block |
||
406 | 406 | |
407 | 407 | // If have an id, then put it on the end |
408 | 408 | if ($this->getKey()) { |
409 | - $path .= '/'.$this->getKey(); |
|
409 | + $path .= '/' . $this->getKey(); |
|
410 | 410 | } |
411 | 411 | |
412 | 412 | // Stick any extra things on the end |
413 | - if (! is_null($extra)) { |
|
414 | - $path .= '/'.ltrim($extra, '/'); |
|
413 | + if (!is_null($extra)) { |
|
414 | + $path .= '/' . ltrim($extra, '/'); |
|
415 | 415 | } |
416 | 416 | |
417 | - if (! empty($query = $this->getDefaultWheres($query))) { |
|
418 | - $path .= '?'.http_build_query($this->convertBoolToString($query)); |
|
417 | + if (!empty($query = $this->getDefaultWheres($query))) { |
|
418 | + $path .= '?' . http_build_query($this->convertBoolToString($query)); |
|
419 | 419 | } |
420 | 420 | |
421 | 421 | // If there is a parentModel & not have an id (unless for nested), then prepend parentModel |
422 | - if (! is_null($this->parentModel) && (! $this->getKey() || $this->isNested())) { |
|
422 | + if (!is_null($this->parentModel) && (!$this->getKey() || $this->isNested())) { |
|
423 | 423 | return $this->parentModel->getPath($path); |
424 | 424 | } |
425 | 425 | |
@@ -437,7 +437,7 @@ discard block |
||
437 | 437 | { |
438 | 438 | $relation = $this->{$method}(); |
439 | 439 | |
440 | - if (! $relation instanceof Relation) { |
|
440 | + if (!$relation instanceof Relation) { |
|
441 | 441 | $exception_message = is_null($relation) |
442 | 442 | ? '%s::%s must return a relationship instance, but "null" was returned. Was the "return" keyword used?' |
443 | 443 | : '%s::%s must return a relationship instance.'; |
@@ -449,7 +449,7 @@ discard block |
||
449 | 449 | |
450 | 450 | return tap( |
451 | 451 | $relation->getResults(), |
452 | - function ($results) use ($method) { |
|
452 | + function($results) use ($method) { |
|
453 | 453 | $this->setRelation($method, $results); |
454 | 454 | } |
455 | 455 | ); |
@@ -490,7 +490,7 @@ discard block |
||
490 | 490 | $model = (new $related([], $this->parentModel))->setClient($this->getClient()); |
491 | 491 | |
492 | 492 | return (new Collection($given))->map( |
493 | - function ($attributes) use ($model, $reset) { |
|
493 | + function($attributes) use ($model, $reset) { |
|
494 | 494 | return $model->newFromBuilder($reset ? reset($attributes) : $attributes); |
495 | 495 | } |
496 | 496 | ); |
@@ -595,7 +595,7 @@ discard block |
||
595 | 595 | */ |
596 | 596 | public function offsetExists($offset): bool |
597 | 597 | { |
598 | - return ! is_null($this->getAttribute($offset)); |
|
598 | + return !is_null($this->getAttribute($offset)); |
|
599 | 599 | } |
600 | 600 | |
601 | 601 | /** |
@@ -675,7 +675,7 @@ discard block |
||
675 | 675 | } |
676 | 676 | |
677 | 677 | try { |
678 | - if (! $this->isDirty()) { |
|
678 | + if (!$this->isDirty()) { |
|
679 | 679 | return true; |
680 | 680 | } |
681 | 681 | |
@@ -720,7 +720,7 @@ discard block |
||
720 | 720 | */ |
721 | 721 | public function saveOrFail(): bool |
722 | 722 | { |
723 | - if (! $this->save()) { |
|
723 | + if (!$this->save()) { |
|
724 | 724 | throw new UnableToSaveException(); |
725 | 725 | } |
726 | 726 |
@@ -21,7 +21,7 @@ |
||
21 | 21 | */ |
22 | 22 | public function getClient(): Client |
23 | 23 | { |
24 | - if (! isset($this->client) && $this->parentModel) { |
|
24 | + if (!isset($this->client) && $this->parentModel) { |
|
25 | 25 | $this->client = $this->parentModel->getClient(); |
26 | 26 | } |
27 | 27 |
@@ -63,13 +63,13 @@ |
||
63 | 63 | public function haloToken(): Attribute |
64 | 64 | { |
65 | 65 | return Attribute::make( |
66 | - get: fn ($value, array $attributes): ?Token => ! is_null($attributes['halo_token']) |
|
66 | + get: fn ($value, array $attributes): ?Token => !is_null($attributes['halo_token']) |
|
67 | 67 | ? unserialize(Crypt::decryptString($attributes['halo_token'])) |
68 | 68 | : null, |
69 | - set: function ($value): ?string { |
|
69 | + set : function($value): ?string { |
|
70 | 70 | // If setting the password & already have a client, then |
71 | 71 | // empty the client to use new password in client |
72 | - if (! is_null($this->builder)) { |
|
72 | + if (!is_null($this->builder)) { |
|
73 | 73 | $this->builder = null; |
74 | 74 | } |
75 | 75 |