diff --git a/src/pages/SelectUser.vue b/src/pages/SelectUser.vue index 4376ef0..c9d2f0d 100644 --- a/src/pages/SelectUser.vue +++ b/src/pages/SelectUser.vue @@ -61,6 +61,8 @@ /> + + Login @@ -98,6 +100,10 @@ export default { return true } return false + }, + loginStatus () { + console.log(this.$store.state.app.loginStatus) + return this.$store.state.app.loginStatus } }, @@ -107,6 +113,7 @@ export default { selecteduser: null, username: null, password: '', + totp: null, isPwd: true } }, @@ -115,11 +122,13 @@ export default { selectUser () { this.$store.dispatch('app/setUser', this.selecteduser) }, - login () { + + async login () { const username = (this.show_usernames === true) ? this.selecteduser.username : this.username this.$store.dispatch('app/login', { username: username, - password: this.password + password: this.password, + totp: this.totp || '' }) } }, diff --git a/src/store/app/actions.js b/src/store/app/actions.js index c14e3a8..172aee9 100644 --- a/src/store/app/actions.js +++ b/src/store/app/actions.js @@ -78,22 +78,33 @@ export function setUser (context, user) { export async function firelogin (context, data) { const response = await axios.post(process.env.BACKEND_LOCATION + 'login', data) - // console.log(response.data) - Cookies.set('jwt', response.data.result.token, { - expires: 3600 - }) + if (response.data.result && response.data.result.token) { + Cookies.set('jwt', response.data.result.token, { + expires: 3600 + }) + } + return response } export async function login (context, data) { // console.log(data) try { - await firelogin(context, data) + const response = await firelogin(context, data) + switch (response.data.status) { + case 'ok': + ping(context) + context.commit('setLoginStatus', 'logged_in') + break + case 'multifactor': + context.commit('setLoginStatus', 'multifactor') + break + } ping(context) } catch (e) { Notify.create({ type: 'negative', - message: `Could not log in.`, + message: e.response.data.result, progress: true, position: 'top', timeout: 1500 diff --git a/src/store/app/mutations.js b/src/store/app/mutations.js index 9849c5c..202b743 100644 --- a/src/store/app/mutations.js +++ b/src/store/app/mutations.js @@ -14,8 +14,13 @@ export function setUser (state, user) { state.user = user } +export function setLoginStatus (state, status) { + state.loginStatus = status +} + export function logout (state) { state.user = null + state.loginStatus = null } export function users (state, data) { diff --git a/src/store/app/state.js b/src/store/app/state.js index dc2ac0c..6b02dba 100644 --- a/src/store/app/state.js +++ b/src/store/app/state.js @@ -2,6 +2,7 @@ export default function () { return { status: null, user: null, + loginStatus: null, setup: { step: 1 },