UNPKG

will-lib

Version:
69 lines (68 loc) 3.2 kB
"use strict"; 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;