Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assigning admin role to first user 1 using console creates Type Error: c:\>yii 'user/assignRole' admin 1 #433

Closed
rossaddison opened this issue Jan 26, 2022 · 3 comments
Labels

Comments

@rossaddison
Copy link
Contributor

rossaddison commented Jan 26, 2022

What steps will reproduce the problem?

Console command: C:>wamp64\www\yii-demo>yii assignRole admin 1

What is the expected result?

To be able to edit a Post.

What do you get instead?

TypeError: Yiisoft\Rbac\Assignment::__construct(): Argument #1 ($userId) must be of type string, int given, called in C:\wamp64\www\demo\vendor\yiisoft\rbac-php\src\AssignmentsStorage.php on line 131 and defined in C:\wamp64\www\demo\vendor\yiisoft\rbac\src\Assignment.php:32
Stack trace:
#0 C:\wamp64\www\demo\vendor\yiisoft\rbac-php\src\AssignmentsStorage.php(131): Yiisoft\Rbac\Assignment->__construct(1, 'admin', 1643129043)
#1 C:\wamp64\www\demo\vendor\yiisoft\rbac-php\src\AssignmentsStorage.php(43): Yiisoft\Rbac\Php\AssignmentsStorage->loadAssignments()
#2 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ArrayDefinition.php(148): Yiisoft\Rbac\Php\AssignmentsStorage->__construct('C:\wamp64\www\d...', 'assignments.php')
#3 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(538): Yiisoft\Definitions\ArrayDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#4 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(503): Yiisoft\Di\Container->buildInternal('Yiisoft\Rbac\As...')
#5 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(153): Yiisoft\Di\Container->build('Yiisoft\Rbac\As...')
#6 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(79): Yiisoft\Di\Container->get('Yiisoft\Rbac\As...')
#7 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(59): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->getInstance('Yiisoft\Rbac\As...')
#8 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ParameterDefinition.php(84): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->get('Yiisoft\Rbac\As...')
#9 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(66): Yiisoft\Definitions\ParameterDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#10 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(46): Yiisoft\Definitions\Helpers\DefinitionResolver::resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Object(Yiisoft\Definitions\ParameterDefinition))
#11 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ArrayDefinition.php(145): Yiisoft\Definitions\Helpers\DefinitionResolver::resolveArray(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Array)
#12 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(538): Yiisoft\Definitions\ArrayDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#13 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(503): Yiisoft\Di\Container->buildInternal('Yiisoft\Rbac\Ma...')
#14 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(153): Yiisoft\Di\Container->build('Yiisoft\Rbac\Ma...')
#15 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(79): Yiisoft\Di\Container->get('Yiisoft\Rbac\Ma...')
#16 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(59): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->getInstance('Yiisoft\Rbac\Ma...')
#17 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Reference.php(52): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->get('Yiisoft\Rbac\Ma...')
#18 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(538): Yiisoft\Definitions\Reference->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#19 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(503): Yiisoft\Di\Container->buildInternal('Yiisoft\Access\...')
#20 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(153): Yiisoft\Di\Container->build('Yiisoft\Access\...')
#21 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(79): Yiisoft\Di\Container->get('Yiisoft\Access\...')
#22 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(59): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->getInstance('Yiisoft\Access\...')
#23 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Reference.php(52): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->get('Yiisoft\Access\...')
#24 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(66): Yiisoft\Definitions\Reference->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#25 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(46): Yiisoft\Definitions\Helpers\DefinitionResolver::resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Object(Yiisoft\Definitions\Reference))
#26 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(69): Yiisoft\Definitions\Helpers\DefinitionResolver::resolveArray(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Array)
#27 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ArrayDefinition.php(154): Yiisoft\Definitions\Helpers\DefinitionResolver::resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Array)
#28 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(538): Yiisoft\Definitions\ArrayDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#29 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(503): Yiisoft\Di\Container->buildInternal('Yiisoft\User\Cu...')
#30 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(153): Yiisoft\Di\Container->build('Yiisoft\User\Cu...')
#31 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(79): Yiisoft\Di\Container->get('Yiisoft\User\Cu...')
#32 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(59): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->getInstance('Yiisoft\User\Cu...')
#33 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ParameterDefinition.php(84): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->get('Yiisoft\User\Cu...')
#34 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(66): Yiisoft\Definitions\ParameterDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#35 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(46): Yiisoft\Definitions\Helpers\DefinitionResolver::resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Object(Yiisoft\Definitions\ParameterDefinition))
#36 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ArrayDefinition.php(145): Yiisoft\Definitions\Helpers\DefinitionResolver::resolveArray(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Array)
#37 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(538): Yiisoft\Definitions\ArrayDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#38 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(503): Yiisoft\Di\Container->buildInternal('App\ViewInjecti...')
#39 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(153): Yiisoft\Di\Container->build('App\ViewInjecti...')
#40 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(79): Yiisoft\Di\Container->get('App\ViewInjecti...')
#41 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(59): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->getInstance('App\ViewInjecti...')
#42 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Reference.php(52): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->get('App\ViewInjecti...')
#43 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(66): Yiisoft\Definitions\Reference->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#44 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(46): Yiisoft\Definitions\Helpers\DefinitionResolver::resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Object(Yiisoft\Definitions\Reference))
#45 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(69): Yiisoft\Definitions\Helpers\DefinitionResolver::resolveArray(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Array)
#46 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(46): Yiisoft\Definitions\Helpers\DefinitionResolver::resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Array)
#47 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ArrayDefinition.php(145): Yiisoft\Definitions\Helpers\DefinitionResolver::resolveArray(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Array)
#48 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(538): Yiisoft\Definitions\ArrayDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#49 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(503): Yiisoft\Di\Container->buildInternal('Yiisoft\Yii\Vie...')
#50 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(153): Yiisoft\Di\Container->build('Yiisoft\Yii\Vie...')
#51 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(79): Yiisoft\Di\Container->get('Yiisoft\Yii\Vie...')
#52 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(59): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->getInstance('Yiisoft\Yii\Vie...')
#53 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ParameterDefinition.php(84): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->get('Yiisoft\Yii\Vie...')
#54 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(66): Yiisoft\Definitions\ParameterDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#55 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(46): Yiisoft\Definitions\Helpers\DefinitionResolver::resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Object(Yiisoft\Definitions\ParameterDefinition))
#56 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ArrayDefinition.php(145): Yiisoft\Definitions\Helpers\DefinitionResolver::resolveArray(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Array)
#57 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(538): Yiisoft\Definitions\ArrayDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#58 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(503): Yiisoft\Di\Container->buildInternal('App\Handler\Not...')
#59 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(153): Yiisoft\Di\Container->build('App\Handler\Not...')
#60 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(79): Yiisoft\Di\Container->get('App\Handler\Not...')
#61 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(59): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->getInstance('App\Handler\Not...')
#62 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Reference.php(52): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->get('App\Handler\Not...')
#63 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(66): Yiisoft\Definitions\Reference->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#64 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\Helpers\DefinitionResolver.php(46): Yiisoft\Definitions\Helpers\DefinitionResolver::resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Object(Yiisoft\Definitions\Reference))
#65 C:\wamp64\www\demo\vendor\yiisoft\definitions\src\ArrayDefinition.php(145): Yiisoft\Definitions\Helpers\DefinitionResolver::resolveArray(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy), NULL, Array)
#66 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(538): Yiisoft\Definitions\ArrayDefinition->resolve(Object(Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy))
#67 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(503): Yiisoft\Di\Container->buildInternal('Yiisoft\Yii\Htt...')
#68 C:\wamp64\www\demo\vendor\yiisoft\di\src\Container.php(153): Yiisoft\Di\Container->build('Yiisoft\Yii\Htt...')
#69 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(79): Yiisoft\Di\Container->get('Yiisoft\Yii\Htt...')
#70 C:\wamp64\www\demo\vendor\yiisoft\yii-debug\src\Proxy\ContainerInterfaceProxy.php(59): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->getInstance('Yiisoft\Yii\Htt...')
#71 C:\wamp64\www\demo\vendor\yiisoft\yii-runner-http\src\HttpApplicationRunner.php(92): Yiisoft\Yii\Debug\Proxy\ContainerInterfaceProxy->get('Yiisoft\Yii\Htt...')
#72 C:\wamp64\www\demo\public\index.php(35): Yiisoft\Yii\Runner\Http\HttpApplicationRunner->run()
#73 {main}

