Skip to content

Conversation

@sediqzada94
Copy link
Contributor

πŸ†• Add Artisan Command to Assign Roles to Users

πŸ“Œ Description

This PR adds a new Artisan command permission:assign-role that simplifies the process of assigning roles to users via the CLI.


πŸ› οΈ Command Signature

php artisan permission:assign-role {name} {userId} {guard?} {userModelNamespace=App\Models\User}

@zigzagdev
Copy link

@sediqzada94

Hi ! πŸ‘‹

I'm not this repository maintainer but leave a note i noticed.

Since guard is defined as an optional argument here ({guard?}),
there’s a possibility that $guardName becomes null when not specified.
This may cause unexpected behavior in findOrCreate() as it would query for guard_name = null,
which can result in an incorrect role lookup or creation.

You might want to fallback to the default guard like this:

$guardName = $this->argument('guard') ?? config('auth.defaults.guard');

The config part here is just an example, and you should adjust it based on your application's specific requirements.

@parallels999
Copy link
Contributor

Also not taking into account the "Teams feature"

@drbyte
Copy link
Collaborator

drbyte commented Oct 27, 2025

While I'm not a fan of adding (and maintaining) a lot of artisan commands for this package, I'll accept this one. There hasn't been much discussion/demand for it, so that means people are using the create-role command or using tinker, or migrations, etc.
A future iteration of this command could add team support as well.

@drbyte drbyte merged commit 8c87966 into spatie:main Oct 27, 2025
43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants