Completed
Pull Request — master (#14)
by claudio
10:12
created

Company::verifyCalendar()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 5
ccs 0
cts 2
cp 0
rs 9.4286
cc 1
eloc 2
nc 1
nop 1
crap 2
1
<?php
2
3
namespace plunner;
4
5
use Illuminate\Auth\Authenticatable;
6
use Illuminate\Auth\Passwords\CanResetPassword;
7
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
8
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
9
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
10
use Illuminate\Database\Eloquent\Model;
11
use Illuminate\Foundation\Auth\Access\Authorizable;
12
13
/**
14
 * Class Company
15
 *
16
 * @package plunner
17
 * @author Claudio Cardinale <[email protected]>
18
 * @copyright 2015 Claudio Cardinale
19
 * @version 1.0.0
20
 * @property integer $id
21
 * @property string $name
22
 * @property string $email
23
 * @property string $password
24
 * @property boolean $verified
25
 * @property string $remember_token
26
 * @property \Carbon\Carbon $created_at
27
 * @property \Carbon\Carbon $updated_at
28
 * @property-read \Illuminate\Database\Eloquent\Collection|Employee[] $employees
29
 * @property-read \Illuminate\Database\Eloquent\Collection|Group[] $groups
30
 * @method static \Illuminate\Database\Query\Builder|\plunner\Company whereId($value)
31
 * @method static \Illuminate\Database\Query\Builder|\plunner\Company whereName($value)
32
 * @method static \Illuminate\Database\Query\Builder|\plunner\Company whereEmail($value)
33
 * @method static \Illuminate\Database\Query\Builder|\plunner\Company wherePassword($value)
34
 * @method static \Illuminate\Database\Query\Builder|\plunner\Company whereVerified($value)
35
 * @method static \Illuminate\Database\Query\Builder|\plunner\Company whereRememberToken($value)
36
 * @method static \Illuminate\Database\Query\Builder|\plunner\Company whereCreatedAt($value)
37
 * @method static \Illuminate\Database\Query\Builder|\plunner\Company whereUpdatedAt($value)
38
 */
39
class Company extends Model implements AuthenticatableContract,
40
                                    AuthorizableContract,
41
                                    CanResetPasswordContract,
42
                                    PolicyCheckable
43
{
44
    use Authenticatable, Authorizable, CanResetPassword;
45
46
    /**
47
     * The database table used by the model.
48
     *
49
     * @var string
50
     */
51
    //protected $table = 'users';
52
53
    /**
54
     * The attributes that are mass assignable.
55
     *
56
     * @var array
57
     */
58
    protected $fillable = ['name', 'email', 'password'];
59
60
    /**
61
     * The attributes excluded from the model's JSON form.
62
     *
63
     * @var array
64
     */
65
    protected $hidden = ['password', 'remember_token'];
66
67
    /**
68
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
69
     */
70 52
    public function employees()
71
    {
72 52
        return $this->hasMany(Employee::class);
73
    }
74
75 36
    public function groups()
76
    {
77 36
        return $this->hasMany(Group::class);
78
    }
79
80
    /**
81
     * @param Group $group
82
     * @return bool
83
     */
84 16
    public function verifyGroup(Group $group)
85
    {
86 16
        return $group->company_id === $this->id;
87
    }
88
89
    /**
90
     * @param Employee $employee
91
     * @return bool
92
     */
93 16
    public function verifyEmployee(Employee $employee)
94
    {
95 16
        return $employee->company_id === $this->id;
96
    }
97
98
    /**
99
     * @param Company $company
100
     * @return bool
101
     */
102
    public function verifyCompany(Company $company)
103
    {
104
        return $company->id === $this->id;
105
    }
106
107
    /**
108
     * @param Calendar $calendar
109
     * @return bool
110
     */
111
    public function verifyCalendar(Calendar $calendar)
112
    {
113
        //TODO test this
114
        return $calendar->employee->Company->id == $this->id;
0 ignored issues
show
Bug introduced by
The property Company does not seem to exist. Did you mean company_id?

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
115
    }
116
}
117