|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
53844
|
1162
|
59
|
2026-04-20T08:30:36.830132+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673836830_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#
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#","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#","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"}]...
|
214677970165296243
|
-6014060602187374052
|
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#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53843
|
NULL
|
0
|
2026-04-20T08:30:36.039376+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673836039_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.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© CreateParticipantsServiceProvide(C) CrmServiceProvider.nhn© 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* Goronentu int nuu sion titie 1di• Aoronentu strinalnull Stwo facton reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* Oproperty 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% LzMOn 2U A0r 11:30.30Security 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 t ruinl itrully.What's missing trom your Jiminny Traits \HasApiTokens vs what the intertace requires:MethodIntertace requiresYour traitoauthAppsMorphManymissingtokens()HasManvmissinetokencant.olboolmissingcreateTokenoPorconalAccoccTokonPocultmissin?currentAccessTokeno?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/HasAp# 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 v...
|
NULL
|
4501999376720512670
|
NULL
|
click
|
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.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© CreateParticipantsServiceProvide(C) CrmServiceProvider.nhn© 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* Goronentu int nuu sion titie 1di• Aoronentu strinalnull Stwo facton reset code• Goronertu int Steam id• Gorobertu intlnull Sarounidi* Goronertu strinalnull Stimezone* Oproperty 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% LzMOn 2U A0r 11:30.30Security 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 t ruinl itrully.What's missing trom your Jiminny Traits \HasApiTokens vs what the intertace requires:MethodIntertace requiresYour traitoauthAppsMorphManymissingtokens()HasManvmissinetokencant.olboolmissingcreateTokenoPorconalAccoccTokonPocultmissin?currentAccessTokeno?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/HasAp# 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 v...
|
NULL
|
|
53842
|
1162
|
58
|
2026-04-20T08:30:35.928313+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673835928_m1.jpg...
|
iTerm2
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelpDOCKERDEV (docker)$82DEV (docker)APP (-zsh)*3-zsh* @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 SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;rootedocker_1 amp_1:/home/jiminny#' • A 7 1%щ 8 Mon 20 Apr 11:30:35.• *4screenpipe"**5 |DEV...
|
NULL
|
-5700034414136503021
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelpDOCKERDEV (docker)$82DEV (docker)APP (-zsh)*3-zsh* @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 SaccessToken): static;/*** Get the user provider name.*/public function getProviderName(): string;rootedocker_1 amp_1:/home/jiminny#' • A 7 1%щ 8 Mon 20 Apr 11:30:35.• *4screenpipe"**5 |DEV...
|
53839
|
|
53841
|
1163
|
66
|
2026-04-20T08:30:23.847585+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673823847_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.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@ CreateParticipantsServiceProvide(C) CrmServiceProvider.nhn© 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* Goronentu int nuu sion titie 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 weocam100% LzMon 20 A0r 11:30-23Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© User.php XC) Reportcontroller.pnp©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 t ruinl itrully.What's missing trom your Jiminny Traits \HasApiTokens vs what the intertace requires:MethodIntertace requiresYour traitoauthAppsMorphManymissingtokensoHasManvmissinetokencant.olboolmissingcreateTokenoPorconalAccoccTokonPocultmissinecurrentAccessTokeno?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.and Laravel\ Passport\ HasApiTokens isalso use d bv 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\HasApiTc J :,then oauthApps() , tokens() ,createToken.getProviderName. tokenCant.and currentAccessTokenareallReplv.…...CannotAh...
|
NULL
|
8814574400907534015
|
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.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@ CreateParticipantsServiceProvide(C) CrmServiceProvider.nhn© 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* Goronentu int nuu sion titie 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 weocam100% LzMon 20 A0r 11:30-23Security patch review and testing guidanceservice.pnpkouteservicerrovider.ong© Partner.php© User.php XC) Reportcontroller.pnp©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 t ruinl itrully.What's missing trom your Jiminny Traits \HasApiTokens vs what the intertace requires:MethodIntertace requiresYour traitoauthAppsMorphManymissingtokensoHasManvmissinetokencant.olboolmissingcreateTokenoPorconalAccoccTokonPocultmissinecurrentAccessTokeno?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.and Laravel\ Passport\ HasApiTokens isalso use d bv 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\HasApiTc J :,then oauthApps() , tokens() ,createToken.getProviderName. tokenCant.and currentAccessTokenareallReplv.…...CannotAh...
|
53840
|