From 03e06a22a4c895eb9f55338aacbdba479297f234 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 24 Aug 2021 16:47:33 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20messages=20for=20i?= =?UTF-8?q?nsufficient=20permissions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/addon/abilities/collection.js | 3 +- addons/core/translations/en-us.yaml | 2 ++ .../app/routes/scopes/scope/users/index.js | 2 -- ui/admin/app/templates/scopes/scope.hbs | 2 +- .../templates/scopes/scope/users/index.hbs | 30 ++++++++++--------- 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/addons/api/addon/abilities/collection.js b/addons/api/addon/abilities/collection.js index ad52afd18..92f0e4342 100644 --- a/addons/api/addon/abilities/collection.js +++ b/addons/api/addon/abilities/collection.js @@ -29,7 +29,8 @@ export default class CollectionAbility extends Ability { * @return {boolean} */ hasAuthorizedCollectionAction(action) { - const { authorized_collection_actions } = this.model; + const authorized_collection_actions = + (this.model || {}).authorized_collection_actions || {}; const collection = this.collection || {}; return authorized_collection_actions[collection]?.includes(action); } diff --git a/addons/core/translations/en-us.yaml b/addons/core/translations/en-us.yaml index 5370c7e75..8f98f633c 100644 --- a/addons/core/translations/en-us.yaml +++ b/addons/core/translations/en-us.yaml @@ -32,6 +32,8 @@ titles: descriptions: empty-set: There are no items to display yet. You may be able to add items or try back later. origin-initialization: To get started, please enter your origin URL + create-but-not-list: You do not have permission to list {resource}, but you can create new instances. + neither-list-nor-create: You do not have permission to list or create {resource}. questions: delete-confirm: Are you sure you want to delete this resource? remove-confirm: Are you sure you want to remove this association? diff --git a/ui/admin/app/routes/scopes/scope/users/index.js b/ui/admin/app/routes/scopes/scope/users/index.js index 8d3bc89c6..2e92b693d 100644 --- a/ui/admin/app/routes/scopes/scope/users/index.js +++ b/ui/admin/app/routes/scopes/scope/users/index.js @@ -1,7 +1,6 @@ import Route from '@ember/routing/route'; export default class ScopesScopeUsersIndexRoute extends Route { - // =methods setupController(controller) { @@ -9,5 +8,4 @@ export default class ScopesScopeUsersIndexRoute extends Route { super.setupController(...arguments); controller.setProperties({ scope }); } - } diff --git a/ui/admin/app/templates/scopes/scope.hbs b/ui/admin/app/templates/scopes/scope.hbs index 825be5d14..fd20ca2a2 100644 --- a/ui/admin/app/templates/scopes/scope.hbs +++ b/ui/admin/app/templates/scopes/scope.hbs @@ -142,4 +142,4 @@ - + \ No newline at end of file diff --git a/ui/admin/app/templates/scopes/scope/users/index.hbs b/ui/admin/app/templates/scopes/scope/users/index.hbs index 61d80197b..ef9ef91b3 100644 --- a/ui/admin/app/templates/scopes/scope/users/index.hbs +++ b/ui/admin/app/templates/scopes/scope/users/index.hbs @@ -70,19 +70,21 @@ as |message| > - {{t 'resources.user.description'}} - {{#if (can 'create collection' this.scope collection='users')}} - {{#unless (can 'list collection' this.scope collection='users')}} -
-
- - Oh noes! Resources you create won't appear here because you - have create permission, but not list. - - {{/unless}} + {{#if (can 'list collection' this.scope collection='users')}} + {{! can list (at least): show default welcome message}} + {{t 'resources.user.description'}} + {{else if (can 'create collection' this.scope collection='users')}} + {{! can create (only): show create-but-not-list welcome message}} + {{t + 'descriptions.create-but-not-list' + resource=(t 'resources.user.title_plural') + }} + {{else}} + {{! can neither list nor create }} + {{t + 'descriptions.neither-list-nor-create' + resource=(t 'resources.user.title_plural') + }} {{/if}}
{{#if (can 'create collection' this.scope collection='users')}} @@ -98,4 +100,4 @@ - + \ No newline at end of file