datasquirel/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-record.js
Benjamin Toby 7e8bb37c09 Updates
2025-07-05 14:59:30 +01:00

55 lines
2.2 KiB
JavaScript

import grabSQLUserName from "../../../utils/grab-sql-user-name";
import addDbEntry from "../../backend/db/addDbEntry";
import encrypt from "../../dsql/encrypt";
import dbGrabUserResource from "../db/grab-user-resource";
export default async function handleMariadbUserRecord({ mariadbUser, accessedDatabases, grants, isAllDbsAccess, isAllGrants, user, }) {
var _a, _b, _c;
const { name: finalMariadbUserName } = grabSQLUserName({
name: mariadbUser.username,
user,
});
const finalPassword = (_a = mariadbUser.password) === null || _a === void 0 ? void 0 : _a.replace(/ /g, "");
if (!finalPassword)
return { msg: `Couldn't get password` };
const encryptedFinalPassword = encrypt({ data: finalPassword });
const finalHost = (_b = mariadbUser.host) === null || _b === void 0 ? void 0 : _b.replace(/ /g, "");
const newMariadbUser = {
password: encryptedFinalPassword || undefined,
username: finalMariadbUserName,
all_databases: isAllDbsAccess ? 1 : 0,
all_grants: isAllGrants ? 1 : 0,
host: finalHost,
user_id: user.id,
};
let { single: existingRecord } = await dbGrabUserResource({
tableName: "mariadb_users",
userId: user.id,
query: {
query: {
id: {
value: String(mariadbUser.id || 0),
},
},
},
});
const record = await addDbEntry({
tableName: "mariadb_users",
data: newMariadbUser,
update: true,
duplicateColumnName: "id",
duplicateColumnValue: ((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) || 0).toString(),
});
let { single: updatedRecord } = await dbGrabUserResource({
tableName: "mariadb_users",
userId: user.id,
query: {
query: {
id: {
value: String((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) || ((_c = record === null || record === void 0 ? void 0 : record.payload) === null || _c === void 0 ? void 0 : _c.insertId) || 0),
},
},
},
});
return { existingRecord, updatedRecord };
}