55 lines
2.2 KiB
JavaScript
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 };
|
|
}
|