Completed
Branch proxy (a8ed88)
by leo
08:29
created

PGTicket   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 36
ccs 0
cts 14
cp 0
rs 10
c 0
b 0
f 0
wmc 6
lcom 2
cbo 2

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getProxiesAttribute() 0 9 2
A setProxiesAttribute() 0 4 1
A isExpired() 0 4 1
A service() 0 4 1
A user() 0 4 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: leo108
5
 * Date: 2016/10/25
6
 * Time: 16:23
7
 */
8
9
namespace Leo108\CAS\Models;
10
11
use Carbon\Carbon;
12
use Illuminate\Database\Eloquent\Model;
13
use Leo108\CAS\Contracts\Models\UserModel;
14
15
/**
16
 * Class PGTicket
17
 * @package Leo108\CAS\Models
18
 *
19
 * @property integer   $id
20
 * @property string    $ticket
21
 * @property string    $pgt_url
22
 * @property integer   $service_id
23
 * @property integer   $user_id
24
 * @property array     $proxies
25
 * @property integer   $created_at
26
 * @property integer   $expire_at
27
 * @property UserModel $user
28
 */
29
class PGTicket extends Model
30
{
31
    protected $table = 'cas_proxy_granting_tickets';
32
    public $timestamps = false;
33
    protected $fillable = ['ticket', 'pgt_url', 'proxies', 'expire_at', 'created_at'];
34
35
    public function getProxiesAttribute()
36
    {
37
        $ret = json_decode($this->attributes['proxies'], true);
38
        if (!$ret) {
39
            return [];
40
        }
41
42
        return $ret;
43
    }
44
45
    public function setProxiesAttribute($value)
46
    {
47
        $this->attributes['proxies'] = json_encode($value);
48
    }
49
50
    public function isExpired()
51
    {
52
        return (new Carbon($this->expire_at))->getTimestamp() < time();
53
    }
54
55
    public function service()
56
    {
57
        return $this->belongsTo(Service::class);
58
    }
59
60
    public function user()
61
    {
62
        return $this->belongsTo(config('cas.user_table.model'), 'user_id', config('cas.user_table.id'));
63
    }
64
}
65