"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createUserSQLUser; const generate_password_1 = require("generate-password"); const dbHandler_1 = __importDefault(require("../functions/backend/dbHandler")); const crud_1 = __importDefault(require("./data-fetching/crud")); const encrypt_1 = __importDefault(require("../functions/dsql/encrypt")); const grab_user_main_sql_user_name_1 = __importDefault(require("./grab-user-main-sql-user-name")); const grab_db_names_1 = __importDefault(require("./grab-db-names")); const handle_mariadb_user_creation_1 = require("../functions/web-app/mariadb-user/handle-mariadb-user-creation"); function createUserSQLUser(user) { return __awaiter(this, void 0, void 0, function* () { const { fullName, host, username: mariaDBUsername, webHost, } = (0, grab_user_main_sql_user_name_1.default)({ user }); const { userDbPrefix } = (0, grab_db_names_1.default)({ user }); yield (0, dbHandler_1.default)({ query: `DROP USER IF EXISTS '${mariaDBUsername}'@'${webHost}'`, noErrorLogs: true, }); const newPassword = (0, generate_password_1.generate)({ length: 32 }); yield (0, handle_mariadb_user_creation_1.createNewSQLUser)({ host: webHost, password: newPassword, username: mariaDBUsername, }); const updateWebHostGrants = (yield (0, dbHandler_1.default)({ query: `GRANT ALL PRIVILEGES ON \`${userDbPrefix.replace(/\_/g, "\\_")}%\`.* TO '${mariaDBUsername}'@'${webHost}'`, })); const updateUser = yield (0, crud_1.default)({ action: "update", table: "users", targetField: "id", targetValue: user.id, data: { mariadb_host: webHost, mariadb_pass: (0, encrypt_1.default)({ data: newPassword }) || undefined, mariadb_user: mariaDBUsername, }, }); return { fullName, host, username: mariaDBUsername, password: newPassword, }; }); }