Completed
Push — master ( 444139...b6b37e )
by Damien
09:32
created

AbstractProviderIdentity::rules()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 23
rs 9.552
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: dsmrt
5
 * Date: 2/28/18
6
 * Time: 9:45 PM
7
 */
8
9
namespace flipbox\saml\core\records;
10
11
use craft\validators\DateTimeValidator;
12
use flipbox\ember\helpers\ModelHelper;
13
use flipbox\ember\records\ActiveRecord;
14
use yii\db\ActiveQuery;
15
16
/**
17
 * Class AbstractProviderIdentity
18
 * @package flipbox\saml\core\records
19
 * @property int $userId
20
 * @property bool $enabled
21
 * @property string $sessionId
22
 */
23
abstract class AbstractProviderIdentity extends ActiveRecord implements ProviderIdentityInterface
24
{
25
    /**
26
     * @var \craft\elements\User
27
     */
28
    private $user;
29
30
    /**
31
     * @return \craft\elements\User|null
32
     */
33
    public function getUser()
34
    {
35
        if (! $this->userId) {
36
            return null;
37
        }
38
        if (! $this->user) {
39
            $this->user = \Craft::$app->getUsers()->getUserById(
40
                $this->userId
41
            );
42
        }
43
        return $this->user;
44
    }
45
46
    /**
47
     * @return ActiveQuery
48
     */
49
    abstract public function getProvider();
50
51
    /**
52
     * @inheritdoc
53
     */
54
    public function rules()
55
    {
56
        return array_merge(
57
            parent::rules(),
58
            [
59
                [
60
                    [
61
                        'lastLoginDate',
62
                    ],
63
                    DateTimeValidator::class,
64
                ],
65
                [
66
                    [
67
                        'lastLoginDate',
68
                    ],
69
                    'safe',
70
                    'on' => [
71
                        ModelHelper::SCENARIO_DEFAULT,
72
                    ]
73
                ]
74
            ]
75
        );
76
    }
77
}
78