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

AuthTrait::loginUsers()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 28
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 15
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 16
nc 2
nop 2
dl 0
loc 28
ccs 15
cts 15
cp 1
crap 2
rs 9.7333
c 0
b 0
f 0
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