kiritokatklian/nova-permission

[bug] [V3] Not working in Multi-tenant environment

Opened this issue · 1 comments

I have a Multi-tenant environment based upon https://tenancyforlaravel.com/saas-boilerplate/ and https://github.com/archtechx/tenancy

In order to make sure that it is clear that tables live in the Central or Tenant "domain" I have to prefix all Central-related tables.
This causes the Validator to guess the wrong connection, because of the prefix.
In order to combat this, we can either pass the class name to the Validator, so the getConnectionName function is called on the model, which does return the right connection name.

Permissions.php

            Text::make(__('nova-permission-tool::permissions.name'), 'name')
                ->rules(['required', 'string', 'max:255'])
                ->creationRules('unique:'.config('permission.models.permission'))
                ->updateRules('unique:'.config('permission.models.permission').',name,{{resourceId}}'),

and Roles,php

            Text::make(__('nova-permission-tool::roles.name'), 'name')
                ->rules(['required', 'string', 'max:255'])
                ->creationRules('unique:'.config('permission.models.role'))
                ->updateRules('unique:'.config('permission.models.role').',name,{{resourceId}}'),

This fixes the problem (at least for me) 😄

PHP 8.1.5
Laravel Framework 9.10.1
Laravel Nova v3.32.0
kiritokatklian/nova-permission v3.2.2

@mathijsqdrop I see. I don't use Tenancy and I don't think I'll be able to setup a test environment to test this anytime soon. Could you please open a PR with the solution that worked for you?