Closed VTumanov closed 6 years ago
Hello, I think you should propose this feature request to spatie/laravel-permission, if they will add this, we will definitely include it in this library.
Without extending the package, you could add a layer that uses the __()
translation helper.
@drbyte in some projects I also create a display_name column in permissions and roles tables for such purposes. If Spatie will add it, it would be awesome
It's being considered for v3, but nothing confirmed yet.
May be create own table for this and add hasOne relation? Or make your own migration for spatie permissions table, with adding title column. I think we can long wait for Spatie, if they coding v3. This title needed only in Nova, not in other project code, so it not require "native support" from Spatie.
I have a solution for now.
In \Vyuldashev\NovaPermission\Permission
we add displayUsing
call with callback which will return translation:
Text::make(__('nova-permission-tool::permissions.name'), 'name')
// ...
->displayUsing(function ($value) {
return __('nova-permission-tool::permissions.names.' . $value);
}),
In project's resources/lang/vendor/nova-permission-tool/en/permissions.php
we add for example:
<?php
return [
'name' => 'Name',
'guard_name' => 'Guard Name',
'created_at' => 'Created at',
'updated_at' => 'Updated at',
'names' => [
'users-create' => 'Create Users',
],
];
Which will lead to this:
The same implementation can be applied for roles. If Spatie adds translatable option for permission and role names we will switch to it.
Waiting for feedback from @drbyte and @VTumanov.
I think it well be more useful if use two different columns. One for Users, second for Developers, they can check permissions keys with this page.
We can make a computed field then.
Then it looks great! Thanks Bro!
@VTumanov
Just tagged v1.2.0. Check it out. You need to create in resources/lang/vendor/nova-permission-tool/en/permissions.php
display_names
array where key stands for permission name and value for display value. It wont show Display Name
column until there is at least one value.
Today i use this future, all good and work!
For other coders: in lang file you need use display_names
instead names
like in upper example
I think it well be more useful if use two different columns. One for Users, second for Developers, they can check permissions keys with this page.
The existing name
field should be the one used "by developers", since it's the one closed to "your app code". If you need to display it differently for "users"/whatever, you can either use the translation functions or add a separate field to the db and manage that field in your own app.
Thanks, good nova module!
I see one trouble with it. If i want give readable names for permissions, i have long names in my code. And If i want give short names for better code - swears editor, because he not understand some things. Situation is aggravated when the Manager does not know english permissions names.
Maybe add a column "title" to display in the interface and a column "name" to use in the code?