File: /var/www/vhost/disk-apps/sigedo-dev.allup.com.co/app/Role.php
<?php
namespace App;
use Illuminate\Support\Facades\Auth;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
protected $guarded = ['id','deleted_at','created_at','updated_at'];
public $module = "role";
public function scopeGates($query,$operation)
{
if(Auth::user()->roles->pluck('name')->contains('root')){
return $query;
}else{
$roles = Role::where('active', 1)->get();
$whereItems = [];
foreach ($roles as $role){
if(\Gate::check($this->module.'_'.$operation.'Info'.ucfirst($role->name))){
$whereItems[] = $role->id;
}
}
if(count($whereItems)){
foreach ($whereItems as $key => $item) {
$query->orWhere('id',$item);
}
return $query;
}
return $query->where('id', 0);
}
}
public function users()
{
return $this->belongsToMany(User::class, 'user_roles')->withTimestamps();
}
public function permissions()
{
return $this->belongsToMany(Permission::class, 'role_permissions')->withTimestamps();
}
public function filetypes()
{
return $this->belongsToMany(Filetype::class);
}
}