Skip to content

Commit

Permalink
Laravel - improved compatibility when resolving authenticated user.
Browse files Browse the repository at this point in the history
  • Loading branch information
itsgoingd committed Oct 24, 2022
1 parent 8ceb382 commit 9dc2685
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions Clockwork/DataSource/LaravelDataSource.php
Original file line number Diff line number Diff line change
Expand Up @@ -201,15 +201,23 @@ protected function resolveAuthenticatedUser(Request $request)
if (! isset($this->app['auth'])) return;
if (! ($user = $this->app['auth']->user())) return;

// retrieve attributes in this awkward way to make sure we don't trigger exceptions with Eloquent strict mode on
$keyName = $user->getKeyName();
$user = $user->getAttributes();

if (! isset($user['email']) || ! isset($user[$keyName])) return;
if ($user instanceof \Illuminate\Database\Eloquent\Model) {
// retrieve attributes in this awkward way to make sure we don't trigger exceptions with Eloquent strict mode on
$keyName = method_exists($user, 'getAuthIdentifierName') ? $user->getAuthIdentifierName() : $user->getKeyName();
$user = $user->getAttributes();

$userId = isset($user[$keyName]) ? $user[$keyName] : null;
$userEmail = isset($user['email']) ? $user['email'] : $userId;
$userName = isset($user['name']) ? $user['name'] : null;
} else {
$userId = $user->getAuthIdentifier();
$userEmail = isset($user->email) ? $user->email : $userId;
$userName = isset($user->name) ? $user->name : null;
}

$request->setAuthenticatedUser($user['email'], $user[$keyName], [
'email' => $user['email'],
'name' => isset($user['name']) ? $user['name'] : null
$request->setAuthenticatedUser($userEmail, $userId, [
'email' => $userEmail,
'name' => $userName
]);
}
}

0 comments on commit 9dc2685

Please sign in to comment.