forked from cory/tildefriends
js: Move app delete to C.
This commit is contained in:
32
core/core.js
32
core/core.js
@ -995,36 +995,6 @@ async function blobHandler(request, response, blobId, uri) {
|
||||
response.writeHead(400, {'Content-Type': 'text/plain; charset=utf-8'});
|
||||
response.end('Invalid name.');
|
||||
}
|
||||
} else if (uri == '/delete') {
|
||||
let match;
|
||||
if ((match = /^\/\~(\w+)\/(\w+)$/.exec(blobId))) {
|
||||
let user = match[1];
|
||||
let appName = match[2];
|
||||
let credentials = await httpd.auth_query(request.headers);
|
||||
if (
|
||||
credentials &&
|
||||
credentials.session &&
|
||||
(credentials.session.name == user ||
|
||||
(credentials.permissions.administration && user == 'core'))
|
||||
) {
|
||||
let database = new Database(user);
|
||||
let apps = new Set();
|
||||
try {
|
||||
apps = new Set(JSON.parse(await database.get('apps')));
|
||||
} catch {}
|
||||
if (apps.delete(appName)) {
|
||||
await database.set('apps', JSON.stringify([...apps].sort()));
|
||||
}
|
||||
database.remove('path:' + appName);
|
||||
} else {
|
||||
response.writeHead(401, {'Content-Type': 'text/plain; charset=utf-8'});
|
||||
response.end('401 Unauthorized');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
response.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});
|
||||
response.end('OK');
|
||||
} else {
|
||||
let data;
|
||||
let match;
|
||||
@ -1175,7 +1145,7 @@ loadSettings()
|
||||
(match = /^\/([&\%][^\.]{44}(?:\.\w+)?)(\/?.*)/.exec(request.uri))
|
||||
) {
|
||||
return blobHandler(request, response, match[1], match[2]);
|
||||
} else if ((match = /^(.*)(\/(?:save|delete)?)$/.exec(request.uri))) {
|
||||
} else if ((match = /^(.*)(\/(?:save)?)$/.exec(request.uri))) {
|
||||
return blobHandler(request, response, match[1], match[2]);
|
||||
}
|
||||
});
|
||||
|
Reference in New Issue
Block a user