diff --git a/frontend/src/components/BaseLayout.vue b/frontend/src/components/BaseLayout.vue index b5407e4629acec0b3a90c46b32f5bf1d2633c0d1..05b3054e6d55ea79d47c0d4e7279eb36f81fbd5c 100644 --- a/frontend/src/components/BaseLayout.vue +++ b/frontend/src/components/BaseLayout.vue @@ -69,7 +69,7 @@ <span class="pl-2 grady-speak">{{ gradySpeak }}</span> <v-spacer/> <slot name="toolbar-center"/> - <div class="toolbar-content"> + <div class="toolbar-content" v-if="getDropdownShow"> <v-menu bottom offset-y> <v-btn slot="activator" color="cyan" style="text-transform: none"> {{ userRole }} | {{ username }} <v-icon>arrow_drop_down</v-icon> @@ -90,6 +90,7 @@ import { mapStateToComputedGetterSetter } from '@/util/helpers' import UserOptions from '@/components/UserOptions' import { Authentication } from '@/store/modules/authentication' import { actions } from '@/store/actions' +import { UserAccount } from '../models'; export default { name: 'base-layout', @@ -121,7 +122,11 @@ export default { }, productionBrandUrl () { return `https://${window.location.host}/static/img/brand.png` - } + }, + getDropdownShow () { + return this.userRole == UserAccount.RoleEnum.Tutor || + this.userRole == UserAccount.RoleEnum.Reviewer; + }, }, methods: { logout () { diff --git a/frontend/src/pages/Login.vue b/frontend/src/pages/Login.vue index db914c5c52b546e65870dd5c4d0baa4a6d774d16..c73fc809faecfbe88e86a964e972197e473ed8be 100644 --- a/frontend/src/pages/Login.vue +++ b/frontend/src/pages/Login.vue @@ -72,12 +72,17 @@ export default { submit () { this.loading = true Auth.getJWT(this.credentials).then(() => { - Auth.getUser().then(() => { - this.$router.push({ name: 'home' }) - }) - Auth.getJWTTimeDelta() + return Promise.all([ + Auth.getUser(), + Auth.getJWTTimeDelta() + ]) + }).then(() => { + this.$router.push({ name: 'home' }) this.loading = false - }).catch(() => { this.loading = false }) + }).catch((er) => { + Auth.SET_MESSAGE("Login failed. Please try again.") + this.loading = false + }) }, registered (credentials) { this.registerDialog = false