Skip to content

Commit 0a7a40e

Browse files
committed
fix: improve error message
1 parent 2ac8667 commit 0a7a40e

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

src/Models/UserIdentityModel.php

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use CodeIgniter\Shield\Entities\AccessToken;
1313
use CodeIgniter\Shield\Entities\User;
1414
use CodeIgniter\Shield\Entities\UserIdentity;
15+
use CodeIgniter\Shield\Exceptions\LogicException;
1516
use Faker\Generator;
1617

1718
class UserIdentityModel extends Model
@@ -59,7 +60,7 @@ public function create($data): void
5960
*/
6061
public function createEmailIdentity(User $user, array $credentials): void
6162
{
62-
assert($user->id !== null, '"$user->id" must not be null.');
63+
$this->checkUserId($user);
6364

6465
/** @var Passwords $passwords */
6566
$passwords = service('passwords');
@@ -74,6 +75,15 @@ public function createEmailIdentity(User $user, array $credentials): void
7475
$this->checkQueryReturn($return);
7576
}
7677

78+
private function checkUserId(User $user): void
79+
{
80+
if ($user->id === null) {
81+
throw new LogicException(
82+
'"$user->id" is null. You should not use the incomplete User object.'
83+
);
84+
}
85+
}
86+
7787
/**
7888
* Create an identity with 6 digits code for auth action
7989
*
@@ -87,7 +97,7 @@ public function createCodeIdentity(
8797
array $data,
8898
callable $codeGenerator
8999
): string {
90-
assert($user->id !== null, '"$user->id" must not be null.');
100+
$this->checkUserId($user);
91101

92102
helper('text');
93103

@@ -122,7 +132,7 @@ public function createCodeIdentity(
122132
*/
123133
public function generateAccessToken(User $user, string $name, array $scopes = ['*']): AccessToken
124134
{
125-
assert($user->id !== null, '"$user->id" must not be null.');
135+
$this->checkUserId($user);
126136

127137
helper('text');
128138

@@ -157,7 +167,7 @@ public function getAccessTokenByRawToken(string $rawToken): ?AccessToken
157167

158168
public function getAccessToken(User $user, string $rawToken): ?AccessToken
159169
{
160-
assert($user->id !== null, '"$user->id" must not be null.');
170+
$this->checkUserId($user);
161171

162172
return $this->where('user_id', $user->id)
163173
->where('type', AccessTokens::ID_TYPE_ACCESS_TOKEN)
@@ -173,7 +183,7 @@ public function getAccessToken(User $user, string $rawToken): ?AccessToken
173183
*/
174184
public function getAccessTokenById($id, User $user): ?AccessToken
175185
{
176-
assert($user->id !== null, '"$user->id" must not be null.');
186+
$this->checkUserId($user);
177187

178188
return $this->where('user_id', $user->id)
179189
->where('type', AccessTokens::ID_TYPE_ACCESS_TOKEN)
@@ -187,7 +197,7 @@ public function getAccessTokenById($id, User $user): ?AccessToken
187197
*/
188198
public function getAllAccessTokens(User $user): array
189199
{
190-
assert($user->id !== null, '"$user->id" must not be null.');
200+
$this->checkUserId($user);
191201

192202
return $this
193203
->where('user_id', $user->id)
@@ -218,7 +228,7 @@ public function getIdentityBySecret(string $type, ?string $secret): ?UserIdentit
218228
*/
219229
public function getIdentities(User $user): array
220230
{
221-
assert($user->id !== null, '"$user->id" must not be null.');
231+
$this->checkUserId($user);
222232

223233
return $this->where('user_id', $user->id)->orderBy($this->primaryKey)->findAll();
224234
}
@@ -238,7 +248,7 @@ public function getIdentitiesByUserIds(array $userIds): array
238248
*/
239249
public function getIdentityByType(User $user, string $type): ?UserIdentity
240250
{
241-
assert($user->id !== null, '"$user->id" must not be null.');
251+
$this->checkUserId($user);
242252

243253
return $this->where('user_id', $user->id)
244254
->where('type', $type)
@@ -255,7 +265,7 @@ public function getIdentityByType(User $user, string $type): ?UserIdentity
255265
*/
256266
public function getIdentitiesByTypes(User $user, array $types): array
257267
{
258-
assert($user->id !== null, '"$user->id" must not be null.');
268+
$this->checkUserId($user);
259269

260270
if ($types === []) {
261271
return [];
@@ -281,7 +291,7 @@ public function touchIdentity(UserIdentity $identity): void
281291

282292
public function deleteIdentitiesByType(User $user, string $type): void
283293
{
284-
assert($user->id !== null, '"$user->id" must not be null.');
294+
$this->checkUserId($user);
285295

286296
$return = $this->where('user_id', $user->id)
287297
->where('type', $type)
@@ -295,7 +305,7 @@ public function deleteIdentitiesByType(User $user, string $type): void
295305
*/
296306
public function revokeAccessToken(User $user, string $rawToken): void
297307
{
298-
assert($user->id !== null, '"$user->id" must not be null.');
308+
$this->checkUserId($user);
299309

300310
$return = $this->where('user_id', $user->id)
301311
->where('type', AccessTokens::ID_TYPE_ACCESS_TOKEN)
@@ -310,7 +320,7 @@ public function revokeAccessToken(User $user, string $rawToken): void
310320
*/
311321
public function revokeAllAccessTokens(User $user): void
312322
{
313-
assert($user->id !== null, '"$user->id" must not be null.');
323+
$this->checkUserId($user);
314324

315325
$return = $this->where('user_id', $user->id)
316326
->where('type', AccessTokens::ID_TYPE_ACCESS_TOKEN)

0 commit comments

Comments
 (0)