AuthorizeHandler   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 0
Metric Value
dl 0
loc 35
c 0
b 0
f 0
wmc 3
lcom 0
cbo 5
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A __invoke() 0 20 2
1
<?php
2
3
namespace TH\OAuth2\Controllers;
4
5
use Silex\Application;
6
use Symfony\Component\HttpFoundation\Request;
7
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
8
use OAuth2\Controller\AuthorizeControllerInterface;
9
use OAuth2\HttpFoundationBridge\Request as BridgeRequest;
10
use OAuth2\HttpFoundationBridge\Response as BridgeResponse;
11
use TH\OAuth2\AuthorizeRenderer;
12
13
class AuthorizeHandler
14
{
15
    private $oauth2AuthorizeController;
16
17
    private $authorizeRenderer;
18
19
    public function __construct(
20
        AuthorizeControllerInterface $oauth2AuthorizeController,
21
        AuthorizeRenderer $authorizeRenderer
22
    ) {
23
        $this->oauth2AuthorizeController = $oauth2AuthorizeController;
24
        $this->authorizeRenderer = $authorizeRenderer;
25
    }
26
27
    public function __invoke(Application $app, Request $request)
28
    {
29
        $token = $app['security.token_storage']->getToken();
30
        $user = null;
31
32
        if ($token instanceof TokenInterface) {
33
            $user = $token->getUser()->getUsername();
34
        }
35
36
        $request = BridgeRequest::createFromRequest($request);
37
        $response = new BridgeResponse;
38
        $this->oauth2AuthorizeController->handleAuthorizeRequest(
39
            $request,
40
            $response,
41
            (bool) $request->request->get('authorize'),
42
            $user
43
        );
44
45
        return $response;
46
    }
47
}
48