will-lib
Version:
Library classes
69 lines (68 loc) • 3.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthenLibrary = void 0;
const uuid_1 = require("uuid");
const will_sql_1 = require("will-sql");
const PromptConfig_1 = require("./PromptConfig");
const PromptAuthen_1 = require("./auth/PromptAuthen");
const EnvironmentVariable_1 = require("./EnvironmentVariable");
const HTTP_1 = require("./HTTP");
const AuthenError_1 = require("./AuthenError");
const BaseAuthentication_1 = require("./auth/BaseAuthentication");
class AuthenLibrary {
static getDefaultResponse() {
return new BaseAuthentication_1.BaseAuthentication().getResponseInfo();
}
static getDefaultConfigure(site) {
if ("NEWS" == EnvironmentVariable_1.NEWS_AUTHEN_TYPE) {
return new PromptConfig_1.PromptConfig("NEWS", EnvironmentVariable_1.NEWS_AUTHEN_URL, site);
}
return new PromptConfig_1.PromptConfig("WOW", EnvironmentVariable_1.WOW_AUTHEN_URL, site);
}
static createConfigure(row) {
return new PromptConfig_1.PromptConfig(row.authtype, row.tenanturl, undefined, row.domainname);
}
async authenticate(username, password, config, conn) {
let pa = new PromptAuthen_1.PromptAuthen();
if (!config)
config = AuthenLibrary.getDefaultConfigure();
if (!config.hasConfigure()) {
return Promise.reject(new AuthenError_1.AuthenError("Configuration not defined", HTTP_1.HTTP.NOT_FOUND));
}
return await pa.authenticate(username, password, config);
}
async updateUserInfo(conn, user) {
let result = 0;
let now = new Date();
let sql = new will_sql_1.KnSQL("update tuserinfo set editdate = ?editdate , edittime = ?edittime where userid = ?userid ");
sql.set("editdate", now);
sql.set("edittime", now);
sql.set("userid", user.userid);
let rs = await sql.executeUpdate(conn);
result = rs.rows.affectedRows;
return Promise.resolve(result);
}
async createUserInfo(conn, user, site) {
let sql = new will_sql_1.KnSQL("insert into tuserinfo (site, employeeid, userid, cardid, usertname, ");
sql.append("usertsurname, userename, useresurname, displayname, activeflag, email) ");
sql.append("values(?site,?employeeid,?userid,?cardid,?usertname,?usertsurname,?userename,?useresurname,?displayname,'1',?email) ");
sql.set("site", site);
sql.set("employeeid", user.userid);
sql.set("userid", user.userid);
sql.set("cardid", (0, uuid_1.v4)());
sql.set("usertname", user.username);
sql.set("usertsurname", user.usersurname);
sql.set("userename", user.username);
sql.set("useresurname", user.usersurname);
sql.set("displayname", user.displayname);
sql.set("email", user.email);
await sql.executeUpdate(conn);
}
async saveUserInfo(conn, user, site = "FWS") {
let record = await this.updateUserInfo(conn, user);
if (record <= 0) {
await this.createUserInfo(conn, user, site);
}
}
}
exports.AuthenLibrary = AuthenLibrary;