Passed
Push — master ( eb2b9c...2ce42f )
by Dāvis
05:18 queued 02:31
created

GoogleOAuth2Client::redirect()   B

Complexity

Conditions 5
Paths 6

Size

Total Lines 17
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 9
nc 6
nop 3
dl 0
loc 17
rs 8.8571
c 0
b 0
f 0
1
<?php
2
3
namespace Sludio\HelperBundle\Oauth\Client\Client;
4
5
use Sludio\HelperBundle\Logger\SludioLogger;
6
use Sludio\HelperBundle\Oauth\Client\OAuth2Client;
7
use Symfony\Component\HttpFoundation\RedirectResponse;
8
use Symfony\Component\HttpFoundation\RequestStack;
9
10
class GoogleOAuth2Client extends OAuth2Client
11
{
12
    public function __construct($provider, RequestStack $requestStack, SludioLogger $logger)
13
    {
14
        parent::__construct($provider, $requestStack, $logger);
15
        $this->isStateless = false;
16
    }
17
18
    public function redirect(array $scopes = [], array $options = [], $state = null)
19
    {
20
        if (!empty($scopes)) {
21
            $options['scope'] = $scopes;
22
        }
23
24
        if (!$this->isStateless) {
25
            $this->getSession()->set(self::OAUTH2_SESSION_STATE_KEY, $state ?: $this->provider->getState());
26
            if ($state) {
27
                $this->provider->setState($state);
28
            }
29
        }
30
31
        $options['state'] = $state;
32
        $url = $this->provider->getAuthorizationUrl($options);
33
34
        return new RedirectResponse($url);
35
    }
36
}
37