From 72c19c55e954286ff8d4b200e925be3ab64964f2 Mon Sep 17 00:00:00 2001 From: Garrett Stevens Date: Mon, 17 Mar 2025 23:17:26 +0000 Subject: [PATCH 1/3] Fix: see/add users in the UI when no organism --- grails-app/services/org/bbop/apollo/PermissionService.groovy | 2 +- grails-app/services/org/bbop/apollo/PreferenceService.groovy | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/grails-app/services/org/bbop/apollo/PermissionService.groovy b/grails-app/services/org/bbop/apollo/PermissionService.groovy index a53a80b870..ac93995901 100644 --- a/grails-app/services/org/bbop/apollo/PermissionService.groovy +++ b/grails-app/services/org/bbop/apollo/PermissionService.groovy @@ -624,7 +624,7 @@ class PermissionService { organism = organism ?: preferenceService.getCurrentOrganismPreferenceInDB(clientToken)?.organism } // don't set the preferences if it is coming off a script - if (clientToken != FeatureStringEnum.IGNORE.value) { + if (clientToken != FeatureStringEnum.IGNORE.value && organism) { preferenceService.setCurrentOrganism(getCurrentUser(), organism, clientToken) } if(organism){ diff --git a/grails-app/services/org/bbop/apollo/PreferenceService.groovy b/grails-app/services/org/bbop/apollo/PreferenceService.groovy index cf5678a92e..0c991d6e27 100644 --- a/grails-app/services/org/bbop/apollo/PreferenceService.groovy +++ b/grails-app/services/org/bbop/apollo/PreferenceService.groovy @@ -700,7 +700,8 @@ class PreferenceService { organism = Organism.first() } if (!organism) { - throw new PermissionException("User does not have permission for any organisms.") + log.warn("Not able to get organism preference") + return null } // sequence = sequence ?: Sequence.findByOrganism(organism, [sort: "end", order: "desc", max: 1]) From 897c7c6c0f90208857315938db42b13fd0814cfd Mon Sep 17 00:00:00 2001 From: Garrett Stevens Date: Fri, 18 Apr 2025 18:12:46 +0000 Subject: [PATCH 2/3] Fix stuck at first loading with no organisms --- .../controllers/org/bbop/apollo/UserController.groovy | 8 +++++--- .../services/org/bbop/apollo/PreferenceService.groovy | 6 +++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/grails-app/controllers/org/bbop/apollo/UserController.groovy b/grails-app/controllers/org/bbop/apollo/UserController.groovy index fb4006b728..e9c5ab5179 100644 --- a/grails-app/controllers/org/bbop/apollo/UserController.groovy +++ b/grails-app/controllers/org/bbop/apollo/UserController.groovy @@ -295,9 +295,11 @@ class UserController { UserOrganismPreference uop = preferenceService.getCurrentOrganismPreferenceInDB(dataObject.getString(FeatureStringEnum.CLIENT_TOKEN.value)) - uop.nativeTrackList = dataObject.get("tracklist") - uop.save(flush: true) - log.info "Added userOrganismPreference ${uop.nativeTrackList}" + if (uop){ + uop.nativeTrackList = dataObject.get("tracklist") + uop.save(flush: true) + log.info "Added userOrganismPreference ${uop.nativeTrackList}" + } render new JSONObject() as JSON } catch (Exception e) { diff --git a/grails-app/services/org/bbop/apollo/PreferenceService.groovy b/grails-app/services/org/bbop/apollo/PreferenceService.groovy index 0c991d6e27..758a350992 100644 --- a/grails-app/services/org/bbop/apollo/PreferenceService.groovy +++ b/grails-app/services/org/bbop/apollo/PreferenceService.groovy @@ -617,7 +617,11 @@ class PreferenceService { UserOrganismPreferenceDTO preference = getSessionPreference(clientToken) preference = preference ?: getSavingPreferences(user, sequenceName, clientToken) log.debug "found in-memory preference: ${preference ? preference as JSON : null}" - return preference ?: getDTOFromPreference(getCurrentOrganismPreferenceInDB(user, sequenceName, clientToken)) + UserOrganismPreference pref = getCurrentOrganismPreferenceInDB(user, sequenceName, clientToken) + if (pref) { + return getDTOFromPreference(pref) + } + return preference } def getSavingPreferences(User user, String sequenceName, String clientToken) { From e0c1f6cef2f00636b1283a81c34c5467bef570ab Mon Sep 17 00:00:00 2001 From: Garrett Stevens Date: Fri, 18 Apr 2025 18:14:29 +0000 Subject: [PATCH 3/3] Don't use retired ubuntu image on CI --- .github/workflows/python-apollo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-apollo.yml b/.github/workflows/python-apollo.yml index c33a4c9106..cec91ab74c 100644 --- a/.github/workflows/python-apollo.yml +++ b/.github/workflows/python-apollo.yml @@ -6,7 +6,7 @@ jobs: test-python-apollo: name: test-python-apollo - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: matrix: python-version: [3.9]