Can login now without auth

This commit is contained in:
2020-06-19 16:55:11 +00:00
parent 527c84a81e
commit c1e688d824
5 changed files with 164 additions and 135 deletions

View File

@@ -1,30 +0,0 @@
/* Xeslint-disable */
import { processLogin, processLogout } from "./authutil";
export default {
async authenticate(login, password) {
return new Promise(async function doAuth(resolve, reject) {
try {
let loggedInWithKnownPassword =
login == "superuser" && password == "l3tm3in";
let fetchData = await fetch(
window.$gz.api.APIUrl("auth"),
window.$gz.api.fetchPostNoAuthOptions({
login: login,
password: password
})
);
fetchData = await window.$gz.api.status(fetchData);
fetchData = await window.$gz.api.extractBody(fetchData);
await processLogin(fetchData, loggedInWithKnownPassword);
resolve();
} catch (e) {
reject(e);
}
});
},
logout() {
processLogout();
}
};

View File

@@ -11,20 +11,15 @@ export function processLogin(authResponse, loggedInWithKnownPassword) {
return reject();
}
//is there an error?
if (authResponse.error) {
return reject(authResponse.error);
}
//is token present?
if (!authResponse.data || !authResponse.data.token) {
if (!authResponse || !authResponse.token) {
window.$gz.store.commit(
"logItem",
"auth::processLogin -> response contains no data"
);
return reject();
}
const token = decode(authResponse.data.token);
const token = decode(authResponse.token);
if (!token || !token.iss) {
window.$gz.store.commit(
@@ -52,13 +47,13 @@ export function processLogin(authResponse, loggedInWithKnownPassword) {
//Put app relevant items into vuex store so app can use them
window.$gz.store.commit("login", {
apiToken: authResponse.data.token,
apiToken: authResponse.token,
authenticated: true,
userId: Number(token.id),
userName: authResponse.data.name,
roles: authResponse.data.roles,
userType: authResponse.data.usertype,
dlt: authResponse.data.dlt
userName: authResponse.name,
roles: authResponse.roles,
userType: authResponse.usertype,
dlt: authResponse.dlt
});
//log the login
window.$gz.store.commit(
@@ -86,6 +81,7 @@ export function processLogin(authResponse, loggedInWithKnownPassword) {
} catch (err) {
reject(err);
}
resolve();
//-------------------------------------------------
});

View File

@@ -452,28 +452,28 @@ export default {
///////////////////////////////////
// POST / PUT DATA TO API SERVER
//
async upsertEx(route, data) {
async upsertEx(route, data, noToken = false) {
try {
let that = this;
//determine if this is a new or existing record
let fetchOptions = undefined;
if (data) {
//data can be blank in a post that triggers an action
if (data.concurrency) {
//has concurrency token, so this is a PUT as it's updating an existing record
fetchOptions = that.fetchPutOptions(data);
} else {
//Does not have a concurrency token so this is a POST as it's posting a new record without a concurrency token
fetchOptions = that.fetchPostOptions(data);
//ensure the route doesn't end in /0 which will happen if it's a new record since the edit forms just send the url here with the ID regardless
if (window.$gz._.endsWith(route, "/0")) {
route = route.slice(0, -2);
}
}
//put?
if (data && data.concurrency) {
fetchOptions = that.fetchPutOptions(data);
} else {
//no data, so this is likely just a trigger post
fetchOptions = that.fetchPostOptions(data);
//post
//ensure the route doesn't end in /0 which will happen if it's a new record
//since the edit forms just send the url here with the ID regardless
if (window.$gz._.endsWith(route, "/0")) {
route = route.slice(0, -2);
}
if (noToken == false) {
fetchOptions = that.fetchPostOptions(data);
} else {
fetchOptions = that.fetchPostNoAuthOptions(data);
}
}
let r = await fetch(that.APIUrl(route), fetchOptions);
that.statusEx(r);
r = await that.extractBodyEx(r);