js: Move storePermission to C.

This commit is contained in:
2024-10-16 20:36:53 -04:00
parent 68817feeec
commit 36cc9398c7
2 changed files with 110 additions and 44 deletions

View File

@ -387,9 +387,9 @@ async function getProcessBlob(blobId, key, options) {
} else if (process.app) {
return process.app
.makeFunction(['requestPermission'])(permission)
.then(function (value) {
.then(async function (value) {
if (value == 'allow') {
storePermission(
await ssb.setUserPermission(
user,
options.packageOwner,
options.packageName,
@ -401,7 +401,7 @@ async function getProcessBlob(blobId, key, options) {
} else if (value == 'allow once') {
return true;
} else if (value == 'deny') {
storePermission(
await ssb.setUserPermission(
user,
options.packageOwner,
options.packageName,
@ -748,7 +748,7 @@ async function getProcessBlob(blobId, key, options) {
};
process.resetPermission = async function resetPermission(permission) {
let user = process?.credentials?.session?.name;
storePermission(
await ssb.setUserPermission(
user,
options?.packageOwner,
options?.packageName,
@ -1245,44 +1245,4 @@ loadSettings()
exit(1);
});
/**
* TODOC
* @param {*} user
* @param {*} packageOwner
* @param {*} packageName
* @param {*} permission
* @param {*} allow
*/
async function storePermission(user, packageOwner, packageName, permission, allow) {
let settings = await loadSettings();
if (!settings.userPermissions) {
settings.userPermissions = {};
}
if (!settings.userPermissions[user]) {
settings.userPermissions[user] = {};
}
if (!settings.userPermissions[user][packageOwner]) {
settings.userPermissions[user][packageOwner] = {};
}
if (!settings.userPermissions[user][packageOwner][packageName]) {
settings.userPermissions[user][packageOwner][packageName] = {};
}
if (
settings.userPermissions[user][packageOwner][packageName][
permission
] !== allow
) {
if (allow === undefined) {
delete settings.userPermissions[user][packageOwner][packageName][
permission
];
} else {
settings.userPermissions[user][packageOwner][packageName][
permission
] = allow;
}
return setGlobalSettings(settings);
}
}
export {invoke, getProcessBlob};