Completed
Push — develop ( 2606e4...9302c9 )
by Neil
04:35
created

Device::syslogs()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace App\Models;
4
5
use Illuminate\Database\Eloquent\Model;
6
7
class Device extends Model
8
{
9
    /**
10
     * The table associated with the model.
11
     *
12
     * @var string
13
     */
14
    protected $table = 'devices';
15
16
    /**
17
     * The primary key column name.
18
     *
19
     * @var string
20
     */
21
    protected $primaryKey = 'device_id';
22
23
    /**
24
     * Indicates if the model should be timestamped.
25
     *
26
     * @var bool
27
     */
28
    public $timestamps = false;
29
30
31
    // ---- Accessors/Mutators ----
32
33
    public function getIpAttribute($ip)
34
    {
35
        if (!empty($ip)) {
36
            return inet_ntop($ip);
37
        }
38
    }
39
40
    public function setIpAttribute($ip)
41
    {
42
        $this->attributes['ip'] = inet_pton($ip);
43
    }
44
45
46
    // ---- Define Reletionships ----
47
48
    /**
49
     * Returns a list of users that can access this device.
50
     */
51
    public function users() {
52
        return $this->belongsToMany('App\Models\User', 'devices_perms', 'device_id', 'user_id');
53
    }
54
55
    /**
56
     * Returns a list of the ports this device has.
57
     */
58
    public function ports() {
59
        return $this->hasMany('App\Models\Port', 'device_id', 'device_id');
60
    }
61
62
    /**
63
     * Returns a list of the Syslog entries this device has.
64
     */
65
    public function syslogs() {
66
        return $this->hasMany('App\Models\Syslog', 'device_id', 'device_id');
67
    }
68
69
    /**
70
     * Returns a list of the Eventlog entries this device has.
71
     */
72
    public function eventlogs() {
73
        return $this->hasMany('App\Models\Eventlog', 'device_id', 'device_id');
74
    }
75
}
76