diff --git a/.github/workflows/python-apollo.yml b/.github/workflows/python-apollo.yml index c33a4c910..cec91ab74 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] diff --git a/grails-app/controllers/org/bbop/apollo/UserController.groovy b/grails-app/controllers/org/bbop/apollo/UserController.groovy index fb4006b72..e9c5ab517 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/PermissionService.groovy b/grails-app/services/org/bbop/apollo/PermissionService.groovy index a53a80b87..ac9399590 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 cf5678a92..758a35099 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) { @@ -700,7 +704,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])