File: /var/www/vhost/disk-apps/dev-beg.teky.com.co/app/User.php
<?php
namespace App;
use Laravel\Passport\HasApiTokens;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable, HasApiTokens, SoftDeletes;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $guarded = ['id','deleted_at','created_at','updated_at'];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function findForPassport($username)
{
return $this->where('username', $username)->first();
}
public function setPasswordAttribute($value)
{
$this->attributes['password'] = Hash::make($value);
}
public function roles()
{
return $this->belongsToMany(Role::class, 'user_roles')->withTimestamps();
}
public function gender()
{
return $this->belongsTo(Gender::class);
}
public function zones()
{
return $this->belongsToMany(Zone::class, 'user_zones')->withTimestamps();
}
public function validateListOperator($user,$userZones)
{
if(Auth::user()->roles->pluck('id')->contains(1) || Auth::user()->roles->pluck('id')->contains(2)){
return true;
}
if(Auth::user()->roles->pluck('id')->contains(4)){
$status = false;
foreach ($user->zones as $key => $zone) {
if($userZones->pluck('zone_id')->contains($zone->id)){
$status = true;
}
}
return $status;
}
}
}