ok guys i write a middle ware with his code :
class CheckPermissions
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = $request->user();
$segs = $request->segments();
$perm = explode("\\", $request->route()->getActionName()); // this will return current controller+action. ex: "ForumController@edit"
return $next($request);
}
}
and here is my Models :
User :
class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function roles ()
{
return $this->belongsToMany(Role::class);
}
public function hasRole ($role)
{
if(is_string($role))
{
return $this->roles->contains('name', $role);
}
return !! $role->intersect($this->roles)->count();
}
public function assignRole ($role)
{
return $this->roles()->save(
Role::whereName($role)->firstOrFail()
);
}
public function hasPermission ($perm)
{
}
}
Role :
class Role extends Model
{
public function permissions ()
{
return $this->belongsToMany(Permission::class);
}
public function givePermissionTo (Permission $permission)
{
return $this->permissions()->save($permission);
}
}
Permission :
class Permission extends Model
{
public function roles ()
{
return $this->belongsToMany(Role::class);
}
}
Now how i can find out that current logged in user in middleware has this specific permission attached to their groups or not. Please help me guys.
thanks.