Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
33.33% |
1 / 3 |
CRAP | |
71.43% |
5 / 7 |
| User | |
0.00% |
0 / 1 |
|
33.33% |
1 / 3 |
5.58 | |
71.43% |
5 / 7 |
| modules | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| hasModule | |
0.00% |
0 / 1 |
2.15 | |
66.67% |
2 / 3 |
|||
| canAccess | |
0.00% |
0 / 1 |
2.15 | |
66.67% |
2 / 3 |
|||
| <?php | |
| namespace App; | |
| use App\Module; | |
| use Illuminate\Contracts\Auth\MustVerifyEmail; | |
| use Illuminate\Database\Eloquent\Relations\BelongsToMany; | |
| use Illuminate\Foundation\Auth\User as Authenticatable; | |
| use Illuminate\Notifications\Notifiable; | |
| use Illuminate\Database\Eloquent\SoftDeletes; | |
| /** | |
| * @property mixed role | |
| * @property mixed modules | |
| */ | |
| class User extends Authenticatable | |
| { | |
| use Notifiable; | |
| use SoftDeletes; | |
| /** | |
| * The attributes that are mass assignable. | |
| * | |
| * @var array | |
| */ | |
| protected $fillable = [ | |
| 'name', 'email', 'password' , 'phone', 'photo' | |
| ]; | |
| /** | |
| * The attributes that should be hidden for arrays. | |
| * | |
| * @var array | |
| */ | |
| protected $hidden = [ | |
| 'password', 'remember_token', | |
| ]; | |
| /** | |
| * The attributes that should be cast to native types. | |
| * | |
| * @var array | |
| */ | |
| protected $casts = [ | |
| 'email_verified_at' => 'datetime', | |
| ]; | |
| /** | |
| * Get the modules of this user | |
| * @return BelongsToMany | |
| */ | |
| public function modules() :BelongsToMany | |
| { | |
| return $this->belongsToMany(Module::class,'user_modules'); | |
| } | |
| /** | |
| * Check if the user can access a module | |
| * @param string, module name | |
| * @return bool | |
| */ | |
| public function hasModule($module) :bool | |
| { | |
| if($this->modules->contains('path',$module)) | |
| { | |
| return true; | |
| } | |
| return false; | |
| } | |
| /** | |
| * Check if the user can access a module | |
| * @param string, module name | |
| * @return bool | |
| */ | |
| public function canAccess($module) | |
| { | |
| if ($this->role == 'super_admin') { | |
| return true; | |
| } else { | |
| return $this->hasModule($module); | |
| } | |
| return false; | |
| } | |
| } |