nova-permissions icon indicating copy to clipboard operation
nova-permissions copied to clipboard

Replicating role does not replicate checked permissions

Open sanderbaas opened this issue 2 years ago • 2 comments

I am using version 1.3.1 on Nova 4.22.1.

When replicating a role, none of the permissions are checked.

sanderbaas avatar Jun 16 '23 11:06 sanderbaas

@sanderbaas @leandrogehlen

You can try adding custom resolver to your permissions field:


            Checkboxes::make(__('Permissions'), 'permissions')
                ->options($this->loadPermissions()->map(function ($permission) {
                    return [
                        'group' => $this->translatePermissions(ucfirst($permission->group)),
                        'option' => $permission->name,
                        'label' => $this->translatePermissions($permission->name),
                    ];
                })
                    ->groupBy('group')
                    ->toArray()
                )
                ->resolveUsing(function ($value) use ($request) {
                    if ($request->get('fromResourceId')) {
                        return \Sereny\NovaPermissions\Models\Role::find($request->get('fromResourceId'))->permissions->pluck('name')->toArray();
                    }

                    return $value->pluck('name')->toArray();
                }),

Rokasl avatar Mar 19 '24 13:03 Rokasl

Thanks for the suggestion.

Can you make a PR to solve this issue?

Please check if is there some more elegant way instead of $request->get('fromResourceId')

leandrogehlen avatar Mar 26 '24 10:03 leandrogehlen