You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2021/06/18 19:38:32 UTC
[airavata-django-portal] 15/20: AIRAVATA-3453 Handle user no longer
has access to GRP
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch airavata-3453
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit 6ed789a62f863c053cffe668524ddce86f434a79
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Thu May 13 16:31:35 2021 -0400
AIRAVATA-3453 Handle user no longer has access to GRP
---
.../js/web-components/ResourceSelectionEditor.vue | 23 ++++++++++++++--------
.../js/web-components/store.js | 19 +++++++++++++++---
2 files changed, 31 insertions(+), 11 deletions(-)
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ResourceSelectionEditor.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ResourceSelectionEditor.vue
index 5aea35a..1cf0426 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ResourceSelectionEditor.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ResourceSelectionEditor.vue
@@ -345,14 +345,20 @@ export default {
},
async loadData() {
if (this.groupResourceProfileId) {
- // TODO: handle user no longer has access to GRP
- await this.loadGroupResourceProfile();
- await this.loadApplicationDeployments();
- await this.loadAppDeploymentQueues();
- await this.applyGroupResourceProfile();
- // If existing values are no longer selectable, the userConfigurationData
- // may have changed
- this.emitValueChanged();
+ let groupResourceProfile = await this.loadGroupResourceProfile();
+ // handle user no longer has access to GRP
+ if (!groupResourceProfile) {
+ await this.initializeGroupResourceProfileId();
+ groupResourceProfile = await this.loadGroupResourceProfile();
+ }
+ if (groupResourceProfile) {
+ await this.loadApplicationDeployments();
+ await this.loadAppDeploymentQueues();
+ await this.applyGroupResourceProfile();
+ // If existing values are no longer selectable, the userConfigurationData
+ // may have changed
+ this.emitValueChanged();
+ }
} else {
await this.initializeGroupResourceProfileId();
if (this.groupResourceProfileId) {
@@ -367,6 +373,7 @@ export default {
this.groupResourceProfile = await getGroupResourceProfile(
this.groupResourceProfileId
);
+ return this.groupResourceProfile;
},
async getDefaultResourceHostId() {
const defaultComputeResourceId = await getDefaultComputeResourceId();
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/store.js b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/store.js
index dbf9818..5007bdf 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/store.js
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/store.js
@@ -70,9 +70,22 @@ export async function getGroupResourceProfiles() {
}
export async function getGroupResourceProfile(groupResourceProfileId) {
- return await services.GroupResourceProfileService.retrieve({
- lookup: groupResourceProfileId,
- });
+ return await services.GroupResourceProfileService.retrieve(
+ {
+ lookup: groupResourceProfileId,
+ },
+ { ignoreErrors: true }
+ )
+ .catch((error) => {
+ // Ignore unauthorized errors, force user to pick a different GroupResourceProfile
+ if (!errors.ErrorUtils.isUnauthorizedError(error)) {
+ return Promise.reject(error);
+ } else {
+ return Promise.resolve(null);
+ }
+ })
+ // Report all other error types
+ .catch(utils.FetchUtils.reportError);
}
export async function getApplicationDeployments(