Additional info

Q A
Version 1.0.?
PHP version 8.0.13
Operating system Windows 10
@rossaddison
Copy link
Contributor Author

rossaddison commented Jan 26, 2022

Removing the ...resources/rbac/assignments.php file allows access to the demo but does not implement userService rbac.
Substituting 'admin' over the integer 1 in the return array allows access to the demo but does not implement userService rbac.

@vjik
Copy link
Member

vjik commented Jan 26, 2022

This is bug yiisoft/rbac-php#38

@vjik vjik added the type:bug Bug label Jan 26, 2022
@rossaddison
Copy link
Contributor Author

rossaddison commented Jan 26, 2022

Temporary Workaround that I am using:
C:\wamp64\www\yii-demo\vendor\yiisoft\rbac\src\Assignment.php

namespace Yiisoft\Rbac;

/**
 * `Assignment` represents an assignment of a role or a permission to a user.
 */
final class Assignment
{

public function __construct($userId, string $itemName, int $createdAt)
    {
        $this->userId = (string)$userId;

@rossaddison rossaddison changed the title Assigning admin role to first user 1 using console creates Type Error: c:\>'user/assignRole' admin 1 Assigning admin role to first user 1 using console creates Type Error: c:\>yii 'user/assignRole' admin 1 Jan 27, 2022
@samdark samdark closed this as completed Jan 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants