Passed
Pull Request — master (#37)
by Rafael
05:07
created

AuthTrait   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 35
ccs 15
cts 15
cp 1
rs 10
c 0
b 0
f 0
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A loginUsers() 0 28 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Gewaer\Traits;
6
7
use Gewaer\Models\Users;
8
use Baka\Auth\Models\Sessions;
9
10
/**
11
 * Trait ResponseTrait
12
 *
13
 * @package Gewaer\Traits
14
 *
15
 * @property Users $user
16
 * @property AppsPlans $appPlan
17
 * @property CompanyBranches $branches
18
 * @property Companies $company
19
 * @property UserCompanyApps $app
20
 * @property \Phalcon\Di $di
21
 *
22
 */
23
trait AuthTrait
24
{
25
    /**
26
     * Login user
27
     * @param string
28
     * @return array
29
     */
30 2
    private function loginUsers(string $email, string $password): array
31
    {
32 2
        $userIp = !defined('API_TESTS') ? $this->request->getClientAddress() : '127.0.0.1';
33
34 2
        $random = new \Phalcon\Security\Random();
35
36 2
        $userData = Users::login($email, $password, 1, 0, $userIp);
37
38 2
        $sessionId = $random->uuid();
39
40
        //save in user logs
41
        $payload = [
42 2
            'sessionId' => $sessionId,
43 2
            'email' => $userData->getEmail(),
44 2
            'iat' => time(),
45
        ];
46
47 2
        $token = $this->auth->make($payload);
48
49
        //start session
50 2
        $session = new Sessions();
51 2
        $session->start($userData, $sessionId, $token, $userIp, 1);
52
53
        return [
54 2
            'token' => $token,
55 2
            'time' => date('Y-m-d H:i:s'),
56 2
            'expires' => date('Y-m-d H:i:s', time() + $this->config->jwt->payload->exp),
57 2
            'id' => $userData->getId(),
58
        ];
59
    }
60
}
61