Skip to content

Commit

Permalink
prevent adding forms in prod study
Browse files Browse the repository at this point in the history
  • Loading branch information
wyattis committed Feb 4, 2022
1 parent 6fb9d2e commit 338d88b
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 31 deletions.
54 changes: 27 additions & 27 deletions src/WebApp.vue
Original file line number Diff line number Diff line change
Expand Up @@ -115,39 +115,38 @@
</div>
</template>

<script lang="ts">
import Vue from 'vue'
import singleton from './static/singleton'
// Do not remove!
import SingletonService from './services/SingletonService'
import config from 'config'
import MainMenu from './components/main-menu/MainMenu.vue'
import CensusFormChecker from './components/CensusFormChecker.vue'
<script >
import MainMenu from './components/main-menu/MainMenu'
import CensusFormChecker from './components/CensusFormChecker'
import LoginModal from './components/login/LoginModal.vue'
import SnackbarQueue from './components/SnackbarQueue.vue'
import DocsSidebar from './components/documentation/DocsSidebar.vue'
import VDivider from 'vuetify/src/components/VDivider/VDivider'
import AlertService from './services/AlertService'
import TrellisAlert from './components/TrellisAlert.vue'
import TrellisLoadingCircular from './components/TrellisLoadingCircle.vue'
import LocationFinder from './components/LocationFinder.vue'
import Banner from './components/Banner.vue'
import Maintenance from './components/Maintenance.vue'
import TrellisLoadingCircular from './components/TrellisLoadingCircle'
import LocationFinder from './components/LocationFinder'
import router, { routeQueue } from './router'
import singleton from './static/singleton'
// Do not remove!
import SingletonService from './services/SingletonService'
import { defaultLoggingService } from './services/logging/LoggingService'
import AlertService from './services/AlertService'
import GeoLocationService from './services/geolocation'
import SnackbarQueue from './components/SnackbarQueue'
import DocsSidebar from './components/documentation/DocsSidebar'
import UserService from './services/user/UserService'
import maintenanceService, { MaintenanceData } from './services/maintenance'
import config from 'config'
import IsLoggedInMixin from './mixins/IsLoggedInMixin'
import Banner from './components/Banner'
import PermissionMixin from './mixins/PermissionMixin'
import Maintenance from './components/Maintenance.vue'
import maintenanceService, { MaintenanceData } from './services/maintenance'
export default Vue.extend({
export default {
name: 'WebApp',
mixins: [IsLoggedInMixin, PermissionMixin],
data () {
return {
global: singleton,
maintenance: null as MaintenanceData,
maintenance: null,
maintenanceMode: false,
error: null,
interviewIds: ['0011bbc8-59e7-4c68-ab48-97d64760961c', 'f8a82e2a-b6c9-42e5-9803-aacec589f796', '9457d7c8-0b37-4098-8aa4-4b928b2503e5'],
Expand All @@ -164,11 +163,6 @@
document.addEventListener('resume', this.onResume, false)
document.addEventListener('backbutton', this.onBackButton)
this.startGPSWatch()
} else {
this.maintenance = await maintenanceService.getStatus()
if (this.maintenance.active) {
this.maintenanceMode = this.global.maintenanceKey !== this.maintenance.key
}
}
try {
const user = await UserService.loadCurrentUser()
Expand All @@ -180,6 +174,12 @@
this.alert('error', 'Unable to load user', {timeout: 0})
}
}
if (!this.withinCordova) {
this.maintenance = await maintenanceService.getStatus()
if (this.maintenance.active) {
this.maintenanceMode = this.global.maintenanceKey !== this.maintenance.key
}
}
},
beforeDestroy () {
if (this.withinCordova) {
Expand All @@ -191,7 +191,7 @@
}
},
watch: {
'global.maintenanceKey' (val: string) {
'global.maintenanceKey' (val) {
if (val && this.maintenance && this.maintenance.active) {
this.maintenanceMode = val === this.maintenance.key
}
Expand All @@ -210,7 +210,7 @@
Maintenance,
},
computed: {
withinCordova (): boolean {
withinCordova () {
return window.cordova && typeof cordova === 'object'
}
},
Expand Down Expand Up @@ -252,7 +252,7 @@
}
},
}
})
}
</script>

<style lang="sass">
Expand Down
2 changes: 1 addition & 1 deletion src/components/forms/FormListTile.vue
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
data() {
return {
isBusy: false,
formTypes,
formTypes: formTypes,
global: singleton,
showMenu: false,
showVersionModal: false,
Expand Down
2 changes: 1 addition & 1 deletion src/mixins/PermissionMixin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export default Vue.extend({
if (!Array.isArray(roles)) {
roles = [roles]
}
if (!roles.length || !this.global.user || !this.global.user.role || typeof this.global.user.role !== 'string') return false
if (!roles.length || !this.global || !this.global.user || !this.global.user.role || typeof this.global.user.role !== 'string') return false
let role = this.global.user.role.toLowerCase()
return roles.map(r => r.toLowerCase()).indexOf(role) !== -1
},
Expand Down
5 changes: 3 additions & 2 deletions src/views/Forms.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<v-toolbar flat>
<v-toolbar-title>{{ formTypeName(formType) }}</v-toolbar-title>
<v-spacer></v-spacer>
<Permission :requires="TrellisPermission.ADD_FORM">
<Permission :requires="TrellisPermission.ADD_FORM" v-if="isTestStudy">
<v-menu offset-y left>
<template v-slot:activator="{ on, attrs }">
<v-btn
Expand Down Expand Up @@ -103,10 +103,11 @@
import groupBy from 'lodash/groupBy'
import draggable from 'vuedraggable'
import { delay } from '../classes/delay'
import PermissionMixin from '../mixins/PermissionMixin'
export default Vue.extend({
name: 'Forms',
mixins: [DocsLinkMixin(DocsFiles.getting_started.create_form)],
mixins: [DocsLinkMixin(DocsFiles.getting_started.create_form), PermissionMixin],
components: {FormListTile, TrellisModal, FormSkips, Permission, FormImport, draggable},
created() {
this.loadForms()
Expand Down

0 comments on commit 338d88b

Please sign in to comment.