Update to latest code (including Shield beta3) breaks add user functionality
dgvirtual opened this issue · comments
The latest update:
- Upgrading codeigniter4/shield (v1.0.0-beta.2 => v1.0.0-beta.3): Extracting archive
- Upgrading codeigniter4/framework (v4.2.7 => v4.2.10): Extracting archive
- Upgrading lonnieezell/bonfire (dev-develop 89c40fe => dev-develop d1fb7a0): Extracting archive
has broken the add user functionality... Right on opening
http://localhost:8080/admin/users/new
I get an error.
Here is the error in the log:
in VENDORPATH/codeigniter4/shield/src/Models/UserIdentityModel.php on line 81.
1 VENDORPATH/codeigniter4/shield/src/Models/UserIdentityModel.php(231): CodeIgniter\Shield\Models\UserIdentityModel->checkUserId(Object(Bonfire\Users\User))
2 VENDORPATH/codeigniter4/shield/src/Entities/User.php(81): CodeIgniter\Shield\Models\UserIdentityModel->getIdentities(Object(Bonfire\Users\User))
3 VENDORPATH/codeigniter4/shield/src/Entities/User.php(95): CodeIgniter\Shield\Entities\User->populateIdentities()
4 VENDORPATH/codeigniter4/shield/src/Entities/User.php(66): CodeIgniter\Shield\Entities\User->getIdentities('email_password')
5 VENDORPATH/codeigniter4/shield/src/Entities/User.php(134): CodeIgniter\Shield\Entities\User->getIdentity('email_password')
6 VENDORPATH/codeigniter4/shield/src/Entities/User.php(214): CodeIgniter\Shield\Entities\User->getEmailIdentity()
7 SYSTEMPATH/Entity/Entity.php(491): CodeIgniter\Shield\Entities\User->getEmail()
8 VENDORPATH/lonnieezell/bonfire/src/Users/User.php(26): CodeIgniter\Entity\Entity->__get('email')
9 VENDORPATH/lonnieezell/bonfire/src/Users/Views/form.php(39): Bonfire\Users\User->renderAvatar(140)
10 SYSTEMPATH/View/View.php(213): include('VENDORPATH/lonnieezell/bonfire/src/Users/Views/form.php')
11 SYSTEMPATH/View/View.php(216): CodeIgniter\View\View->CodeIgniter\View\{closure}()
12 VENDORPATH/lonnieezell/bonfire/src/View/Themeable.php(46): CodeIgniter\View\View->render('Bonfire\\Users\\Views\\form', null, true)
13 VENDORPATH/lonnieezell/bonfire/src/Users/Controllers/UserController.php(74): Bonfire\Core\BaseController->render('Bonfire\\Users\\Views\\form', [...])
14 SYSTEMPATH/CodeIgniter.php(927): Bonfire\Users\Controllers\UserController->create()
15 SYSTEMPATH/CodeIgniter.php(482): CodeIgniter\CodeIgniter->runController(Object(Bonfire\Users\Controllers\UserController))
16 SYSTEMPATH/CodeIgniter.php(351): CodeIgniter\CodeIgniter->handleRequest(null, Object(Config\Cache), false)
17 FCPATH/index.php(67): CodeIgniter\CodeIgniter->run()
18 SYSTEMPATH/Commands/Server/rewrite.php(46): require_once('FCPATH/index.php')
CRITICAL - 2022-12-03 05:47:39 --> "$user->id" is null. You should not use the incomplete User object.
in VENDORPATH/codeigniter4/shield/src/Models/UserIdentityModel.php on line 81.
1 VENDORPATH/codeigniter4/shield/src/Models/UserIdentityModel.php(231): CodeIgniter\Shield\Models\UserIdentityModel->checkUserId(Object(Bonfire\Users\User))
2 VENDORPATH/codeigniter4/shield/src/Entities/User.php(81): CodeIgniter\Shield\Models\UserIdentityModel->getIdentities(Object(Bonfire\Users\User))
3 VENDORPATH/codeigniter4/shield/src/Entities/User.php(95): CodeIgniter\Shield\Entities\User->populateIdentities()
4 VENDORPATH/codeigniter4/shield/src/Entities/User.php(66): CodeIgniter\Shield\Entities\User->getIdentities('email_password')
5 VENDORPATH/codeigniter4/shield/src/Entities/User.php(134): CodeIgniter\Shield\Entities\User->getIdentity('email_password')
6 VENDORPATH/codeigniter4/shield/src/Entities/User.php(214): CodeIgniter\Shield\Entities\User->getEmailIdentity()
7 SYSTEMPATH/Entity/Entity.php(491): CodeIgniter\Shield\Entities\User->getEmail()
8 VENDORPATH/lonnieezell/bonfire/src/Users/User.php(26): CodeIgniter\Entity\Entity->__get('email')
9 VENDORPATH/lonnieezell/bonfire/src/Users/Views/form.php(39): Bonfire\Users\User->renderAvatar(140)
10 SYSTEMPATH/View/View.php(213): include('VENDORPATH/lonnieezell/bonfire/src/Users/Views/form.php')
11 SYSTEMPATH/View/View.php(216): CodeIgniter\View\View->CodeIgniter\View\{closure}()
12 VENDORPATH/lonnieezell/bonfire/src/View/Themeable.php(46): CodeIgniter\View\View->render('Bonfire\\Users\\Views\\form', null, true)
13 VENDORPATH/lonnieezell/bonfire/src/Users/Controllers/UserController.php(74): Bonfire\Core\BaseController->render('Bonfire\\Users\\Views\\form', [...])
14 SYSTEMPATH/CodeIgniter.php(927): Bonfire\Users\Controllers\UserController->create()
15 SYSTEMPATH/CodeIgniter.php(482): CodeIgniter\CodeIgniter->runController(Object(Bonfire\Users\Controllers\UserController))
16 SYSTEMPATH/CodeIgniter.php(351): CodeIgniter\CodeIgniter->handleRequest(null, Object(Config\Cache), false)
17 FCPATH/index.php(67): CodeIgniter\CodeIgniter->run()
18 SYSTEMPATH/Commands/Server/rewrite.php(46): require_once('FCPATH/index.php')
I have traced the error to the offending line of code, it is line 39 in file
vendor/lonnieezell/bonfire/src/Users/Views/form.php :
<?= isset($user) ? $user->renderAvatar(140) : (new \Bonfire\Users\User())->renderAvatar(140) ?>
To be precise, – the last part of code (new \Bonfire\Users\User())->renderAvatar(140)
- if it is replaced with an empty string the error does not occur. But that still breaks functionality.
Unable to get the error with current code.