![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/laravel/passport/src/ |
<?php namespace Laravel\Passport; use Illuminate\Database\Eloquent\Model; class Token extends Model { /** * The database table used by the model. * * @var string */ protected $table = 'oauth_access_tokens'; /** * The "type" of the primary key ID. * * @var string */ protected $keyType = 'string'; /** * Indicates if the IDs are auto-incrementing. * * @var bool */ public $incrementing = false; /** * The guarded attributes on the model. * * @var array */ protected $guarded = []; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'scopes' => 'array', 'revoked' => 'bool', ]; /** * The attributes that should be mutated to dates. * * @var array */ protected $dates = [ 'expires_at', ]; /** * Get the client that the token belongs to. * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function client() { return $this->belongsTo(Passport::clientModel()); } /** * Get the user that the token belongs to. * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function user() { $provider = config('auth.guards.api.provider'); $model = config('auth.providers.'.$provider.'.model'); return $this->belongsTo($model, 'user_id', (new $model)->getKeyName()); } /** * Determine if the token has a given scope. * * @param string $scope * @return bool */ public function can($scope) { if (in_array('*', $this->scopes)) { return true; } $scopes = Passport::$withInheritedScopes ? $this->resolveInheritedScopes($scope) : [$scope]; foreach ($scopes as $scope) { if (array_key_exists($scope, array_flip($this->scopes))) { return true; } } return false; } /** * Resolve all possible scopes. * * @param string $scope * @return array */ protected function resolveInheritedScopes($scope) { $parts = explode(':', $scope); $partsCount = count($parts); $scopes = []; for ($i = 1; $i <= $partsCount; $i++) { $scopes[] = implode(':', array_slice($parts, 0, $i)); } return $scopes; } /** * Determine if the token is missing a given scope. * * @param string $scope * @return bool */ public function cant($scope) { return ! $this->can($scope); } /** * Revoke the token instance. * * @return bool */ public function revoke() { return $this->forceFill(['revoked' => true])->save(); } /** * Determine if the token is a transient JWT token. * * @return bool */ public function transient() { return false; } }