mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-21 07:56:16 -04:00
adminsettings: Promisify
This commit is contained in:
parent
4e2f816665
commit
46ad93024d
1 changed files with 19 additions and 23 deletions
|
@ -1,12 +1,12 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const eejs = require('../../eejs');
|
const eejs = require('../../eejs');
|
||||||
const fs = require('fs');
|
const fsp = require('fs').promises;
|
||||||
const hooks = require('../../../static/js/pluginfw/hooks');
|
const hooks = require('../../../static/js/pluginfw/hooks');
|
||||||
const plugins = require('../../../static/js/pluginfw/plugins');
|
const plugins = require('../../../static/js/pluginfw/plugins');
|
||||||
const settings = require('../../utils/Settings');
|
const settings = require('../../utils/Settings');
|
||||||
|
|
||||||
exports.expressCreateServer = (hookName, {app}, cb) => {
|
exports.expressCreateServer = (hookName, {app}) => {
|
||||||
app.get('/admin/settings', (req, res) => {
|
app.get('/admin/settings', (req, res) => {
|
||||||
res.send(eejs.require('ep_etherpad-lite/templates/admin/settings.html', {
|
res.send(eejs.require('ep_etherpad-lite/templates/admin/settings.html', {
|
||||||
req,
|
req,
|
||||||
|
@ -14,20 +14,20 @@ exports.expressCreateServer = (hookName, {app}, cb) => {
|
||||||
errors: [],
|
errors: [],
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
return cb();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.socketio = (hookName, {io}, cb) => {
|
exports.socketio = (hookName, {io}) => {
|
||||||
io.of('/settings').on('connection', (socket) => {
|
io.of('/settings').on('connection', (socket) => {
|
||||||
const {session: {user: {is_admin: isAdmin} = {}} = {}} = socket.conn.request;
|
const {session: {user: {is_admin: isAdmin} = {}} = {}} = socket.conn.request;
|
||||||
if (!isAdmin) return;
|
if (!isAdmin) return;
|
||||||
|
|
||||||
socket.on('load', (query) => {
|
socket.on('load', async (query) => {
|
||||||
fs.readFile('settings.json', 'utf8', (err, data) => {
|
let data;
|
||||||
if (err) {
|
try {
|
||||||
|
data = await fsp.readFile('settings.json', 'utf8');
|
||||||
|
} catch (err) {
|
||||||
return console.log(err);
|
return console.log(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if showSettingsInAdminPage is set to false, then return NOT_ALLOWED in the result
|
// if showSettingsInAdminPage is set to false, then return NOT_ALLOWED in the result
|
||||||
if (settings.showSettingsInAdminPage === false) {
|
if (settings.showSettingsInAdminPage === false) {
|
||||||
socket.emit('settings', {results: 'NOT_ALLOWED'});
|
socket.emit('settings', {results: 'NOT_ALLOWED'});
|
||||||
|
@ -35,14 +35,11 @@ exports.socketio = (hookName, {io}, cb) => {
|
||||||
socket.emit('settings', {results: data});
|
socket.emit('settings', {results: data});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
socket.on('saveSettings', (settings) => {
|
socket.on('saveSettings', async (settings) => {
|
||||||
fs.writeFile('settings.json', settings, (err) => {
|
await fsp.writeFile('settings.json', settings);
|
||||||
if (err) throw err;
|
|
||||||
socket.emit('saveprogress', 'saved');
|
socket.emit('saveprogress', 'saved');
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
socket.on('restartServer', async () => {
|
socket.on('restartServer', async () => {
|
||||||
console.log('Admin request to restart server through a socket on /admin/settings');
|
console.log('Admin request to restart server through a socket on /admin/settings');
|
||||||
|
@ -52,5 +49,4 @@ exports.socketio = (hookName, {io}, cb) => {
|
||||||
await hooks.aCallAll('restartServer');
|
await hooks.aCallAll('restartServer');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
return cb();
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue