Completed
Push — master ( 72ecff...582962 )
by Damien
11:32
created

AbstractProviderIdentity::getProvider()

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
c 0
b 0
f 0
nc 1
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 craft\db\ActiveRecord;
13
use flipbox\saml\core\records\traits\Ember;
14
use yii\base\Model;
15
use yii\db\ActiveQuery;
16
17
/**
18
 * Class AbstractProviderIdentity
19
 * @package flipbox\saml\core\records
20
 * @property int $userId
21
 * @property bool $enabled
22
 * @property string $sessionId
23
 */
24
abstract class AbstractProviderIdentity extends ActiveRecord implements ProviderIdentityInterface
25
{
26
    use Ember;
27
    /**
28
     * @var \craft\elements\User
29
     */
30
    private $user;
31
32
    /**
33
     * @return \craft\elements\User|null
34
     */
35
    public function getUser()
36
    {
37
        if (! $this->userId) {
38
            return null;
39
        }
40
        if (! $this->user) {
41
            $this->user = \Craft::$app->getUsers()->getUserById(
42
                $this->userId
43
            );
44
        }
45
        return $this->user;
46
    }
47
48
    /**
49
     * @return ActiveQuery
50
     */
51
    abstract public function getProvider();
52
53
    /**
54
     * @inheritdoc
55
     */
56
    public function rules()
57
    {
58
        return array_merge(
59
            parent::rules(),
60
            [
61
                [
62
                    [
63
                        'lastLoginDate',
64
                    ],
65
                    DateTimeValidator::class,
66
                ],
67
                [
68
                    [
69
                        'lastLoginDate',
70
                        'sessionId',
71
                    ],
72
                    'safe',
73
                    'on' => [
74
                        Model::SCENARIO_DEFAULT,
75
                    ]
76
                ]
77
            ]
78
        );
79
    }
80
}
81