|
53845
|
NULL
|
0
|
2026-04-20T08:30:40.306467+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673840306_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-4919487151736841628
|
-8608134124993797604
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53844
|
|
53846
|
1164
|
0
|
2026-04-20T08:30:42.947165+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673842947_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDOCKER• 81public function oauthApps(: MorphMany;DEV (docker)DEV (docker)APP (-zsh)*3-zsh• ₴4100% (47 8 Mon 20 Apr 11:30:42T81screenpipe™• ₴5/*** Get all the access tokens for the user.** @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(): HasMany;/*** Determine if the current API token has a given scope.*/public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @param string[]Sscopes*/public function createToken(string Sname, array $scopes = O): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;}root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny#DEV...
|
NULL
|
8637099541062062072
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDOCKER• 81public function oauthApps(: MorphMany;DEV (docker)DEV (docker)APP (-zsh)*3-zsh• ₴4100% (47 8 Mon 20 Apr 11:30:42T81screenpipe™• ₴5/*** Get all the access tokens for the user.** @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(): HasMany;/*** Determine if the current API token has a given scope.*/public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @param string[]Sscopes*/public function createToken(string Sname, array $scopes = O): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;}root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny#DEV...
|
NULL
|
|
53847
|
1165
|
0
|
2026-04-20T08:30:43.015410+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673843015_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
VIeWWinaowrTavsco.sProjecty© Opportunity.php© Part VIeWWinaowrTavsco.sProjecty© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php© Playlist.phpC) RateLimit.php© Region.phpC) Role.php© RoleChangeEvent.php(c) Sconegrouo,ono© Session.php(C) SlackBot.oho(C) SocialAccount.oho(C) Stade oho© Task.phpC Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> O Policiesv Providers@ ActivitvServiceProvider.ohn@ AniServiceProvider.nhn@ AnnServiceProvider.nhnC) AuthServiceProvider.nhn@ RroadcastServiceProvider.ohn© CalendarServiceProvider.php@ CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php(c CvontCorvicoDrovidor nhnl© HubspotJournalServiceProvider.p© HubspotWebhookServiceProvideA limC) AooServiceProvider.ongC) AutomatedReport.phonamespace Jiminny Models;liminnu Models VIsenamethod stringl] getRoles() laratrust's annotation* @property int $id* @property mixed Suuidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachGoropertu bool Suses two factor auth•doropertu strinolnuur sauthu 10Gpropertu strinalnulz scountru code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone• Aoropertu strinalnull Scaller id* Goronentu int nuu sion titie 1di• Aoronentu strinalnull Stwo factor reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* @property string $language* Annonentu ctrinalnull Cconfononco numhen* @property stringlnull $conference_pin* @property string|null $conference_slug* Apropenty string Sconference join preference* Annonentu bool Sconfonenco ¿oin nomindon* doropertu scring sconterence recoraannounce* Apropentu int $conference record preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% S2Mon 20 AOr 11:30.43Security patch review and testing guidanceservice.pnpkouteservicerrovider.ongC) FieldRepository.ongC) Reportcontroller.pnp© Partner.php© User.php X©syncuserrllotcompanyListener.gA67 X1 X7outright wrong! Also, we don't support using the $team argument.This is a real problem. Your custom trait is missing methods that OAuthenticatable nowrequires as part of the intertace contract. Both User and Partner implementOAuthenticatable but your trait doesn truini itrully.What's missing trom your Jiminny Traits \HasApiTokens vs what the intertace requires:MethodIntertace reguiresYour traitoauthAppsMorphManymissingtokens()HasManvmissinetokencant.olboolmissingcreateTokenoPorconalAccoccTokonPocultX missingcurrentAccessTokeno?ScopeAuthorizablemissingwithAccecsTokenO?ScopeAuthorizableA wrong - TransientToken (non-nuladle)nuladle)getProviderNamestringmissingIhe immediate risk is withAccessToken() — rassport internals call this and now pass ?ScopeAuthorizable, but vour signature only accepts a non-nullable TransientToken. Thiswill throw a fatal type error at runtime whenever rassport tries to set or clear the access token.Why it hasn't blown up yet — PHP resolves trait method precedence at class definition time.ana Laravel Passport Hasapilokens isaso use advnemoces Matheuau. so rassoor'sown trait methods may be filling the gaps. Check which trait wins:grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits Copy# Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.phpIf User only use s Jiminny\Traits\HasApiTc J :,then oauthApps() , tokens(),createToken.getProviderName.tokenCant.and currentAccessToken areallReplv…Sonnet 4.6 vClaude ic Aland can make mistakes Plosce double-chock recnoncac)...
|
NULL
|
6503064862796769611
|
NULL
|
click
|
ocr
|
NULL
|
VIeWWinaowrTavsco.sProjecty© Opportunity.php© Part VIeWWinaowrTavsco.sProjecty© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php© Playlist.phpC) RateLimit.php© Region.phpC) Role.php© RoleChangeEvent.php(c) Sconegrouo,ono© Session.php(C) SlackBot.oho(C) SocialAccount.oho(C) Stade oho© Task.phpC Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> O Policiesv Providers@ ActivitvServiceProvider.ohn@ AniServiceProvider.nhn@ AnnServiceProvider.nhnC) AuthServiceProvider.nhn@ RroadcastServiceProvider.ohn© CalendarServiceProvider.php@ CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php(c CvontCorvicoDrovidor nhnl© HubspotJournalServiceProvider.p© HubspotWebhookServiceProvideA limC) AooServiceProvider.ongC) AutomatedReport.phonamespace Jiminny Models;liminnu Models VIsenamethod stringl] getRoles() laratrust's annotation* @property int $id* @property mixed Suuidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachGoropertu bool Suses two factor auth•doropertu strinolnuur sauthu 10Gpropertu strinalnulz scountru code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone• Aoropertu strinalnull Scaller id* Goronentu int nuu sion titie 1di• Aoronentu strinalnull Stwo factor reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* @property string $language* Annonentu ctrinalnull Cconfononco numhen* @property stringlnull $conference_pin* @property string|null $conference_slug* Apropenty string Sconference join preference* Annonentu bool Sconfonenco ¿oin nomindon* doropertu scring sconterence recoraannounce* Apropentu int $conference record preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% S2Mon 20 AOr 11:30.43Security patch review and testing guidanceservice.pnpkouteservicerrovider.ongC) FieldRepository.ongC) Reportcontroller.pnp© Partner.php© User.php X©syncuserrllotcompanyListener.gA67 X1 X7outright wrong! Also, we don't support using the $team argument.This is a real problem. Your custom trait is missing methods that OAuthenticatable nowrequires as part of the intertace contract. Both User and Partner implementOAuthenticatable but your trait doesn truini itrully.What's missing trom your Jiminny Traits \HasApiTokens vs what the intertace requires:MethodIntertace reguiresYour traitoauthAppsMorphManymissingtokens()HasManvmissinetokencant.olboolmissingcreateTokenoPorconalAccoccTokonPocultX missingcurrentAccessTokeno?ScopeAuthorizablemissingwithAccecsTokenO?ScopeAuthorizableA wrong - TransientToken (non-nuladle)nuladle)getProviderNamestringmissingIhe immediate risk is withAccessToken() — rassport internals call this and now pass ?ScopeAuthorizable, but vour signature only accepts a non-nullable TransientToken. Thiswill throw a fatal type error at runtime whenever rassport tries to set or clear the access token.Why it hasn't blown up yet — PHP resolves trait method precedence at class definition time.ana Laravel Passport Hasapilokens isaso use advnemoces Matheuau. so rassoor'sown trait methods may be filling the gaps. Check which trait wins:grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits Copy# Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.phpIf User only use s Jiminny\Traits\HasApiTc J :,then oauthApps() , tokens(),createToken.getProviderName.tokenCant.and currentAccessToken areallReplv…Sonnet 4.6 vClaude ic Aland can make mistakes Plosce double-chock recnoncac)...
|
53843
|
|
53848
|
1164
|
1
|
2026-04-20T08:30:43.636887+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673843636_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp100% C47 8 Mon 20 Apr 11:30:43DOCKER₴81public function oauthApps(: MorphMany;DEV (docker)DEV (docker)APP (-zsh)T₴1|*3-zsh• ₴4screenpipe• *5/*** Get all the access tokens for the user.** @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(): HasMany;/*** Determine if the current API token has a given scope.*/public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @param string[]Sscopes*/public function createToken(string Sname, array $scopes = O): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;}root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# ]DEV...
|
NULL
|
4767921063792820021
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp100% C47 8 Mon 20 Apr 11:30:43DOCKER₴81public function oauthApps(: MorphMany;DEV (docker)DEV (docker)APP (-zsh)T₴1|*3-zsh• ₴4screenpipe• *5/*** Get all the access tokens for the user.** @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(): HasMany;/*** Determine if the current API token has a given scope.*/public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @param string[]Sscopes*/public function createToken(string Sname, array $scopes = O): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;}root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# ]DEV...
|
53846
|
|
53849
|
1164
|
2
|
2026-04-20T08:30:44.441144+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673844441_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-4919487151736841628
|
-8608134124993797604
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53850
|
1165
|
1
|
2026-04-20T08:30:44.441144+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673844441_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-4919487151736841628
|
-8608134124993797604
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53851
|
1164
|
3
|
2026-04-20T08:30:46.672945+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673846672_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53849
|
|
53852
|
1165
|
2
|
2026-04-20T08:30:51.143392+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673851143_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53850
|
|
53853
|
1164
|
4
|
2026-04-20T08:30:58.719407+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673858719_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2•ShellEditViewSessionScriptsProfilesWindowHe iTerm2•ShellEditViewSessionScriptsProfilesWindowHelpDOCKER381DEV (docker)$82DEV (docker)APP (-zsh)|*3-zsh@return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @paramstring[] Sscopes*/public function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken®: ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(: string;rootedocker_1amp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:app/ModeLs/Part.er. Php: 78: Usese HaSApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny#• ₴4100% 0 8Mon 20 Apr 11:30:58T81screenpipe"*,- *5DEV...
|
NULL
|
3232428281535859132
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2•ShellEditViewSessionScriptsProfilesWindowHe iTerm2•ShellEditViewSessionScriptsProfilesWindowHelpDOCKER381DEV (docker)$82DEV (docker)APP (-zsh)|*3-zsh@return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @paramstring[] Sscopes*/public function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken®: ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(: string;rootedocker_1amp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:app/ModeLs/Part.er. Php: 78: Usese HaSApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny#• ₴4100% 0 8Mon 20 Apr 11:30:58T81screenpipe"*,- *5DEV...
|
NULL
|
|
53854
|
1165
|
3
|
2026-04-20T08:30:58.789527+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673858789_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FV faVsco.js?9 masterProledey© Opportunity.php© Pa FV faVsco.js?9 masterProledey© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongc) Playoacklneme.ono© Playbook.phpC) Playbookcategorv.php© Playlist.phpC) RateLimit.php© Region.phpC) Role.php@ RoleChangeEvent.ohpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho(C) SocialAccount.oho(C) Stade oho© Task.phpC Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> O Policiesv Providers@ ActivitvServiceProvider.ohn@ AniServiceProvider.nhn@ AnnServiceProvider.nhnC) AuthServiceProvider.nhn@ RroadcastServiceProvider.ohn© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php(c CvontCorvicoDrovidor nhnl© HubspotJournalServiceProvider.p© HubspotWebhookServiceProvideA limC) AooServiceProvider.ongC) AutomatedReport.phonamespace Jiminny Models;liminnu Models VIsenamethod stringl] getRoles() laratrust's annotation* @property int $id* @property mixed Suuidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sohoto pachiGoropertu bool Suses two factor authl•doropertu strinolnuur sauthu 10Gpropertu strinalnulz scountru code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone• Aoropertu strinalnull Scaller id• coronentu int nuu sion title 1di• Aoronentu strinalnull Stwo facton reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* Oproperty string $language* Annonentu ctrinalnull Cconfononco numhon* @property stringlnull $conference_pin* @property string|null $conference_slug* Apropenty string Sconference join preference* Annonentu bool Sconfonenco ¿oin nomindon* doropertu scring sconterence recoraannounce* Apropentu int $conference record preference* doroperty int sconference banawidch* opropertu int sconference start weocamMOn ZU AOr 11:30.service.pnp© RouteServiceProvider.phpC) FieldRepository.ongC) Reportcontroller.pnp© Partner.php© User.php X©syncuserrllotcompanyListener.gA67 X1 X7outright wrong! Also, we don't support using the $team argument.Security patch review and testing guidancecreatel okenolPersonalAccessokenkesultmissingcurrentAccessToken?ScopeAuthorizablemissingw1chaccesslokeno?ScopeAuthorizable(nullable)wrong— Iransiencloken non-nullable)getProviderNameOsuringmissmneThe immediate risk is withAccessToken — Passport internals call this and now pass ?Sconeruthorizable bui vour sionaure onv accenisanon-nulllabe Transtentiloken.juniswill throw a fatal type error at runtime whenever Passport tries to set or clear the access token.Why it hasn't blown up vet — PHP resolves trait method precedence at class definition timeand Laravel \Passport HasApiTokens isalso use dby the models (via the trait), so Passport'sown trait methods may be filling the gaps. Check which trait wins:grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasAp# Does User use Jiminnv's or Passport's?grep -rn "HasApiTokens" app/Models/User.phpIf User only uses Jiminny Traits HasApiTokens,then oauthApps, tokens.createloken), getProviderName(), tokenCant() ,and currentAccessloken() areallmissing at runtime — the interface contract is broken. Ifit use s Passport's directly too, there'sarralr cont icrThe fix - your custom trait should not exist as a standalone override. Either:1. Delete Jiminny Traits HasApiTokens anduse Laravel Passport HasApiTokenscirectvin bot models.of2. If vou need the custom token() return type hint. extend via the model directly ratherthan a competing traitGiven the PR is already merged, check if any auth flows are actually failing right now by hittingPOST loauth/token with a real client credentials or password grant request in vour local envbefore this reaches staging production.0Replv…CannotAh...
|
NULL
|
8038931088604434107
|
NULL
|
click
|
ocr
|
NULL
|
FV faVsco.js?9 masterProledey© Opportunity.php© Pa FV faVsco.js?9 masterProledey© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongc) Playoacklneme.ono© Playbook.phpC) Playbookcategorv.php© Playlist.phpC) RateLimit.php© Region.phpC) Role.php@ RoleChangeEvent.ohpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho(C) SocialAccount.oho(C) Stade oho© Task.phpC Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> O Policiesv Providers@ ActivitvServiceProvider.ohn@ AniServiceProvider.nhn@ AnnServiceProvider.nhnC) AuthServiceProvider.nhn@ RroadcastServiceProvider.ohn© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php(c CvontCorvicoDrovidor nhnl© HubspotJournalServiceProvider.p© HubspotWebhookServiceProvideA limC) AooServiceProvider.ongC) AutomatedReport.phonamespace Jiminny Models;liminnu Models VIsenamethod stringl] getRoles() laratrust's annotation* @property int $id* @property mixed Suuidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sohoto pachiGoropertu bool Suses two factor authl•doropertu strinolnuur sauthu 10Gpropertu strinalnulz scountru code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone• Aoropertu strinalnull Scaller id• coronentu int nuu sion title 1di• Aoronentu strinalnull Stwo facton reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* Oproperty string $language* Annonentu ctrinalnull Cconfononco numhon* @property stringlnull $conference_pin* @property string|null $conference_slug* Apropenty string Sconference join preference* Annonentu bool Sconfonenco ¿oin nomindon* doropertu scring sconterence recoraannounce* Apropentu int $conference record preference* doroperty int sconference banawidch* opropertu int sconference start weocamMOn ZU AOr 11:30.service.pnp© RouteServiceProvider.phpC) FieldRepository.ongC) Reportcontroller.pnp© Partner.php© User.php X©syncuserrllotcompanyListener.gA67 X1 X7outright wrong! Also, we don't support using the $team argument.Security patch review and testing guidancecreatel okenolPersonalAccessokenkesultmissingcurrentAccessToken?ScopeAuthorizablemissingw1chaccesslokeno?ScopeAuthorizable(nullable)wrong— Iransiencloken non-nullable)getProviderNameOsuringmissmneThe immediate risk is withAccessToken — Passport internals call this and now pass ?Sconeruthorizable bui vour sionaure onv accenisanon-nulllabe Transtentiloken.juniswill throw a fatal type error at runtime whenever Passport tries to set or clear the access token.Why it hasn't blown up vet — PHP resolves trait method precedence at class definition timeand Laravel \Passport HasApiTokens isalso use dby the models (via the trait), so Passport'sown trait methods may be filling the gaps. Check which trait wins:grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasAp# Does User use Jiminnv's or Passport's?grep -rn "HasApiTokens" app/Models/User.phpIf User only uses Jiminny Traits HasApiTokens,then oauthApps, tokens.createloken), getProviderName(), tokenCant() ,and currentAccessloken() areallmissing at runtime — the interface contract is broken. Ifit use s Passport's directly too, there'sarralr cont icrThe fix - your custom trait should not exist as a standalone override. Either:1. Delete Jiminny Traits HasApiTokens anduse Laravel Passport HasApiTokenscirectvin bot models.of2. If vou need the custom token() return type hint. extend via the model directly ratherthan a competing traitGiven the PR is already merged, check if any auth flows are actually failing right now by hittingPOST loauth/token with a real client credentials or password grant request in vour local envbefore this reaches staging production.0Replv…CannotAh...
|
NULL
|
|
53855
|
1164
|
5
|
2026-04-20T08:30:59.362813+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673859362_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp100% C47 8 Mon 20 Apr 11:30:59DOCKER381DEV (docker)$82DEV (docker)APP (-zsh)|83-zsh@return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.* @paramstring[] Sscopes*/public function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(: ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(: string;rootedocker_1amp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:app/Models/Part,Pr.P2p:78: use HasasApiTonens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# l• ₴4screenpipe"T₴1|**- 85DEV...
|
NULL
|
-5767170132401890561
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp100% C47 8 Mon 20 Apr 11:30:59DOCKER381DEV (docker)$82DEV (docker)APP (-zsh)|83-zsh@return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.* @paramstring[] Sscopes*/public function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(: ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(: string;rootedocker_1amp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:app/Models/Part,Pr.P2p:78: use HasasApiTonens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# l• ₴4screenpipe"T₴1|**- 85DEV...
|
53853
|
|
53856
|
1165
|
4
|
2026-04-20T08:31:00.215761+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673860215_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
VIeWWinaowrTavsco.sProjecty© Opportunity.php© Part VIeWWinaowrTavsco.sProjecty© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn© BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvide(C) CrmServiceProvider.nhn© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondaryemaz* doroperty string null spassword•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id* Goronentu int nuu sion titie 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null $conference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doroperty scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% LzMon ZUAOr 11.31.00service.pnp© Partner.phpouseronpx© ReportController.php©syncuserrllotcompanyListener.gA67 X1 X7outright wrong! Also, we don't support using the $team argument.Security patch review and testing guidancecreatel okenolPersonalAccessokenkesultmissingcurrentAccessToken()w1chaccesslokeno?ScopeAuthorizable?ScopeAuthorizable(nullable)missingwrong— Iransiencloken non-nullable)getProviderName()suringmissmneThe immediate risk is withAccessToken() - Passport internals call this and now pass?Sconeruthorizable bui vour sionaure onv accenisanon-nulllabe Transtentiloken.juniswill throw a fatal type error at runtime whenever Passport tries to set or clear the access token.Why it hasn't blown up yet — PHP resolves trait method precedence at class definition time,and Laravel\Passport\HasApiTokens is also use d by the models (via the trait), so Passport'sown trait methods may be filling the gaps. Check which trait wins:grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasAp# Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.phpIf User only use s Jiminny\Traits\HasApiTokens, then oauthApps(), tokens(),createloken), getProviderName(), tokenCant) ,and currentAccesstoken areallmissing at runtime — the interface contract is broken. If it use s Passport's directly too, there'sarralr cont icr.The fix - your custom trait should not exist as a standalone override. Either:1. Delete Jiminny\Traits\HasApiTokens and use Laravel\Passport\HasApiTokensdirectly in both models, or2. If you need the custom token () return type hint, extend via the model directly ratherhen ssamnhtinntunt.root@docker_lamp_1:/home/jiminny# grep-n "use HasApiTokens" app/Models/User.phpapp/Models/Partner.php app/Traits/HasApiTokens.php20o Mode s/userono:4c: use HasAoillokens:app/Models/Partner.php:78: use HasApiTokens;root@docker_lamp_1:/home/iminny# # Does User use Jiminny's or Passport's?grep-rn "HasApiTokens" app/Models/User.php43:use Laravel|Passport\HasApiTokens;243: use HasApiTokens;root@docker_larfp_1:/home/jiminny#CannotAh...
|
NULL
|
3815352986183767683
|
NULL
|
visual_change
|
ocr
|
NULL
|
VIeWWinaowrTavsco.sProjecty© Opportunity.php© Part VIeWWinaowrTavsco.sProjecty© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn© BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvide(C) CrmServiceProvider.nhn© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondaryemaz* doroperty string null spassword•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id* Goronentu int nuu sion titie 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null $conference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doroperty scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% LzMon ZUAOr 11.31.00service.pnp© Partner.phpouseronpx© ReportController.php©syncuserrllotcompanyListener.gA67 X1 X7outright wrong! Also, we don't support using the $team argument.Security patch review and testing guidancecreatel okenolPersonalAccessokenkesultmissingcurrentAccessToken()w1chaccesslokeno?ScopeAuthorizable?ScopeAuthorizable(nullable)missingwrong— Iransiencloken non-nullable)getProviderName()suringmissmneThe immediate risk is withAccessToken() - Passport internals call this and now pass?Sconeruthorizable bui vour sionaure onv accenisanon-nulllabe Transtentiloken.juniswill throw a fatal type error at runtime whenever Passport tries to set or clear the access token.Why it hasn't blown up yet — PHP resolves trait method precedence at class definition time,and Laravel\Passport\HasApiTokens is also use d by the models (via the trait), so Passport'sown trait methods may be filling the gaps. Check which trait wins:grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasAp# Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.phpIf User only use s Jiminny\Traits\HasApiTokens, then oauthApps(), tokens(),createloken), getProviderName(), tokenCant) ,and currentAccesstoken areallmissing at runtime — the interface contract is broken. If it use s Passport's directly too, there'sarralr cont icr.The fix - your custom trait should not exist as a standalone override. Either:1. Delete Jiminny\Traits\HasApiTokens and use Laravel\Passport\HasApiTokensdirectly in both models, or2. If you need the custom token () return type hint, extend via the model directly ratherhen ssamnhtinntunt.root@docker_lamp_1:/home/jiminny# grep-n "use HasApiTokens" app/Models/User.phpapp/Models/Partner.php app/Traits/HasApiTokens.php20o Mode s/userono:4c: use HasAoillokens:app/Models/Partner.php:78: use HasApiTokens;root@docker_lamp_1:/home/iminny# # Does User use Jiminny's or Passport's?grep-rn "HasApiTokens" app/Models/User.php43:use Laravel|Passport\HasApiTokens;243: use HasApiTokens;root@docker_larfp_1:/home/jiminny#CannotAh...
|
53854
|
|
53857
|
1164
|
6
|
2026-04-20T08:31:10.748829+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673870748_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp100% C47 8 Mon 20 Apr 11:31:10DOCKER₴81DEV (docker)$82DEV (docker)APP (-zsh)|83-zsh@return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @paramstring[] Sscopes*/public function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(: ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(: string;rootedocker_1amp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:app/Models/Part,Pr.P2p:78: use HasasApiTonens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# l• *4screenpipe"• *5DEV...
|
NULL
|
-7698759628892629611
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp100% C47 8 Mon 20 Apr 11:31:10DOCKER₴81DEV (docker)$82DEV (docker)APP (-zsh)|83-zsh@return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @paramstring[] Sscopes*/public function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(: ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(: string;rootedocker_1amp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:app/Models/Part,Pr.P2p:78: use HasasApiTonens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# l• *4screenpipe"• *5DEV...
|
NULL
|
|
53858
|
1165
|
5
|
2026-04-20T08:31:10.748827+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673870748_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
VIeWWinaowrTavsco.sProject© Opportunity.php© Parti VIeWWinaowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.php(c) Sconegrouo,ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn©BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id* Goronentu int nuu sion titie 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null $conference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doropertu scring sconterence recoraannounce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% LzMon ZUAOr 11.31.10service.pnpkouteservicerrovider.ong© Partner.php© ReportController.php© User.phpx©syncuserrllotcompanyListener.gA67 X1 X7Security patch review and testing guidancewill throw a ratal type error at runtime whenever rassport tries to set or clear the access token.Why it hasn't blown up yet — PHP resolves trait method precedence at class definition time,ana Laravel \Passport\HasAp1lokens Isalso use a Dy the models (via the trait), so rassport'sown trait methods may be filling the gaps. Check which trait wins:bashgrep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApoutright wrong! Also, we don't support using the $team argument.# Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.phpIf User only uses Jiminny\Traits\HasApiTokens,then oauthApps(), tokens(),createToken() , getProviderName(), tokenCant() , and currentAccessToken() areallmissing at runtime — the interface contract is broken. If1t use s lassport's directly too, there'sa trait conflict.The fix - your custom trait should not exist as a standalone override. Either:1. Delete Jiminny\Traits\HasApiTokens anduse Laravel\Passport\HasApiTokensdirectly in both models, or2. If you need the custom token ()) return type hint, extend via the model directly ratherthan a competing traitGiven the PR is alreadv merged. check if anv auth flows are actually failing right now bv hittingPOST /oauth/token with a real client credentials or password grant request in your local envbefore this reaches staging/production.root@docker_lamp_1:/home/jiminny# grep-n "use HasApiTokens" app/Models/User.phpapp/Models/Partner.php app/Traits/HasApiTokens.php20o Mode s/userono:4c: use HasAoillokens:app/Models/Partner.php:78: use HasApiTokens;root@docker_lamp_1:/home/fiminny# # Does User use Jiminny's or Passport's?grep-rn "HasApiTokens" app/Models/User.php43:use Laravel|Passport\HasApiTokens;243: use HasApiTokens;root@docker_lamp_1:/home/jiminny#Sonnet 4.6...
|
NULL
|
-7922069775720877128
|
NULL
|
click
|
ocr
|
NULL
|
VIeWWinaowrTavsco.sProject© Opportunity.php© Parti VIeWWinaowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.php(c) Sconegrouo,ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn©BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id* Goronentu int nuu sion titie 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null $conference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doropertu scring sconterence recoraannounce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% LzMon ZUAOr 11.31.10service.pnpkouteservicerrovider.ong© Partner.php© ReportController.php© User.phpx©syncuserrllotcompanyListener.gA67 X1 X7Security patch review and testing guidancewill throw a ratal type error at runtime whenever rassport tries to set or clear the access token.Why it hasn't blown up yet — PHP resolves trait method precedence at class definition time,ana Laravel \Passport\HasAp1lokens Isalso use a Dy the models (via the trait), so rassport'sown trait methods may be filling the gaps. Check which trait wins:bashgrep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApoutright wrong! Also, we don't support using the $team argument.# Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.phpIf User only uses Jiminny\Traits\HasApiTokens,then oauthApps(), tokens(),createToken() , getProviderName(), tokenCant() , and currentAccessToken() areallmissing at runtime — the interface contract is broken. If1t use s lassport's directly too, there'sa trait conflict.The fix - your custom trait should not exist as a standalone override. Either:1. Delete Jiminny\Traits\HasApiTokens anduse Laravel\Passport\HasApiTokensdirectly in both models, or2. If you need the custom token ()) return type hint, extend via the model directly ratherthan a competing traitGiven the PR is alreadv merged. check if anv auth flows are actually failing right now bv hittingPOST /oauth/token with a real client credentials or password grant request in your local envbefore this reaches staging/production.root@docker_lamp_1:/home/jiminny# grep-n "use HasApiTokens" app/Models/User.phpapp/Models/Partner.php app/Traits/HasApiTokens.php20o Mode s/userono:4c: use HasAoillokens:app/Models/Partner.php:78: use HasApiTokens;root@docker_lamp_1:/home/fiminny# # Does User use Jiminny's or Passport's?grep-rn "HasApiTokens" app/Models/User.php43:use Laravel|Passport\HasApiTokens;243: use HasApiTokens;root@docker_lamp_1:/home/jiminny#Sonnet 4.6...
|
NULL
|
|
53859
|
1165
|
6
|
2026-04-20T08:31:12.273185+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673872273_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
VIewWindowrTavsco.sProject© Opportunity.php© Parti VIewWindowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongc) Playoacklneme.ono© Playbook.phpC) Playbookcategorv.php© Playlist.phpC) RateLimit.php© Region.phpC) Role.php© RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho(C) SocialAccount.oho(C) Stade oho© Task.phpC Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> O Policiesv Providers@ ActivitvServiceProvider.ohn@ AniServiceProvider.nhn@ AnnServiceProvider.nhnC) AuthServiceProvider.nhn@ RroadcastServiceProvider.ohn© CalendarServiceProvider.php@ CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php(c CvontCorvicoDrovidor nhnl© HubspotJournalServiceProvider.p© HubspotWebhookServiceProvideA limC) AooServiceProvider.ongC) AutomatedReport.phonamespace Jiminny Models;Liminnu Models VIsenamethod stringl] getRoles() laratrust's annotation* @property int $id* @property mixed Suuidx oohopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachGoropertu bool Suses two factor auth•doropertu strinolnuur sauthu 10Gpropertu strinalnulz scountru code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone• Aoropertu strinalnull Scaller id* coronentu int nuu sion tite io.• Aoronentu strinalnull Stwo factor reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* Oproperty string $language* Annonentu ctrinalnull Cconfononco numhon* @property stringlnull $conference_pin* @property string|null $conference_slug* Apropenty string Sconference join preference* Annonentu bool Sconfonenco ¿oin nomindon* doropertu scring sconterence recoraannounce* Apropentu int $conference record preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% C 8Mon ZUAOr 11:31-12Security patch review and testing guidanceservice.pnpkouteservicerrovider.ongC) FieldRepository.ong© ReportController.php© Partner.php© User.php x © SyncUserPilotCompanyListener.p© createsnaredevent.png- A67 X1 X1rotdockes serpht/aome/onis/fa fner n ° aр Tra: TaApiTokens.phpapp/odelf/Parnerp2p: sH4asApirokens:root@docker lamp 1:home/iiminnv# # Does User use Jiminnv's or Passport's?grep -rn "HasApiTokens" app/Models/User.php4s:use Larave Passoort hasaoilokens.243: use HasApiTokens;root@docker_lamp_1:/home/fiminny#outright wrong! Also, we don't support using the $team argument.Replv…CannotAhClaude is Al and can make mistakes. Please double-check responses....
|
NULL
|
6840046725500448973
|
NULL
|
visual_change
|
ocr
|
NULL
|
VIewWindowrTavsco.sProject© Opportunity.php© Parti VIewWindowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongc) Playoacklneme.ono© Playbook.phpC) Playbookcategorv.php© Playlist.phpC) RateLimit.php© Region.phpC) Role.php© RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho(C) SocialAccount.oho(C) Stade oho© Task.phpC Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> O Policiesv Providers@ ActivitvServiceProvider.ohn@ AniServiceProvider.nhn@ AnnServiceProvider.nhnC) AuthServiceProvider.nhn@ RroadcastServiceProvider.ohn© CalendarServiceProvider.php@ CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php(c CvontCorvicoDrovidor nhnl© HubspotJournalServiceProvider.p© HubspotWebhookServiceProvideA limC) AooServiceProvider.ongC) AutomatedReport.phonamespace Jiminny Models;Liminnu Models VIsenamethod stringl] getRoles() laratrust's annotation* @property int $id* @property mixed Suuidx oohopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachGoropertu bool Suses two factor auth•doropertu strinolnuur sauthu 10Gpropertu strinalnulz scountru code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone• Aoropertu strinalnull Scaller id* coronentu int nuu sion tite io.• Aoronentu strinalnull Stwo factor reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* Oproperty string $language* Annonentu ctrinalnull Cconfononco numhon* @property stringlnull $conference_pin* @property string|null $conference_slug* Apropenty string Sconference join preference* Annonentu bool Sconfonenco ¿oin nomindon* doropertu scring sconterence recoraannounce* Apropentu int $conference record preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% C 8Mon ZUAOr 11:31-12Security patch review and testing guidanceservice.pnpkouteservicerrovider.ongC) FieldRepository.ong© ReportController.php© Partner.php© User.php x © SyncUserPilotCompanyListener.p© createsnaredevent.png- A67 X1 X1rotdockes serpht/aome/onis/fa fner n ° aр Tra: TaApiTokens.phpapp/odelf/Parnerp2p: sH4asApirokens:root@docker lamp 1:home/iiminnv# # Does User use Jiminnv's or Passport's?grep -rn "HasApiTokens" app/Models/User.php4s:use Larave Passoort hasaoilokens.243: use HasApiTokens;root@docker_lamp_1:/home/fiminny#outright wrong! Also, we don't support using the $team argument.Replv…CannotAhClaude is Al and can make mistakes. Please double-check responses....
|
53858
|
|
53860
|
1165
|
7
|
2026-04-20T08:31:21.324987+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673881324_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
VIewWinaowrTavsco.sProject© Opportunity.php© Parti VIewWinaowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongc) Playoacklneme.ono© Playbook.phpC) Playbookcategorv.php© Playlist.phpC) RateLimit.php© Region.phpC) Role.php© RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho(C) SocialAccount.oho(C) Stade oho© Task.phpC Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> O Policiesv Providers@ ActivitvServiceProvider.ohn@ AniServiceProvider.nhn@ AnnServiceProvider.nhnC) AuthServiceProvider.nhn@ RroadcastServiceProvider.ohn© CalendarServiceProvider.php@ CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php(c CvontCorvicoDrovidor nhnl© HubspotJournalServiceProvider.p© HubspotWebhookServiceProvideA limC) AooServiceProvider.ongC) AutomatedReport.phonamespace Jiminny Models;liminnu Models VIsenamethod stringl] getRoles() laratrust's annotation* @property int $id* @property mixed Suuidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sohoto pachiGoropertu bool Suses two factor auth•doropertu strinolnuur sauthu 10Gpropertu strinalnulz scountru code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone• Aoropertu strinalnull Scaller id* coronentu int nuu sion tite io.• Aoronentu strinalnull Stwo facton reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* Oproperty string $language* Annonentu ctrinalnull Cconfononco numhon* @property stringlnull $conference_pin* @property string|null $conference_slug* Apropenty string Sconference join preference* Annonentu bool Sconfonenco ¿oin nomindon* doroperty scring sconterence recora announce* Apropentu int $conference record preference* doroperty int sconference banawidch* opropertu int sconference start weocam• ∞.100% LzMOn ZU AOr 11:31-2service.pnpC Field.phpC) FieldRepository.pnpC) ReportController.onp© RouteServiceProvider.php© Partner.php© User.php XOsyncuserrllotcompanyListener.grinstalledevent.phpCreateAcuivityLoggedevent.ongC Createsnaredevent.phgA67 X1 X7Security patch review and testing guidanceIf User onlv useS Jiminny Traits HasApiTokens,then oauthApps() , tokens() ,createloken), getProviderName, tokenCant,and currentAccessToken areallmissing at runtime — the interface contract is broken. If it use s Passport's directly too, there'sa trait conflict.The fix - your custom trait should not exist as a standalone override. Either:1. Delete Jiminny Traits\HasApiTokens anduse Laravel \Passport\HasAp1Tokensdirectly in both models, or2. If you need the custom token() return type hint, extend via the model directly ratherthan a competing traitGiven the PR is already merged, check if anv auth flows are actually failing right now by hittingPOST /oauth/token with a real client credentials or password grant request in your local envbefore this reaches staging production.outright wrong! Also, we don't support using the $team argument.Both models use Passport'sown HasApiTokens (Laravel\ Passport\HasApiTokens).notyour custom Jiminny Traits \HasApiTokens. Your custom trait inapp/Traits/HasApiTokens.php is essentially dead code — nothingimports it.bash# Confirm nothing uses the custom traitlgrep -rn "Jiminny)|\Traits\|\HasApiTokens" app/# orgrep -rn "use JiminnyTraits\HasApiTokenReplv.CannotAhClaude ic Aand can make mictakes Plasce double-check recnoncaci...
|
NULL
|
180449148749849915
|
NULL
|
visual_change
|
ocr
|
NULL
|
VIewWinaowrTavsco.sProject© Opportunity.php© Parti VIewWinaowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongc) Playoacklneme.ono© Playbook.phpC) Playbookcategorv.php© Playlist.phpC) RateLimit.php© Region.phpC) Role.php© RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho(C) SocialAccount.oho(C) Stade oho© Task.phpC Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> O Policiesv Providers@ ActivitvServiceProvider.ohn@ AniServiceProvider.nhn@ AnnServiceProvider.nhnC) AuthServiceProvider.nhn@ RroadcastServiceProvider.ohn© CalendarServiceProvider.php@ CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php(c CvontCorvicoDrovidor nhnl© HubspotJournalServiceProvider.p© HubspotWebhookServiceProvideA limC) AooServiceProvider.ongC) AutomatedReport.phonamespace Jiminny Models;liminnu Models VIsenamethod stringl] getRoles() laratrust's annotation* @property int $id* @property mixed Suuidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sohoto pachiGoropertu bool Suses two factor auth•doropertu strinolnuur sauthu 10Gpropertu strinalnulz scountru code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone• Aoropertu strinalnull Scaller id* coronentu int nuu sion tite io.• Aoronentu strinalnull Stwo facton reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* Oproperty string $language* Annonentu ctrinalnull Cconfononco numhon* @property stringlnull $conference_pin* @property string|null $conference_slug* Apropenty string Sconference join preference* Annonentu bool Sconfonenco ¿oin nomindon* doroperty scring sconterence recora announce* Apropentu int $conference record preference* doroperty int sconference banawidch* opropertu int sconference start weocam• ∞.100% LzMOn ZU AOr 11:31-2service.pnpC Field.phpC) FieldRepository.pnpC) ReportController.onp© RouteServiceProvider.php© Partner.php© User.php XOsyncuserrllotcompanyListener.grinstalledevent.phpCreateAcuivityLoggedevent.ongC Createsnaredevent.phgA67 X1 X7Security patch review and testing guidanceIf User onlv useS Jiminny Traits HasApiTokens,then oauthApps() , tokens() ,createloken), getProviderName, tokenCant,and currentAccessToken areallmissing at runtime — the interface contract is broken. If it use s Passport's directly too, there'sa trait conflict.The fix - your custom trait should not exist as a standalone override. Either:1. Delete Jiminny Traits\HasApiTokens anduse Laravel \Passport\HasAp1Tokensdirectly in both models, or2. If you need the custom token() return type hint, extend via the model directly ratherthan a competing traitGiven the PR is already merged, check if anv auth flows are actually failing right now by hittingPOST /oauth/token with a real client credentials or password grant request in your local envbefore this reaches staging production.outright wrong! Also, we don't support using the $team argument.Both models use Passport'sown HasApiTokens (Laravel\ Passport\HasApiTokens).notyour custom Jiminny Traits \HasApiTokens. Your custom trait inapp/Traits/HasApiTokens.php is essentially dead code — nothingimports it.bash# Confirm nothing uses the custom traitlgrep -rn "Jiminny)|\Traits\|\HasApiTokens" app/# orgrep -rn "use JiminnyTraits\HasApiTokenReplv.CannotAhClaude ic Aand can make mictakes Plasce double-check recnoncaci...
|
NULL
|
|
53861
|
1164
|
7
|
2026-04-20T08:31:38.479297+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673898479_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp100% C47 8 Mon 20 Apr 11:31:38DOCKER381DEV (docker)$82DEV (docker)APP (-zsh)|83-zsh@return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.* @paramstring[] Sscopes*/public function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(: ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(: string;rootedocker_1amp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:app/Models/Part,Pr.P2p:78: use HasasApiTonens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# l• *4screenpipe"• *5DEV...
|
NULL
|
-3823952067225387074
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp100% C47 8 Mon 20 Apr 11:31:38DOCKER381DEV (docker)$82DEV (docker)APP (-zsh)|83-zsh@return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.* @paramstring[] Sscopes*/public function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(: ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(: string;rootedocker_1amp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:app/Models/Part,Pr.P2p:78: use HasasApiTonens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep -rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# l• *4screenpipe"• *5DEV...
|
53857
|
|
53862
|
1165
|
8
|
2026-04-20T08:31:38.434032+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673898434_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
VIeWWindowrTavsco.sProject© Opportunity.php© Parti VIeWWindowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn©BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sohoto pachiAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id* coronentu int nuu sion tite io.@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null Sconference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doropertu scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% LzMon 2U AOr 11:31:30Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© FieldRepository.php© ReportController.php© User.phpxOsyncuserrllotcompanyListener.gCreateAcuivityLoggedevent.ong© createsnaredevent.pngA67 X1 X7Both models use Passport's own HasApiTokens (Laravel\Passport\HasApiTokens), notyour custom Jiminny\Traits\HasApiTokens . Your custom trait inapp/Traits/HasApiTokens. php is essentially dead code — nothing imports it.outright wrong! Also, we don't support using the $team argument.# Confirm nothing uses the custom traitgrep -rn "Jiminny||\Traits||\HasApiTokens" app/ A# orgrep -rn "use Jiminny|||\Traits|||\HasApiTokens" app/If that comes back empty, you're fine. Passport's full trait is what's actually running on bothUser and Partner , which means:•A lll untertace methods are satishedi• withAccessToken(?ScopeAuthorizable) is the correct signaturetokens(), oauthApps(), createToken() , getProviderName() etc. are all presentThe custom trait in app/Traits/HasApiTokens.php is just orphaned code - probably aleftover from an older version of Passport before the library provided a proper trait. It'sharmless right now but should be deleted to avoid confusion.Bottom line on the securitv PR: vou're clear. Passport is wired un correctlv. the bump is safe.and the one failing test was the pre-existing flaky factory issue. You can proceed withconncence*Reply...Sonnet 4.6Claude ic Aland can make mictakes Plosce double-check recnoncaci...
|
NULL
|
-6630336757833389096
|
NULL
|
click
|
ocr
|
NULL
|
VIeWWindowrTavsco.sProject© Opportunity.php© Parti VIeWWindowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn©BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sohoto pachiAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id* coronentu int nuu sion tite io.@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null Sconference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doropertu scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam100% LzMon 2U AOr 11:31:30Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© FieldRepository.php© ReportController.php© User.phpxOsyncuserrllotcompanyListener.gCreateAcuivityLoggedevent.ong© createsnaredevent.pngA67 X1 X7Both models use Passport's own HasApiTokens (Laravel\Passport\HasApiTokens), notyour custom Jiminny\Traits\HasApiTokens . Your custom trait inapp/Traits/HasApiTokens. php is essentially dead code — nothing imports it.outright wrong! Also, we don't support using the $team argument.# Confirm nothing uses the custom traitgrep -rn "Jiminny||\Traits||\HasApiTokens" app/ A# orgrep -rn "use Jiminny|||\Traits|||\HasApiTokens" app/If that comes back empty, you're fine. Passport's full trait is what's actually running on bothUser and Partner , which means:•A lll untertace methods are satishedi• withAccessToken(?ScopeAuthorizable) is the correct signaturetokens(), oauthApps(), createToken() , getProviderName() etc. are all presentThe custom trait in app/Traits/HasApiTokens.php is just orphaned code - probably aleftover from an older version of Passport before the library provided a proper trait. It'sharmless right now but should be deleted to avoid confusion.Bottom line on the securitv PR: vou're clear. Passport is wired un correctlv. the bump is safe.and the one failing test was the pre-existing flaky factory issue. You can proceed withconncence*Reply...Sonnet 4.6Claude ic Aland can make mictakes Plosce double-check recnoncaci...
|
53860
|
|
53863
|
1164
|
8
|
2026-04-20T08:31:40.689339+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673900689_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53864
|
1165
|
9
|
2026-04-20T08:31:40.527549+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673900527_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53865
|
1164
|
9
|
2026-04-20T08:31:42.185831+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673902185_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-2059175863667528991
|
-6230233538922077668
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53863
|
|
53866
|
1165
|
10
|
2026-04-20T08:31:45.400158+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673905400_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FV faVsco.js v?9 masterProletey© Opportunity.php© FV faVsco.js v?9 masterProletey© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn© BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sohoto pachiAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id• coronentu int nuu sion title 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null Sconference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Apropertu bool Sconference join reminder |* doropertu scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam• ∞.MON ZU AOr 11:31:40Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© FieldRepository.php© ReportController.php© User.phpxOsyncuserrllotcompanyListener.gCreateAcuivityLoggedevent.ong© createsnaredevent.pngA67 X1 X7outright wrong! Also, we don't support using the $team argument.Both models use Passport's own HasApiTokens (Laravel\Passport\HasApiTokens), notyour custom Jiminny\Traits\HasApiTokens . Your custom trait inapp/Traits/HasApiTokens. php is essentially dead code — nothing imports it.# Confirm nothingReply+grep -rn "Jiminny)|\Traits||\HasApiTokens" app/grep -rn "use Jiminny|||\Traits|||\HasApiTokens" app/If that comes back empty, you're fine. Passport's full trait is what's actually running on bothUser and Partner , which means:•A lll untertace methods are satishedi• withAccessToken(?ScopeAuthorizable) is the correct signaturetokens() , oauthApps(), createToken() , getProviderName() etc. are all presentThe custom trait in app/Traits/HasApiTokens.php is just orphaned code - probably aleftover from an older version of Passport before the library provided a proper trait. It'sharmless right now but should be deleted to avoid confusion.Bottom line on the securitv PR: vou're clear. Passport is wired un correctlv. the bump is safe.and the one failing test was the pre-existing flaky factory issue. You can proceed withconncence*Reply...Sonnet 4.6Claude ic Aland can make mictakes Plosce double-check recnoncaci...
|
NULL
|
1095934869783022704
|
NULL
|
click
|
ocr
|
NULL
|
FV faVsco.js v?9 masterProletey© Opportunity.php© FV faVsco.js v?9 masterProletey© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn© BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sohoto pachiAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id• coronentu int nuu sion title 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null Sconference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Apropertu bool Sconference join reminder |* doropertu scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam• ∞.MON ZU AOr 11:31:40Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© FieldRepository.php© ReportController.php© User.phpxOsyncuserrllotcompanyListener.gCreateAcuivityLoggedevent.ong© createsnaredevent.pngA67 X1 X7outright wrong! Also, we don't support using the $team argument.Both models use Passport's own HasApiTokens (Laravel\Passport\HasApiTokens), notyour custom Jiminny\Traits\HasApiTokens . Your custom trait inapp/Traits/HasApiTokens. php is essentially dead code — nothing imports it.# Confirm nothingReply+grep -rn "Jiminny)|\Traits||\HasApiTokens" app/grep -rn "use Jiminny|||\Traits|||\HasApiTokens" app/If that comes back empty, you're fine. Passport's full trait is what's actually running on bothUser and Partner , which means:•A lll untertace methods are satishedi• withAccessToken(?ScopeAuthorizable) is the correct signaturetokens() , oauthApps(), createToken() , getProviderName() etc. are all presentThe custom trait in app/Traits/HasApiTokens.php is just orphaned code - probably aleftover from an older version of Passport before the library provided a proper trait. It'sharmless right now but should be deleted to avoid confusion.Bottom line on the securitv PR: vou're clear. Passport is wired un correctlv. the bump is safe.and the one failing test was the pre-existing flaky factory issue. You can proceed withconncence*Reply...Sonnet 4.6Claude ic Aland can make mictakes Plosce double-check recnoncaci...
|
53864
|
|
53867
|
1164
|
10
|
2026-04-20T08:31:45.461412+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673905461_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDEV (docker)APP (-zsh)DOCKERDEV (docker)$82X3-zsh* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/*** Determine if the current API token is missing a given scope.*/public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @param string[]Sscopes*/public function createToken(string Sname, array $scopes = O): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/***/* Get the user provider name.public function getProviderName(): string;root@docker_lamp_1:/home/jiminny# grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep-rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny)|\Traits||\HasApiTokens" app/root@docker_lamp_1:/home/jiminny#• ₴4100% (47 8 Mon 20 Apr 11:31:45T81screenpipe™• ₴5DEV...
|
NULL
|
-5679875093946667541
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDEV (docker)APP (-zsh)DOCKERDEV (docker)$82X3-zsh* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/*** Determine if the current API token is missing a given scope.*/public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @param string[]Sscopes*/public function createToken(string Sname, array $scopes = O): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/***/* Get the user provider name.public function getProviderName(): string;root@docker_lamp_1:/home/jiminny# grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep-rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny)|\Traits||\HasApiTokens" app/root@docker_lamp_1:/home/jiminny#• ₴4100% (47 8 Mon 20 Apr 11:31:45T81screenpipe™• ₴5DEV...
|
NULL
|
|
53869
|
1165
|
11
|
2026-04-20T08:31:48.527747+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673908527_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FV faVsco.js~?9 masterProledey© Opportunity.php© P FV faVsco.js~?9 masterProledey© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn©BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx oohopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id• coronentu int nuu sion title 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null Sconference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doropertu scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocamMON ZU AOr 11:31:40Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© FieldRepository.php© ReportController.php© User.phpx©syncuserrllotcompanyListener.gCreateAcuivityLoggedevent.ong© createsnaredevent.pngA67 X1 X7Both models use Passport's own HasApiTokens (Laravel\Passport\HasApiTokens), notyour custom Jiminny\Traits\HasApiTokens . Your custom trait inapp/Traits/HasApiTokens. php is essentially dead code — nothing imports it.outright wrong! Also, we don't support using the $team argument.# Conturm nothino uses the custom trautgrep -rn "Jiminny\TrsApiTokens" app/Reovhgrep -rn "use Jiminny|||\Traits|||\HasApiTokens" app/If that comes back empty, you're fine. Passport's full trait is what's actually running on bothUser and Partner, which means:•A lll untertace methods are satishedi• withAccessToken(?ScopeAuthorizable) is the correct signaturetokens(), oauthApps(), createToken() , getProviderName() etc. are all presentThe custom trait in app/Traits/HasApiTokens.php is just orphaned code - probably aleftover from an older version of Passport before the library provided a proper trait. It'sharmless right now but should be deleted to avoid confusion.Bottom line on the securitv PR: vou're clear. Passport is wired un correctlv. the bump is safe.and the one failing test was the pre-existing flaky factory issue. You can proceed withconncence*Reply...Sonnet 4.6Claude ic Aland can make mictakes Plosce double-check recnoncaci...
|
NULL
|
-6098360680276858317
|
NULL
|
click
|
ocr
|
NULL
|
FV faVsco.js~?9 masterProledey© Opportunity.php© P FV faVsco.js~?9 masterProledey© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn©BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx oohopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id• coronentu int nuu sion title 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null Sconference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doropertu scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocamMON ZU AOr 11:31:40Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© FieldRepository.php© ReportController.php© User.phpx©syncuserrllotcompanyListener.gCreateAcuivityLoggedevent.ong© createsnaredevent.pngA67 X1 X7Both models use Passport's own HasApiTokens (Laravel\Passport\HasApiTokens), notyour custom Jiminny\Traits\HasApiTokens . Your custom trait inapp/Traits/HasApiTokens. php is essentially dead code — nothing imports it.outright wrong! Also, we don't support using the $team argument.# Conturm nothino uses the custom trautgrep -rn "Jiminny\TrsApiTokens" app/Reovhgrep -rn "use Jiminny|||\Traits|||\HasApiTokens" app/If that comes back empty, you're fine. Passport's full trait is what's actually running on bothUser and Partner, which means:•A lll untertace methods are satishedi• withAccessToken(?ScopeAuthorizable) is the correct signaturetokens(), oauthApps(), createToken() , getProviderName() etc. are all presentThe custom trait in app/Traits/HasApiTokens.php is just orphaned code - probably aleftover from an older version of Passport before the library provided a proper trait. It'sharmless right now but should be deleted to avoid confusion.Bottom line on the securitv PR: vou're clear. Passport is wired un correctlv. the bump is safe.and the one failing test was the pre-existing flaky factory issue. You can proceed withconncence*Reply...Sonnet 4.6Claude ic Aland can make mictakes Plosce double-check recnoncaci...
|
NULL
|
|
53870
|
1164
|
12
|
2026-04-20T08:31:48.889169+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673908889_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
ClaudeFileEditViewWindowHelp100% 0 8DEV (docker)AP ClaudeFileEditViewWindowHelp100% 0 8DEV (docker)APP (-zsh)DOCKERDEV (docker)$82X3-zsh* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/*** Determine if the current API token is missing a given scope.*/public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @param stringO]Sscopes*/public function createToken(string Sname, array $scopes = O): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/***/* Get the user provider name.public function getProviderName(): string;root@docker_lamp_1:/home/jiminny# grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep-rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny)|\Traits||\HasApiTokens" app/root@docker_lamp_1:/home/jiminny# ]• ₴4screenpipe"Mon 20 Apr 11:31:48181• *5DEV...
|
NULL
|
8078419067969001001
|
NULL
|
click
|
ocr
|
NULL
|
ClaudeFileEditViewWindowHelp100% 0 8DEV (docker)AP ClaudeFileEditViewWindowHelp100% 0 8DEV (docker)APP (-zsh)DOCKERDEV (docker)$82X3-zsh* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation Auth\User>*/public function tokens(: HasMany;/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/*** Determine if the current API token is missing a given scope.*/public function tokenCant(string $scope): bool;/*** Create a new personal access token for the user.** @param stringO]Sscopes*/public function createToken(string Sname, array $scopes = O): PersonalAccessTokenResult;/*** Get the access token currently associated with the user.*/public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/***/* Get the user provider name.public function getProviderName(): string;root@docker_lamp_1:/home/jiminny# grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?grep-rn "HasApiTokens" app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny)|\Traits||\HasApiTokens" app/root@docker_lamp_1:/home/jiminny# ]• ₴4screenpipe"Mon 20 Apr 11:31:48181• *5DEV...
|
NULL
|
|
53871
|
1164
|
13
|
2026-04-20T08:31:50.584477+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673910584_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-6402554628795599335
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53870
|
|
53872
|
1165
|
12
|
2026-04-20T08:31:50.529501+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673910529_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-6402554628795599335
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53869
|
|
53873
|
1164
|
14
|
2026-04-20T08:31:51.223921+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673911223_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-8311287133871979049
|
-6230233538922077668
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53874
|
1165
|
13
|
2026-04-20T08:31:56.339695+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673916339_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53875
|
1164
|
15
|
2026-04-20T08:31:56.412021+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673916412_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53873
|
|
53876
|
1164
|
16
|
2026-04-20T08:31:58.457940+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673918457_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp100% 0 8DOCKER381public function tokens(): HasMany;DEV (docker)$82DEV (docker)APP (-zsh)*3-zsh• *4screenpipe™Mon 20 Apr 11:31:58T81*- *5/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(stringSscope): bool;/*** Createa new personal accesstoken for the user.* @param*/string(]Sscopespublic function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?greprn"HasApiTokens"app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\|\Traits|(\HasApiTokens" app/root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\||\Traits| ||\HasApiTokens" app/root@docker_lamp_1:/home/jiminny#DEV...
|
NULL
|
-6215437672352108954
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp100% 0 8DOCKER381public function tokens(): HasMany;DEV (docker)$82DEV (docker)APP (-zsh)*3-zsh• *4screenpipe™Mon 20 Apr 11:31:58T81*- *5/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(stringSscope): bool;/*** Createa new personal accesstoken for the user.* @param*/string(]Sscopespublic function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?greprn"HasApiTokens"app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\|\Traits|(\HasApiTokens" app/root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\||\Traits| ||\HasApiTokens" app/root@docker_lamp_1:/home/jiminny#DEV...
|
NULL
|
|
53877
|
1165
|
14
|
2026-04-20T08:31:58.522622+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673918522_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
FV faVsco.js~?9 masterProledey© Opportunity.php© P FV faVsco.js~?9 masterProledey© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn©BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx oohopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id• coronentu int nuu sion title 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null Sconference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doropertu scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam• ∞.MOn ZU AOr 11:31:00Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© FieldRepository.php© ReportController.php© User.phpxOsyncuserrllotcompanyListener.gCreateAcuivityLoggedevent.ong© createsnaredevent.pngA67 X1 X7Both models use Passport's own HasApiTokens (Laravel\Passport\HasApiTokens), notyour custom Jiminny\Traits\HasApiTokens . Your custom trait inapp/Traits/HasApiTokens. php is essentially dead code — nothing imports it.outright wrong! Also, we don't support using the $team argument.# Conturm nothino uses the custom trautgrep -rn "JiminnyTrsApiTokens" app/Reovngrep -rn "use Jiminny|||\Traits|||\HasApiTokens" app/If that comes back empty, you're fine. Passport's full trait is what's actually running on bothUser and Partner, which means:•A lll untertace methods are satishedi• withAccessToken(?ScopeAuthorizable) is the correct signaturetokens() , oauthApps(), createToken() , getProviderName() etc. are all presentThe custom trait in app/Traits/HasApiTokens.php is just orphaned code - probably aleftover from an older version of Passport before the library provided a proper trait. It'sharmless right now but should be deleted to avoid confusion.Bottom line on the securitv PR: vou're clear. Passport is wired un correctlv. the bump is safe.and the one failing test was the pre-existing flaky factory issue. You can proceed withconncence*Reply...Sonnet 4.6Claude ic Aland can make mictakes Plosce double-check recnoncaci...
|
NULL
|
-2010658880437831146
|
NULL
|
click
|
ocr
|
NULL
|
FV faVsco.js~?9 masterProledey© Opportunity.php© P FV faVsco.js~?9 masterProledey© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn©BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvideC) CrmServiceProvider nhnl© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx oohopent scring snamex olooent surind semalt* doroperty string null ssecondary emaz* doroperty string null spassword•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id• coronentu int nuu sion title 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int|null $group_id* @property string|null $timezone* @property string $language* @property string|null Sconference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* Anropertu bool Sconference join reminder |* doropertu scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam• ∞.MOn ZU AOr 11:31:00Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© FieldRepository.php© ReportController.php© User.phpxOsyncuserrllotcompanyListener.gCreateAcuivityLoggedevent.ong© createsnaredevent.pngA67 X1 X7Both models use Passport's own HasApiTokens (Laravel\Passport\HasApiTokens), notyour custom Jiminny\Traits\HasApiTokens . Your custom trait inapp/Traits/HasApiTokens. php is essentially dead code — nothing imports it.outright wrong! Also, we don't support using the $team argument.# Conturm nothino uses the custom trautgrep -rn "JiminnyTrsApiTokens" app/Reovngrep -rn "use Jiminny|||\Traits|||\HasApiTokens" app/If that comes back empty, you're fine. Passport's full trait is what's actually running on bothUser and Partner, which means:•A lll untertace methods are satishedi• withAccessToken(?ScopeAuthorizable) is the correct signaturetokens() , oauthApps(), createToken() , getProviderName() etc. are all presentThe custom trait in app/Traits/HasApiTokens.php is just orphaned code - probably aleftover from an older version of Passport before the library provided a proper trait. It'sharmless right now but should be deleted to avoid confusion.Bottom line on the securitv PR: vou're clear. Passport is wired un correctlv. the bump is safe.and the one failing test was the pre-existing flaky factory issue. You can proceed withconncence*Reply...Sonnet 4.6Claude ic Aland can make mictakes Plosce double-check recnoncaci...
|
53874
|
|
53878
|
1164
|
17
|
2026-04-20T08:32:00.322269+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673920322_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp‹$0DOCKER₴81public function tokens(): HasMany;DEV (docker)$82DEV (docker)APP (-zsh)*3-zsh• *4100% C47 8 Mon 20 Apr 11:31:59T₴1|screenpipe"• *5/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(stringSscope): bool;/*** Createa new personal accesstoken for the user.* @param*/string(]Sscopespublic function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/***/* Get the user provider name.public function getProviderName(): string;root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?greprn"HasApiTokens"app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\|\Traits|(\HasApiTokens" app/root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\||\Traits| ||\HasApiTokens" app/root@docker_lamp_1:/home/jiminny#DEV...
|
NULL
|
-9093147729135296592
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp‹$0DOCKER₴81public function tokens(): HasMany;DEV (docker)$82DEV (docker)APP (-zsh)*3-zsh• *4100% C47 8 Mon 20 Apr 11:31:59T₴1|screenpipe"• *5/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(stringSscope): bool;/*** Createa new personal accesstoken for the user.* @param*/string(]Sscopespublic function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/***/* Get the user provider name.public function getProviderName(): string;root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?greprn"HasApiTokens"app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\|\Traits|(\HasApiTokens" app/root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\||\Traits| ||\HasApiTokens" app/root@docker_lamp_1:/home/jiminny#DEV...
|
53876
|
|
53879
|
1165
|
15
|
2026-04-20T08:32:01.451048+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673921451_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
VIeWWindowrTavsco.sProject© Opportunity.php© Parti VIeWWindowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn© BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvide(C) CrmServiceProvider.nhn© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondaryemaz* doroperty string null spasswora•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id* Goronentu int nuu sion titie 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int/null $group_id* @property string|null $timezone* @property string $language* @property string|null $conference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* doroperty scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam• ∞.100% C4& Mon 20 Apr 11:32:01Security patch review and testing guidanceService.php© RouteServiceProvider.php© Field.php(c) Partner.php© FieldRepository.php© ReportController.php© User.phpx© SyncUserPilotCompanyListener.fCreateAcuivityLoggedevent.ong© CreateSharedEvent.phpA67 X1 X7root@docker_lamp_1:/home/jiminny# grep-rn"Jiminny "Traits|" HasApilokens" app/root@docker_lamp_1:/home/jiminny# grep-rn "useJiminny (|l| Traitsl|||HasApiTokens" app/root@docker_lamp_1:/home/jiminny#outright wrong! Also, we don't support using the $team argument.$1iTermPSReply...CannotAhClaude is Al and can make mistakes. Please double-check responses....
|
NULL
|
5298262970737331748
|
NULL
|
visual_change
|
ocr
|
NULL
|
VIeWWindowrTavsco.sProject© Opportunity.php© Parti VIeWWindowrTavsco.sProject© Opportunity.php© Participant.php© Partner.php© Permission.phpC Phonenumber.ongPlayoacklneme.ono© Playbook.phpC) Playbookcategorv.php©Playlist.phpC) RateLimit.php© Region.phpC) Role.php©RoleChangeEvent.phpc) ScoveGrouo.ono© Session.php(C) SlackBot.oho© SocialAccount.php© Stage.php© Taskphp© Team.php© TeamAiContext.php© TeamDomain.php© TeamFeature.php© TeamSettings.php© TextRelay.php© Track.php© TranscriptionModel.php© TranscriptionModelLocale.php© TranscriptionProvider.phpc User.php© UserSettings.php© Vocabulary.phpc) VocabularyPronunciation.php© VoiceAccess.php(c)VolceconsentPrefix.onoNotitications• → Observers> Eo Policiesv Providers©ActivityServiceProvider.php@ AniServiceProvider.nhn© AppServiceProvider.phpC) AuthServiceProvider.nhn© BroadcastServiceProvider.php© CalendarServiceProvider.php© CreateParticipantsServiceProvide(C) CrmServiceProvider.nhn© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.p© HubspotWebhookServiceProviderA limiAppServiceProvider.phpC) AutomatedReport.phonamespace Jiminny \Models;Jiminny \Models\Useramethod string[] getRoles() laratrust's annotation* @property int $id ]* @property mixed $uvidx ocopent scring snamex olooent surind semalt* doroperty string null ssecondaryemaz* doroperty string null spasswora•doroperty string null sonoto pachAproperty bool $uses_two_factor_auth•doropertu strinolnuur sauthu 10@property string|null $country_code• doropertu int.nulz Sregion 1di• doropertu strinalnulz ssecondaru phone@property string|null $caller_id* Goronentu int nuu sion titie 1di@property string|null $two_factor_reset_code• Goronertu int Steam id@property int/null $group_id* @property string|null $timezone* @property string $language* @property string|null $conference_number* @property string|null $conference_pin* @property string|null $conference_slug* @property string $conference_join_preference* doroperty scring sconterence recora announce* @property int Sconference_record_preference* doroperty int sconference banawidch* opropertu int sconference start weocam• ∞.100% C4& Mon 20 Apr 11:32:01Security patch review and testing guidanceService.php© RouteServiceProvider.php© Field.php(c) Partner.php© FieldRepository.php© ReportController.php© User.phpx© SyncUserPilotCompanyListener.fCreateAcuivityLoggedevent.ong© CreateSharedEvent.phpA67 X1 X7root@docker_lamp_1:/home/jiminny# grep-rn"Jiminny "Traits|" HasApilokens" app/root@docker_lamp_1:/home/jiminny# grep-rn "useJiminny (|l| Traitsl|||HasApiTokens" app/root@docker_lamp_1:/home/jiminny#outright wrong! Also, we don't support using the $team argument.$1iTermPSReply...CannotAhClaude is Al and can make mistakes. Please double-check responses....
|
NULL
|
|
53899
|
1164
|
25
|
2026-04-20T08:32:33.403736+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673953403_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53900
|
1165
|
28
|
2026-04-20T08:32:33.860069+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673953860_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53901
|
1164
|
26
|
2026-04-20T08:32:34.738636+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673954738_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53902
|
1164
|
27
|
2026-04-20T08:32:37.095232+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673957095_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
3698791239421736962
|
-8536076548135771620
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53901
|
|
53903
|
1164
|
28
|
2026-04-20T08:32:40.145123+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673960145_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelpDEV (docker)$82‹$0DEV (docker)APP (-zsh)|DOCKER₴81public function tokens(: HasMany;*3-zsh• ₴4100% C47 8 Mon 20 Apr 11:32:39T₴1|screenpipe"• ₴5|/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string$scope): bool;/*** Createa new personal accesstoken for the user.* @param*/string(]Sscopespublic function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?greprn"HasApiTokens"app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/root@docker_lamp_1:/home/jiminny# grep-rn "use Jiminny)||\Traits|||\HasApiTokens* app/root@docker_lamp_1:/home/jiminny# clearlDEV...
|
NULL
|
-6852531758063127194
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelpDEV (docker)$82‹$0DEV (docker)APP (-zsh)|DOCKER₴81public function tokens(: HasMany;*3-zsh• ₴4100% C47 8 Mon 20 Apr 11:32:39T₴1|screenpipe"• ₴5|/***/* Determine if the current API token has a given scope.public function tokenCan(string $scope): bool;/***/* Determine if the current API token is missing a given scope.public function tokenCant(string$scope): bool;/*** Createa new personal accesstoken for the user.* @param*/string(]Sscopespublic function createToken(string Sname, array $scopes = []): PersonalAccessTokenResult;/***/* Get the access token currently associated with the user.public function currentAccessToken(): ?ScopeAuthorizable;/***/* Set the current access token for the user.public function withAccessToken(?ScopeAuthorizable SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;root@docker_lamp_1:/home/jiminny#grep-n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.phpapp/Models/User.php:243:use HasApiTokens;app/Models/Partner.php:78:use HasApiTokens;root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?greprn"HasApiTokens"app/Models/User.php43:use Laravel\Passport\HasApiTokens;243:use HasApiTokens;root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/root@docker_lamp_1:/home/jiminny# grep-rn "use Jiminny)||\Traits|||\HasApiTokens* app/root@docker_lamp_1:/home/jiminny# clearlDEV...
|
NULL
|
|
53904
|
1165
|
29
|
2026-04-20T08:32:40.463217+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673960463_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
claude100% LzPMon 20 Apr 11:32:40••• =Security pat claude100% LzPMon 20 Apr 11:32:40••• =Security patch review and testing guidanceActivitycaltVIeWWindowmeltJiminny ...381 Directorie.Eh External connections.# Starred8 jiminny-x-integrati...8 platform-inner-team® Channelsa al-chanter# alerts# backend* confusion-clinid# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bgi nlatform-ackets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...6 Direct messagesP. Aneliya Angelova®. Galya Dimitrova2 Stefka StovanovalR. Stoyan TomovB Aneliya Angelova,..Nikolav Nikolov&. Stoyan TanevVasil Vasilev. Nikolay IvanovP. Vesi: Apps• Toastf Jira Cloud¿ 8. Aneliya Angelova• Messagest Add canvasur FilesAneliya Angelova 9:34 AMкато тоыгнах да качвам на ники оранча и уж се деплоива па иміariday, Marca p7th редата и гледам че стои. ХубспотLukas Kovalik 9:35 AMслучва сеиначе май си раоотидо сега друго не сьм виждалAneliya Angelova 9:35 AMдаже не знам от кога вес е счупил деплоя и колко време все съм тествала едно и сьщо без да се усетя че деплойването не е работелоLukas Kovallik 9:36 AMIThursday, April 16throutendoiktra telt /hAptokins aprep-mroot@docker_lamp_1:/home/jiminny# grep-rn"useJiminny(||| Traitsl|||HasApiTokens" app/root@docker_lamp 1:home/iiminnv#Confirmed - nothing uses it. The custom trait is completely orphaned.Summary of the full review:• Security PR is safe to stay mergedAsporE/cerety hins lorawepasgieto Becagt gocha om both ker andPartner• The PlaylistPolicyTest failure is a pre-existing flaky factory seed collision, unrelatedto the PR• app/Traits/HasApiTokens. php is dead code — worth a cleanup ticket to delete itYou're good.Aneliya Angelova 10:00 AMЛукаш кога искаш да се чуемLukas Kovallk 10-01 AMайде след 15 мин че се зарових в зохоd1Lukas Kovalik 10:32 AMако искаш да се чуем сегаAneliya Angelova 10:33 AMA huddle happened 10:33 AMIukac Kovalik 10-41 AMphp artisan automated-reports --report-id 39php artisan automated-reports:send --result-id 64Aneliya Angelova 9:41 AMЗдрасти Лукаш, струва ми се, че репортите се генерират върху всички активитита със съответния Saved search bez da e dobawen filtyr za dataLukas Kovalik 10:31AMАни след малко може да се чуемAneliya Angelova 11:27 AMнапnaво званни когато можецMessage Aneliva Angelove+ Дạ.Reply...Sonnet 4.6Claude is Al and can make mistakes. Please double-check responses....
|
NULL
|
710939922079293294
|
NULL
|
visual_change
|
ocr
|
NULL
|
claude100% LzPMon 20 Apr 11:32:40••• =Security pat claude100% LzPMon 20 Apr 11:32:40••• =Security patch review and testing guidanceActivitycaltVIeWWindowmeltJiminny ...381 Directorie.Eh External connections.# Starred8 jiminny-x-integrati...8 platform-inner-team® Channelsa al-chanter# alerts# backend* confusion-clinid# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bgi nlatform-ackets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...6 Direct messagesP. Aneliya Angelova®. Galya Dimitrova2 Stefka StovanovalR. Stoyan TomovB Aneliya Angelova,..Nikolav Nikolov&. Stoyan TanevVasil Vasilev. Nikolay IvanovP. Vesi: Apps• Toastf Jira Cloud¿ 8. Aneliya Angelova• Messagest Add canvasur FilesAneliya Angelova 9:34 AMкато тоыгнах да качвам на ники оранча и уж се деплоива па иміariday, Marca p7th редата и гледам че стои. ХубспотLukas Kovalik 9:35 AMслучва сеиначе май си раоотидо сега друго не сьм виждалAneliya Angelova 9:35 AMдаже не знам от кога вес е счупил деплоя и колко време все съм тествала едно и сьщо без да се усетя че деплойването не е работелоLukas Kovallik 9:36 AMIThursday, April 16throutendoiktra telt /hAptokins aprep-mroot@docker_lamp_1:/home/jiminny# grep-rn"useJiminny(||| Traitsl|||HasApiTokens" app/root@docker_lamp 1:home/iiminnv#Confirmed - nothing uses it. The custom trait is completely orphaned.Summary of the full review:• Security PR is safe to stay mergedAsporE/cerety hins lorawepasgieto Becagt gocha om both ker andPartner• The PlaylistPolicyTest failure is a pre-existing flaky factory seed collision, unrelatedto the PR• app/Traits/HasApiTokens. php is dead code — worth a cleanup ticket to delete itYou're good.Aneliya Angelova 10:00 AMЛукаш кога искаш да се чуемLukas Kovallk 10-01 AMайде след 15 мин че се зарових в зохоd1Lukas Kovalik 10:32 AMако искаш да се чуем сегаAneliya Angelova 10:33 AMA huddle happened 10:33 AMIukac Kovalik 10-41 AMphp artisan automated-reports --report-id 39php artisan automated-reports:send --result-id 64Aneliya Angelova 9:41 AMЗдрасти Лукаш, струва ми се, че репортите се генерират върху всички активитита със съответния Saved search bez da e dobawen filtyr za dataLukas Kovalik 10:31AMАни след малко може да се чуемAneliya Angelova 11:27 AMнапnaво званни когато можецMessage Aneliva Angelove+ Дạ.Reply...Sonnet 4.6Claude is Al and can make mistakes. Please double-check responses....
|
53900
|
|
53905
|
1164
|
29
|
2026-04-20T08:32:50.496137+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673970496_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
3698791239421736962
|
-8536076548135771620
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53903
|
|
53906
|
1165
|
30
|
2026-04-20T08:32:50.602253+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673970602_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
3698791239421736962
|
-8536076548135771620
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53911
|
1164
|
32
|
2026-04-20T08:32:56.595406+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673976595_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-2331312136567929026
|
-8177802336888754767
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53910
|
|
53912
|
1165
|
33
|
2026-04-20T08:32:56.452940+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673976452_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
claude100% L2PMon 20 Apr 11:32:56••• =Security pat claude100% L2PMon 20 Apr 11:32:56••• =Security patch review and testing guidanceActivitycaltVIeWWindowmeltJiminny ...381 Directorie.Eh External connections.# Starred8 jiminny-x-integrati...8 platform-inner-team® Channelsa al-chanter# alerts# backend* confusion-clinid# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bgi nlatform-ackets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...6 Direct messagesP. Aneliya Angelova®. Galya Dimitrova2 Stefka StovanovalR. Stoyan TomovB Aneliya Angelova,..Nikolav Nikolov&. Stoyan TanevVasil Vasilev. Nikolay IvanovP. Vesi: Apps• Toastf Jira Cloud¿ 8. Aneliya Angelova• Messagest Add canvasur FilesAneliya Angelova 9:34 AMкато тоыгнах да качвам на ники оранча и уж се деплоива па иміariday, Marca p7th редата и гледам че стои. ХубспотLukas Kovalik 9:35 AMслучва сеиначе май си раоотидо сега друго не сьм виждалAneliya Angelova 9:35 AMдаже не знам от кога вес е счупил деплоя и колко време все съм тествала едно и сьщо без да се усетя че деплойването не е работелоLukas Kovallik 9:36 AMIThursday, April 16throutendoiktra telt /hAptokins aprep-mroot@docker_lamp_1:/home/jiminny# grep-rn"useJiminny(||| Traitsl|||HasApiTokens" app/root@docker_lamp 1:home/iiminnv#Confirmed - nothing uses it. The custom trait is completely orphaned.Summary of the full review:• Security PR is safe to stay mergedAsporE/cerety hins lorawepasgieto Becagt gocha om both ker andPartner• The PlaylistPolicyTest failure is a pre-existing flaky factory seed collision, unrelatedto the PR• app/Traits/HasApiTokens. php is dead code — worth a cleanup ticket to delete itYou're good.Aneliya Angelova 10:00 AMЛукаш кога искаш да се чуемLukas Kovallk 10-01 AMайде след 15 мин че се зарових в зохоd1Lukas Kovalik 10:32 AMако искаш да се чуем сегаAneliya Angelova 10:33 AMA huddle happened 10:33 AMIukac Kovalik 10-41 AMphp artisan automated-reports --report-id 39php artisan automated-reports:send --result-id 64Aneliya Angelova 9:41 AMЗдрасти Лукаш, струва ми се, че репортите се генерират върху всички активитита със съответния Saved search bez da e dobawen filtyr za dataLukas Kovalik 10:31AMАни след малко може да се чуемAneliya Angelova 11:27 AMнапnaво званни когато можецMessage Aneliva Angelove+ Дạ.Reply..Sonnet 4.6Claude is Al and can make mistakes. Please double-check responses....
|
NULL
|
-2871221569736341363
|
NULL
|
visual_change
|
ocr
|
NULL
|
claude100% L2PMon 20 Apr 11:32:56••• =Security pat claude100% L2PMon 20 Apr 11:32:56••• =Security patch review and testing guidanceActivitycaltVIeWWindowmeltJiminny ...381 Directorie.Eh External connections.# Starred8 jiminny-x-integrati...8 platform-inner-team® Channelsa al-chanter# alerts# backend* confusion-clinid# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bgi nlatform-ackets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...6 Direct messagesP. Aneliya Angelova®. Galya Dimitrova2 Stefka StovanovalR. Stoyan TomovB Aneliya Angelova,..Nikolav Nikolov&. Stoyan TanevVasil Vasilev. Nikolay IvanovP. Vesi: Apps• Toastf Jira Cloud¿ 8. Aneliya Angelova• Messagest Add canvasur FilesAneliya Angelova 9:34 AMкато тоыгнах да качвам на ники оранча и уж се деплоива па иміariday, Marca p7th редата и гледам че стои. ХубспотLukas Kovalik 9:35 AMслучва сеиначе май си раоотидо сега друго не сьм виждалAneliya Angelova 9:35 AMдаже не знам от кога вес е счупил деплоя и колко време все съм тествала едно и сьщо без да се усетя че деплойването не е работелоLukas Kovallik 9:36 AMIThursday, April 16throutendoiktra telt /hAptokins aprep-mroot@docker_lamp_1:/home/jiminny# grep-rn"useJiminny(||| Traitsl|||HasApiTokens" app/root@docker_lamp 1:home/iiminnv#Confirmed - nothing uses it. The custom trait is completely orphaned.Summary of the full review:• Security PR is safe to stay mergedAsporE/cerety hins lorawepasgieto Becagt gocha om both ker andPartner• The PlaylistPolicyTest failure is a pre-existing flaky factory seed collision, unrelatedto the PR• app/Traits/HasApiTokens. php is dead code — worth a cleanup ticket to delete itYou're good.Aneliya Angelova 10:00 AMЛукаш кога искаш да се чуемLukas Kovallk 10-01 AMайде след 15 мин че се зарових в зохоd1Lukas Kovalik 10:32 AMако искаш да се чуем сегаAneliya Angelova 10:33 AMA huddle happened 10:33 AMIukac Kovalik 10-41 AMphp artisan automated-reports --report-id 39php artisan automated-reports:send --result-id 64Aneliya Angelova 9:41 AMЗдрасти Лукаш, струва ми се, че репортите се генерират върху всички активитита със съответния Saved search bez da e dobawen filtyr za dataLukas Kovalik 10:31AMАни след малко може да се чуемAneliya Angelova 11:27 AMнапnaво званни когато можецMessage Aneliva Angelove+ Дạ.Reply..Sonnet 4.6Claude is Al and can make mistakes. Please double-check responses....
|
53909
|
|
53917
|
1164
|
35
|
2026-04-20T08:33:00.005571+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673980005_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-2331312136567929026
|
-8177802336888754767
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53918
|
1165
|
36
|
2026-04-20T08:32:59.937990+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673979937_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-2331312136567929026
|
-8177802336888754767
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53919
|
1165
|
37
|
2026-04-20T08:33:05.664578+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673985664_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
VIewWinaow100% LzPMon 20 Apr 11:33:05( JY-20553 | VIewWinaow100% LzPMon 20 Apr 11:33:05( JY-20553 | Improve crm-sync dela[SRD-6793] Les Mills activity type@ JY-20698 handle failed field syncJY-20692 change confirmation pa(JY-20543] AJ Reports > Tracking(JY-18909 /Part2) Automated rerAsk Jiminny Reports by nikolay-ya*) New Tabu Product Growth Platform I Useroiu Userpilot Logged-activity(0 fix(security): composer dependenPipelines - jiminny/appFeed - iminny — Sentryfix(security): composer depender8 JiminnyJ New Tal08MehimasrheInsiahtsIssuesreedErrors & OutagesBreached MetricsWarningsUser FeedbackAll ViewsConfigureAlertsmy senty.lo issues:environment-production-eudenviro!• Jiminnv Excentions EmailActivitvlmnortFycention(Email Import) Failed for InboxEmail ID: 121778827: Error: Call to a member function error® on nullSAPP-I-NS• Jiminny Exceptions\RuntimeExceptionUnable to create inbox for user ID 13927 and provider "google" - social account is not connected (state: full-refresh)Re APP.1RYR IJann/johc/Mailhox/Createlnboy nhn in liminnv. lohs. Mailhox\Createlnhoyshandleuminate Database Ouerv ExceptionSOLSTATEIHY000: General error 1205 Lock wait timeout exceeded: try restartina transaction (Connection: mvsal. Host: liminnv-db-eu-orod68 APP-1FA4 /app/Jobs/Crm/MatchActivityCrmData.php in Jiminny \Jobs\Crm\MatchActivityCrmData:resetCrmMappings• Jiminny\Component\Transcription\TranscriptionProcessor\Gladia\Exceptions\InvalidTranslationResponseExceptionMAPP-1CGEJaop/comoonent/Aranscriotion/Service/AranslationService.oho.iniminny.ComoonentTranscriofion.ServiceranslationServicorcetranslatectranscIlluminate\Database\QueryException1 SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails Gjiminny'.'activities*, CC(7 APP-1E9E | /app/Models/Activitv.php in Jiminny\Models\Activitv::updateActivityCrmData• Jiminnv Comnonent PronhetAi Excentions PronhetExcentionUnexpected service error.Server error: 'POST https://prophet.jiminny.eu/crm/deal/extract-field-values* resulted in a '504 Gateway Time-out( APP-1DZ3 | /app/Component/ProphetAi/ProphetClient.php in Jiminny\Component\ProphetAi\ProphetClient::sendRequest• Jiminny\Exceptions|SocialAccountrokenInvalidExceptiorSocial account for HubSpot cannot be found. Please login to Jiminny to connect.1e App-1BY3 | lann/Services/Crm/RaceService nhn in Jiminnv|Services|Crm|RaseService-validatelIcerAccountFyisteIlluminate\ Database\QueryExceptiorSOL STATFIHY000 : General error 1205.Lock wait timeout exceeded.tnv restartino transactionConnection.mvsal.Host.liminnv-db-eu-orodfe APP-1F58 |/app/Jobs/Crm/MatchActivitvCrmData.pho in Jiminnv|Jobs\Crm\MatchActivitvCrmDatauresetCrmMappinas"iminnyl Cvcontionel Coriol/csountT.koninuolidEvoontior1 Social account for HubSpot cannot be found. Please loain to Jiminny to connect.E APP-1ET9/app/Services/Crm/BaseService.ohp in JiralidateUserAccountExistsIlluminate\Database\QueryException1 SOLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded: try restarting transaction (Connection: mysal. Host: liminny-db-eu-prod.89 APP-1FP3 |/app/Jobs/Crm/Delete/DeleteCrmEntityTrait.php in Jiminny\Jobs\Crm\Delete\DeleteLeadJob::Jiminny\Jobs\Crm\Delete\(closure)BadMethodCallExcentioni1 Required parameter not passed: "refresh_token"Re App.1ENg |lann/Sorvicos/SocialAccountSorvico nhn in Jiminnv|Sorvicoe|SocialAccountSorvico«Jiminnv|Sorvicac\fclocurol• Jiminny\Exceptions\JobTimeoutException1 Joh timed out Jiminnv\ Iisteners\Activities\Crm\UndateCrmDataI Jann/Queue/Worker/Worker.nhn in Jiminnv\ Queuel Workerl Worker-Jiminnv\Queuel Worker\(closure)Illuminate\Queue\MaxAttemptsExceededExceptionaiminnv Listeners Activities Crm UodateCrmData has been attemoted too manv times.f App-1902 |/app/Queue/Worker/Worker.oho in Jiminnv Queue Worker Worker-rocessTiminnyl Cvcontionel CoriolAccountTokoninvolidEvcantior1 Social account for HubSpot cannot be found. Please login to Jiminny to connect.APP-18V3/app/Services/Crm/BaseService.php in Jiminny Services CrmBaseService::validateUserAccountExistsSecurity patch review and testing guidancerootinyllTraitesllasApitokensnapprep-rnConnrmed — nothino uses ii. The custom trait is comnlete v ornhaned.Summary of the full review:• Securitv PR is safe to stav merged• All 5 CVE fixes are patch/minor bumps with no breaking changes• Passport is correctlv using Laravel\ Passport HasApiTokens on both User andPartner• The PlavlistPolicvTest failure is a pre-existing flaky factorv seed collision. unrelatedto the PR• app/Traits/HasApiTokens.php is dead code - worth a cleanup ticket to delete itYou re goodReplv.Sonnet 4.6vClaude is Al and can make mistakes. Please double-check responses....
|
NULL
|
4838562627965402854
|
NULL
|
visual_change
|
ocr
|
NULL
|
VIewWinaow100% LzPMon 20 Apr 11:33:05( JY-20553 | VIewWinaow100% LzPMon 20 Apr 11:33:05( JY-20553 | Improve crm-sync dela[SRD-6793] Les Mills activity type@ JY-20698 handle failed field syncJY-20692 change confirmation pa(JY-20543] AJ Reports > Tracking(JY-18909 /Part2) Automated rerAsk Jiminny Reports by nikolay-ya*) New Tabu Product Growth Platform I Useroiu Userpilot Logged-activity(0 fix(security): composer dependenPipelines - jiminny/appFeed - iminny — Sentryfix(security): composer depender8 JiminnyJ New Tal08MehimasrheInsiahtsIssuesreedErrors & OutagesBreached MetricsWarningsUser FeedbackAll ViewsConfigureAlertsmy senty.lo issues:environment-production-eudenviro!• Jiminnv Excentions EmailActivitvlmnortFycention(Email Import) Failed for InboxEmail ID: 121778827: Error: Call to a member function error® on nullSAPP-I-NS• Jiminny Exceptions\RuntimeExceptionUnable to create inbox for user ID 13927 and provider "google" - social account is not connected (state: full-refresh)Re APP.1RYR IJann/johc/Mailhox/Createlnboy nhn in liminnv. lohs. Mailhox\Createlnhoyshandleuminate Database Ouerv ExceptionSOLSTATEIHY000: General error 1205 Lock wait timeout exceeded: try restartina transaction (Connection: mvsal. Host: liminnv-db-eu-orod68 APP-1FA4 /app/Jobs/Crm/MatchActivityCrmData.php in Jiminny \Jobs\Crm\MatchActivityCrmData:resetCrmMappings• Jiminny\Component\Transcription\TranscriptionProcessor\Gladia\Exceptions\InvalidTranslationResponseExceptionMAPP-1CGEJaop/comoonent/Aranscriotion/Service/AranslationService.oho.iniminny.ComoonentTranscriofion.ServiceranslationServicorcetranslatectranscIlluminate\Database\QueryException1 SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails Gjiminny'.'activities*, CC(7 APP-1E9E | /app/Models/Activitv.php in Jiminny\Models\Activitv::updateActivityCrmData• Jiminnv Comnonent PronhetAi Excentions PronhetExcentionUnexpected service error.Server error: 'POST https://prophet.jiminny.eu/crm/deal/extract-field-values* resulted in a '504 Gateway Time-out( APP-1DZ3 | /app/Component/ProphetAi/ProphetClient.php in Jiminny\Component\ProphetAi\ProphetClient::sendRequest• Jiminny\Exceptions|SocialAccountrokenInvalidExceptiorSocial account for HubSpot cannot be found. Please login to Jiminny to connect.1e App-1BY3 | lann/Services/Crm/RaceService nhn in Jiminnv|Services|Crm|RaseService-validatelIcerAccountFyisteIlluminate\ Database\QueryExceptiorSOL STATFIHY000 : General error 1205.Lock wait timeout exceeded.tnv restartino transactionConnection.mvsal.Host.liminnv-db-eu-orodfe APP-1F58 |/app/Jobs/Crm/MatchActivitvCrmData.pho in Jiminnv|Jobs\Crm\MatchActivitvCrmDatauresetCrmMappinas"iminnyl Cvcontionel Coriol/csountT.koninuolidEvoontior1 Social account for HubSpot cannot be found. Please loain to Jiminny to connect.E APP-1ET9/app/Services/Crm/BaseService.ohp in JiralidateUserAccountExistsIlluminate\Database\QueryException1 SOLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded: try restarting transaction (Connection: mysal. Host: liminny-db-eu-prod.89 APP-1FP3 |/app/Jobs/Crm/Delete/DeleteCrmEntityTrait.php in Jiminny\Jobs\Crm\Delete\DeleteLeadJob::Jiminny\Jobs\Crm\Delete\(closure)BadMethodCallExcentioni1 Required parameter not passed: "refresh_token"Re App.1ENg |lann/Sorvicos/SocialAccountSorvico nhn in Jiminnv|Sorvicoe|SocialAccountSorvico«Jiminnv|Sorvicac\fclocurol• Jiminny\Exceptions\JobTimeoutException1 Joh timed out Jiminnv\ Iisteners\Activities\Crm\UndateCrmDataI Jann/Queue/Worker/Worker.nhn in Jiminnv\ Queuel Workerl Worker-Jiminnv\Queuel Worker\(closure)Illuminate\Queue\MaxAttemptsExceededExceptionaiminnv Listeners Activities Crm UodateCrmData has been attemoted too manv times.f App-1902 |/app/Queue/Worker/Worker.oho in Jiminnv Queue Worker Worker-rocessTiminnyl Cvcontionel CoriolAccountTokoninvolidEvcantior1 Social account for HubSpot cannot be found. Please login to Jiminny to connect.APP-18V3/app/Services/Crm/BaseService.php in Jiminny Services CrmBaseService::validateUserAccountExistsSecurity patch review and testing guidancerootinyllTraitesllasApitokensnapprep-rnConnrmed — nothino uses ii. The custom trait is comnlete v ornhaned.Summary of the full review:• Securitv PR is safe to stav merged• All 5 CVE fixes are patch/minor bumps with no breaking changes• Passport is correctlv using Laravel\ Passport HasApiTokens on both User andPartner• The PlavlistPolicvTest failure is a pre-existing flaky factorv seed collision. unrelatedto the PR• app/Traits/HasApiTokens.php is dead code - worth a cleanup ticket to delete itYou re goodReplv.Sonnet 4.6vClaude is Al and can make mistakes. Please double-check responses....
|
53918
|
|
53920
|
1164
|
36
|
2026-04-20T08:33:05.892062+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673985892_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDOCKER₴81root@docker_lamp_1:/home/jiminny# ]DEV (docker)$82DEV (docker)APP (-zsh)*3-zsh100% C47 8 Mon 20 Apr 11:33:05T₴1|• ₴4screenpipe"• *5DEV...
|
NULL
|
-7973673870566616569
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDOCKER₴81root@docker_lamp_1:/home/jiminny# ]DEV (docker)$82DEV (docker)APP (-zsh)*3-zsh100% C47 8 Mon 20 Apr 11:33:05T₴1|• ₴4screenpipe"• *5DEV...
|
53917
|
|
53921
|
1165
|
38
|
2026-04-20T08:33:08.673237+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673988673_m2.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
VIewWinaow100% LzMOn 2U A0r 11:33.00( JY-20553 | I VIewWinaow100% LzMOn 2U A0r 11:33.00( JY-20553 | Improve crm-sync dela[SRD-6793] Les Mills activity type@ JY-20698 handle failed field syncJY-20692 change confirmation pa(JY-20543] AJ Reports > Tracking(JY-18909 /Part2) Automated rerAsk Jiminny Reports by nikolay-ya*) New Tabu Product Growth Platform I Useroiu Userpilot Logged-activity(0 fix(security): composer dependenPipelines - jiminny/appFeed - iminny — Sentry)fix(security): composer depender8 JiminnyJ New Tal08aehmharheInsiahtsIssuesreedErrors & OutagesBreached MetricsWarningsUser FeedbackAll ViewsConfigureAlertsmy senty.lo issues:environment-production-eudenviro!• Jiminnv Excentions EmailActivitvlmnortFycention(Email Import) Failed for InboxEmail ID: 121778827: Error: Call to a member function error® on nullAPP-I-NS• Jiminny Exceptions\RuntimeExceptionUnable to create inbox for user ID 13927 and provider "google" - social account is not connected (state: full-refresh)ReAPP.1RYRIJann/Johc/Mailhox/Createlnboy nhn in liminnv.lohs.Mailhox\Createlnhoyshandleuminate Database Ouerv Exception• SQLSTATE[HY000J: General error: 1205 Lock wait timeout exceeded; try restarting transaction (Connection: mysql, Host: jiminny-db-eu-prod68 APP-1FA4| /app/Jobs/Crm/MatchActivityCrmData.php in Jiminny \Jobs\Crm\MatchActivityCrmData::resetCrmMappings• Jiminny\Component\Transcription\TranscriptionProcessor\Gladia\Exceptions\InvalidTranslationResponseExceptionMAPP-1CGEJaop/comoonent/Aranscriotion/Service/AranslationService.oho.iniminny.ComoonentTranscriofion.ServiceranslationServicorcetranslatectranscIlluminate\Database\QueryExceptior1 SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails Ciiminny'.'activities*, CC(7 APP-1E9E | /app/Models/Activitv.php in Jiminny\Models\Activitv::updateActivityCrmData• Jiminnv Comnonent PronhetAi Excentions PronhetSxcentionUnexpected service error.Server error: 'POST https://prophet.jiminny.eu/crm/deal/extract-field-values* resulted in a '504 Gateway Time-out)( APP-1DZ3 | /app/Component/ProphetAi/ProphetClient.php in Jiminny\Component\ProphetAi\ProphetClient::sendRequest• Jiminny\Exceptions|SocialAccounttokenInvalidExceptiorSocial account for HubSpot cannot be found. Please login to Jiminny to connect.1e App-1BY3 | lann/Services/Crm/RaceService nhn in Jiminnv|Services|Crm|RasoService-validatelJserAccountFyistsIlluminate\ Database\OueryExceptiorSOL STATFIHY000 : General error 1205.Lock wait timeout exceeded.tnv restartino transactionConnection.mvsal.Host.liminnv-db-eu-orodfe APp-1F58 |/app/Jobs/Crm/MatchActivitvCrmData.pho in.Jiminnv|Jobs\Crm|MatchActivitvCrmDatauresetCrmMappinas"iminnyl Cvcontionel Coriol/csountT.konlnuolidEvoontior1 Social account for HubSpot cannot be found. Please loain to Jiminny to connect.E APP-1ET9 |/app/Services/Crm/BaseService.ohp in Jir/alidateUserAccountExistsIlluminate\Database\QueryException1 SOLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded: try restarting transaction (Connection: mysal. Host: fiminny-db-eu-prod.89 APP-1FP3 |/app/Jobs/Crm/Delete/DeleteCrmEntityTrait.php in Jiminny\Jobs\Crm\Delete\DeleteLeadJob::Jiminny\Jobs\Crm\Delete\(closure)BadMethodCallExcentioni1 Required parameter not passed: "refresh_token"Re App.1ENg |lann/Sorvicos/SocialAccountSorvico nhn in Jiminnv|Sorvicoe|SocialAccountSorvico«Jiminnv|Sorvicac\fclocurol• Jiminny\Exceptions\JobTimeoutException1 Joh timed out Jiminnv\ Iisteners\Activities\Crm\UndateCrmDataI Jann/Queue/Worker/Worker.nhn in Jiminnv Queue\ Worker) Worker«Jiminnv\Queue\ Worker\(closure)Illuminate\Queue\ MaxAttemptsExceededExceptionJiminny\Listeners\Activities\Crm\UpdateCrmData has been attempted too many times.f App-1902 |/app/Queue/Worker/Worker.oho in Jiminnv Queue Worker Worker-rocessTiminnyl Cvcontionel CoriolAccountTokoninvolidEvcantior1 Social account for HubSpot cannot be found. Please login to Jiminny to connect.APP-18V3/app/Services/Crm/BaseService.php in Jiminny Services\CrmBaseService:oltraralicarhashuntewiote•• 0Security patch review and testing guidanceRewew testtesetyrty ce enteary upechang-esimphse - 202re these safe?patch/minor bumps. Alert #463 (phpunit/phpunit) is listed under Skipped11:06 1Reading frontend design skill ›fixed alertssklpped alertsoreaking changesmerge verdietsate wi caveatFIXED - SAFF TO MERGEalertpackageseverityversion#457laravel/passportCVE-2026-39976 - 13.6.0 → 13.7.4high#434e 203050640- 4335 7 4.336 (ranaitive)highpatchhighoatchiCV6.2024-22025 ÷ CVE.2026-40104.2.0.40 ₴ 20.51#429patchevsnva%esottraneirivoSKIPPED -— ACTION REQUIRED SEPARATELYHAA2pnpunic/pnpunitNo CVE • 11.X → 12.x — major breaking bumphigh)major bumpRemoves iniSet(), setLocale(),getMockFor,getMockForTrait(),createTestmctflacel)keolv..CannotAhClaude ic Aland can make mistakes Plosce double-chock recnoncac)...
|
NULL
|
-8154378308547554867
|
NULL
|
visual_change
|
ocr
|
NULL
|
VIewWinaow100% LzMOn 2U A0r 11:33.00( JY-20553 | I VIewWinaow100% LzMOn 2U A0r 11:33.00( JY-20553 | Improve crm-sync dela[SRD-6793] Les Mills activity type@ JY-20698 handle failed field syncJY-20692 change confirmation pa(JY-20543] AJ Reports > Tracking(JY-18909 /Part2) Automated rerAsk Jiminny Reports by nikolay-ya*) New Tabu Product Growth Platform I Useroiu Userpilot Logged-activity(0 fix(security): composer dependenPipelines - jiminny/appFeed - iminny — Sentry)fix(security): composer depender8 JiminnyJ New Tal08aehmharheInsiahtsIssuesreedErrors & OutagesBreached MetricsWarningsUser FeedbackAll ViewsConfigureAlertsmy senty.lo issues:environment-production-eudenviro!• Jiminnv Excentions EmailActivitvlmnortFycention(Email Import) Failed for InboxEmail ID: 121778827: Error: Call to a member function error® on nullAPP-I-NS• Jiminny Exceptions\RuntimeExceptionUnable to create inbox for user ID 13927 and provider "google" - social account is not connected (state: full-refresh)ReAPP.1RYRIJann/Johc/Mailhox/Createlnboy nhn in liminnv.lohs.Mailhox\Createlnhoyshandleuminate Database Ouerv Exception• SQLSTATE[HY000J: General error: 1205 Lock wait timeout exceeded; try restarting transaction (Connection: mysql, Host: jiminny-db-eu-prod68 APP-1FA4| /app/Jobs/Crm/MatchActivityCrmData.php in Jiminny \Jobs\Crm\MatchActivityCrmData::resetCrmMappings• Jiminny\Component\Transcription\TranscriptionProcessor\Gladia\Exceptions\InvalidTranslationResponseExceptionMAPP-1CGEJaop/comoonent/Aranscriotion/Service/AranslationService.oho.iniminny.ComoonentTranscriofion.ServiceranslationServicorcetranslatectranscIlluminate\Database\QueryExceptior1 SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails Ciiminny'.'activities*, CC(7 APP-1E9E | /app/Models/Activitv.php in Jiminny\Models\Activitv::updateActivityCrmData• Jiminnv Comnonent PronhetAi Excentions PronhetSxcentionUnexpected service error.Server error: 'POST https://prophet.jiminny.eu/crm/deal/extract-field-values* resulted in a '504 Gateway Time-out)( APP-1DZ3 | /app/Component/ProphetAi/ProphetClient.php in Jiminny\Component\ProphetAi\ProphetClient::sendRequest• Jiminny\Exceptions|SocialAccounttokenInvalidExceptiorSocial account for HubSpot cannot be found. Please login to Jiminny to connect.1e App-1BY3 | lann/Services/Crm/RaceService nhn in Jiminnv|Services|Crm|RasoService-validatelJserAccountFyistsIlluminate\ Database\OueryExceptiorSOL STATFIHY000 : General error 1205.Lock wait timeout exceeded.tnv restartino transactionConnection.mvsal.Host.liminnv-db-eu-orodfe APp-1F58 |/app/Jobs/Crm/MatchActivitvCrmData.pho in.Jiminnv|Jobs\Crm|MatchActivitvCrmDatauresetCrmMappinas"iminnyl Cvcontionel Coriol/csountT.konlnuolidEvoontior1 Social account for HubSpot cannot be found. Please loain to Jiminny to connect.E APP-1ET9 |/app/Services/Crm/BaseService.ohp in Jir/alidateUserAccountExistsIlluminate\Database\QueryException1 SOLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded: try restarting transaction (Connection: mysal. Host: fiminny-db-eu-prod.89 APP-1FP3 |/app/Jobs/Crm/Delete/DeleteCrmEntityTrait.php in Jiminny\Jobs\Crm\Delete\DeleteLeadJob::Jiminny\Jobs\Crm\Delete\(closure)BadMethodCallExcentioni1 Required parameter not passed: "refresh_token"Re App.1ENg |lann/Sorvicos/SocialAccountSorvico nhn in Jiminnv|Sorvicoe|SocialAccountSorvico«Jiminnv|Sorvicac\fclocurol• Jiminny\Exceptions\JobTimeoutException1 Joh timed out Jiminnv\ Iisteners\Activities\Crm\UndateCrmDataI Jann/Queue/Worker/Worker.nhn in Jiminnv Queue\ Worker) Worker«Jiminnv\Queue\ Worker\(closure)Illuminate\Queue\ MaxAttemptsExceededExceptionJiminny\Listeners\Activities\Crm\UpdateCrmData has been attempted too many times.f App-1902 |/app/Queue/Worker/Worker.oho in Jiminnv Queue Worker Worker-rocessTiminnyl Cvcontionel CoriolAccountTokoninvolidEvcantior1 Social account for HubSpot cannot be found. Please login to Jiminny to connect.APP-18V3/app/Services/Crm/BaseService.php in Jiminny Services\CrmBaseService:oltraralicarhashuntewiote•• 0Security patch review and testing guidanceRewew testtesetyrty ce enteary upechang-esimphse - 202re these safe?patch/minor bumps. Alert #463 (phpunit/phpunit) is listed under Skipped11:06 1Reading frontend design skill ›fixed alertssklpped alertsoreaking changesmerge verdietsate wi caveatFIXED - SAFF TO MERGEalertpackageseverityversion#457laravel/passportCVE-2026-39976 - 13.6.0 → 13.7.4high#434e 203050640- 4335 7 4.336 (ranaitive)highpatchhighoatchiCV6.2024-22025 ÷ CVE.2026-40104.2.0.40 ₴ 20.51#429patchevsnva%esottraneirivoSKIPPED -— ACTION REQUIRED SEPARATELYHAA2pnpunic/pnpunitNo CVE • 11.X → 12.x — major breaking bumphigh)major bumpRemoves iniSet(), setLocale(),getMockFor,getMockForTrait(),createTestmctflacel)keolv..CannotAhClaude ic Aland can make mistakes Plosce double-chock recnoncac)...
|
NULL
|
|
53923
|
1165
|
40
|
2026-04-20T08:33:14.713662+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673994713_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-2331312136567929026
|
-8177802336888754767
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|