-
Notifications
You must be signed in to change notification settings - Fork 143
Description
PHP Version
8.1
CodeIgniter4 Version
4.3.2
Shield Version
latest dev branch c561109
Which operating systems have you tested for this bug?
Linux
Which server did you use?
apache
Database
MySQL
Did you customize Shield?
No
What happened?
When you try to register via the default registration form, an error occurs:
CRITICAL - 2023-03-02 18:35:46 --> "$user->id" is null. You should not use the incomplete User object.
in /home/mydir/vendor/codeigniter4/shield/src/Models/UserIdentityModel.php on line 85.
1 /home/mydir/vendor/codeigniter4/shield/src/Models/UserIdentityModel.php(235): CodeIgniter\Shield\Models\UserIdentityModel->checkUserId(Object(CodeIgniter\Shield\Entities\User))
2 /home/mydir/vendor/codeigniter4/shield/src/Entities/User.php(87): CodeIgniter\Shield\Models\UserIdentityModel->getIdentities(Object(CodeIgniter\Shield\Entities\User))
3 /home/mydir/vendor/codeigniter4/shield/src/Entities/User.php(101): CodeIgniter\Shield\Entities\User->populateIdentities()
4 /home/mydir/vendor/codeigniter4/shield/src/Entities/User.php(72): CodeIgniter\Shield\Entities\User->getIdentities('email_password')
5 /home/mydir/vendor/codeigniter4/shield/src/Entities/User.php(140): CodeIgniter\Shield\Entities\User->getIdentity('email_password')
6 /home/mydir/vendor/codeigniter4/shield/src/Entities/User.php(220): CodeIgniter\Shield\Entities\User->getEmailIdentity()
7 SYSTEMPATH/Entity/Entity.php(493): CodeIgniter\Shield\Entities\User->getEmail()
8 /home/mydir/vendor/codeigniter4/shield/src/Authentication/Passwords/NothingPersonalValidator.php(58): CodeIgniter\Entity\Entity->__get('email')
9 /home/mydir/vendor/codeigniter4/shield/src/Authentication/Passwords/NothingPersonalValidator.php(27): CodeIgniter\Shield\Authentication\Passwords\NothingPersonalValidator->isNotPersonal('nh8tve37abhcfux', Object(CodeIgniter\Shield\Entities\User))
10 /home/mydir/vendor/codeigniter4/shield/src/Authentication/Passwords.php(103): CodeIgniter\Shield\Authentication\Passwords\NothingPersonalValidator->check('nh8tve37abhcfux', Object(CodeIgniter\Shield\Entities\User))
11 /home/mydir/vendor/codeigniter4/shield/src/Authentication/Passwords/ValidationRules.php(45): CodeIgniter\Shield\Authentication\Passwords->check('nH8tve37abHCfUX', Object(CodeIgniter\Shield\Entities\User))
12 SYSTEMPATH/Validation/Validation.php(311): CodeIgniter\Shield\Authentication\Passwords\ValidationRules->strong_password('nH8tve37abHCfUX', null)
13 SYSTEMPATH/Validation/Validation.php(170): CodeIgniter\Validation\Validation->processRules('password', 'Auth.password', 'nH*8tve37abHCfUX', [...], [...])
14 SYSTEMPATH/Controller.php(140): CodeIgniter\Validation\Validation->run()
15 /home/mydir/vendor/codeigniter4/shield/src/Controllers/RegisterController.php(102): CodeIgniter\Controller->validate([...])
16 SYSTEMPATH/CodeIgniter.php(934): CodeIgniter\Shield\Controllers\RegisterController->registerAction()
17 SYSTEMPATH/CodeIgniter.php(499): CodeIgniter\CodeIgniter->runController(Object(CodeIgniter\Shield\Controllers\RegisterController))
18 SYSTEMPATH/CodeIgniter.php(368): CodeIgniter\CodeIgniter->handleRequest(null, Object(Config\Cache), false)
19 FCPATH/index.php(67): CodeIgniter\CodeIgniter->run()
Steps to Reproduce
- Comment out email from $validFields array in Config/Auth.php
- Keep/Add NothingPersonalValidator to $passwordValidators in the same file
- Try to register as a new user
Expected Output
The registration to be completed successfully.
Anything else?
No response