85 lines
3.3 KiB
JavaScript
85 lines
3.3 KiB
JavaScript
"use strict";
|
|
exports.id = 8999;
|
|
exports.ids = [8999];
|
|
exports.modules = {
|
|
|
|
/***/ 8999:
|
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
// @ts-check
|
|
/**
|
|
* ==============================================================================
|
|
* Imports
|
|
* ==============================================================================
|
|
*/
|
|
const DB_HANDLER = __webpack_require__(2224);
|
|
const serverError = __webpack_require__(2163);
|
|
/** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /**
|
|
* ==============================================================================
|
|
* Main Function
|
|
* ==============================================================================
|
|
* @async
|
|
*
|
|
* @param {{
|
|
* user: {id:number},
|
|
* confirmedDelegetedUser: any,
|
|
* database: string,
|
|
* table: string,
|
|
* priviledgeRegex: RegExp,
|
|
* dbId: number,
|
|
* }} params - parameters
|
|
*
|
|
* @returns {Promise<boolean>} does user have the rights for this operation? true if yes, false if no
|
|
*/ module.exports = async function checkUserRights({ user , confirmedDelegetedUser , database , table , priviledgeRegex , dbId , }) {
|
|
/**
|
|
* Fetch user
|
|
*
|
|
* @description Fetch user from db
|
|
*/ let userConfirmation, priviledge;
|
|
try {
|
|
if (confirmedDelegetedUser?.delegated) {
|
|
userConfirmation = await DB_HANDLER(`SELECT priviledge FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=? AND \`database\`=? AND \`table\`=?`, [
|
|
confirmedDelegetedUser.rootUserId,
|
|
user.id,
|
|
database,
|
|
table
|
|
]);
|
|
priviledge = userConfirmation[0]?.priviledge?.match(priviledgeRegex);
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
} else {
|
|
userConfirmation = await DB_HANDLER(`SELECT table_slug FROM user_database_tables WHERE user_id=? AND table_slug=? AND db_id=?`, [
|
|
user.id,
|
|
table,
|
|
dbId
|
|
]);
|
|
priviledge = true;
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
}
|
|
} catch (/** @type {any} */ error) {
|
|
serverError({
|
|
component: "checkUserRights",
|
|
message: error.message,
|
|
user: user
|
|
});
|
|
}
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
if (userConfirmation && userConfirmation[0] && priviledge) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}; ////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
|
|
|
|
/***/ })
|
|
|
|
};
|
|
; |