1212use CodeIgniter \Shield \Entities \AccessToken ;
1313use CodeIgniter \Shield \Entities \User ;
1414use CodeIgniter \Shield \Entities \UserIdentity ;
15+ use CodeIgniter \Shield \Exceptions \LogicException ;
1516use Faker \Generator ;
1617
1718class 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