fix(notifications): add manage-notifications permission to podcast

This commit is contained in:
Yassine Doghri 2022-11-03 16:34:57 +00:00
parent 82310a2e0b
commit ed7c247bcb
4 changed files with 11 additions and 7 deletions

View File

@ -49,12 +49,12 @@ coupled with custom rules. Roles and permissions are defined at two levels:
<!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section --> <!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
| role | description | permissions | | role | description | permissions |
| ------ | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------ | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Admin | Has complete control of podcast #{id}. | \* | | Admin | Has complete control of podcast #{id}. | \* |
| Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | | Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments, episodes.manage-notifications |
| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | | Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips |
| Guest | General contributor of the podcast #{id}. | view, episodes.view | | Guest | General contributor of the podcast #{id}. | view, episodes.view |
<!-- AUTH-PODCAST-ROLES-LIST:END --> <!-- AUTH-PODCAST-ROLES-LIST:END -->
@ -73,6 +73,7 @@ coupled with custom rules. Roles and permissions are defined at two levels:
| manage-contributors | Can manage contributors of podcast #{id}. | | manage-contributors | Can manage contributors of podcast #{id}. |
| manage-platforms | Can set/remove platform links of podcast #{id}. | | manage-platforms | Can set/remove platform links of podcast #{id}. |
| manage-publications | Can publish podcast #{id}. | | manage-publications | Can publish podcast #{id}. |
| manage-notifications | Can view and mark notifications as read for podcast #{id}. |
| interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. | | interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. |
| episodes.view | Can view dashboard and analytics of podcast #{id}. | | episodes.view | Can view dashboard and analytics of podcast #{id}. |
| episodes.create | Can create episodes for podcast #{id}. | | episodes.create | Can create episodes for podcast #{id}. |

View File

@ -579,7 +579,7 @@ $routes->group(
$routes->group('notifications', static function ($routes): void { $routes->group('notifications', static function ($routes): void {
$routes->get('/', 'NotificationController::list/$1', [ $routes->get('/', 'NotificationController::list/$1', [
'as' => 'notification-list', 'as' => 'notification-list',
'filter' => 'permission:podcast#.view', 'filter' => 'permission:podcast#.manage-notifications',
]); ]);
$routes->get('(:num)/mark-as-read', 'NotificationController::markAsRead/$1/$2', [ $routes->get('(:num)/mark-as-read', 'NotificationController::markAsRead/$1/$2', [
'as' => 'notification-mark-as-read', 'as' => 'notification-mark-as-read',

View File

@ -150,6 +150,7 @@ class AuthGroups extends ShieldAuthGroups
'manage-contributors', 'manage-contributors',
'manage-platforms', 'manage-platforms',
'manage-publications', 'manage-publications',
'manage-notifications',
'interact-as', 'interact-as',
'episodes.view', 'episodes.view',
'episodes.create', 'episodes.create',
@ -182,6 +183,7 @@ class AuthGroups extends ShieldAuthGroups
'episodes.manage-clips', 'episodes.manage-clips',
'episodes.manage-publications', 'episodes.manage-publications',
'episodes.manage-comments', 'episodes.manage-comments',
'episodes.manage-notifications',
], ],
'author' => [ 'author' => [
'view', 'view',

View File

@ -70,6 +70,7 @@ return [
'manage-contributors' => 'Can manage contributors of podcast #{id}.', 'manage-contributors' => 'Can manage contributors of podcast #{id}.',
'manage-platforms' => 'Can set/remove platform links of podcast #{id}.', 'manage-platforms' => 'Can set/remove platform links of podcast #{id}.',
'manage-publications' => 'Can publish podcast #{id}.', 'manage-publications' => 'Can publish podcast #{id}.',
'manage-notifications' => 'Can view and mark notifications as read for podcast #{id}.',
'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.', 'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.',
'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.', 'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.',
'episodes.create' => 'Can create episodes for podcast #{id}.', 'episodes.create' => 'Can create episodes for podcast #{id}.',