38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
const fs = require('fs');
|
|
|
|
module.exports = function(app, checkApiKey) {
|
|
app.post('/action/deleteuser', checkApiKey, (req, res) => {
|
|
const { username } = req.body;
|
|
|
|
// Vérification des paramètres
|
|
if (!username) {
|
|
return res.status(400).send('Username is required');
|
|
}
|
|
|
|
const passwdFilePath = '/etc/apache2/dav_svn.passwd';
|
|
|
|
// Lire le fichier passwd
|
|
fs.readFile(passwdFilePath, 'utf8', (err, data) => {
|
|
if (err) {
|
|
return res.status(500).send(`Error reading passwd file: ${err}`);
|
|
}
|
|
|
|
const lines = data.split('\n');
|
|
const newLines = lines.filter(line => !line.startsWith(`${username}:`));
|
|
|
|
// Vérifier si l'utilisateur a été trouvé et supprimé
|
|
if (lines.length === newLines.length) {
|
|
return res.status(404).send(`User ${username} not found`);
|
|
}
|
|
|
|
// Écrire les modifications dans le fichier passwd
|
|
fs.writeFile(passwdFilePath, newLines.join('\n'), 'utf8', (err) => {
|
|
if (err) {
|
|
return res.status(500).send(`Error updating passwd file: ${err}`);
|
|
}
|
|
res.send(`User ${username} deleted successfully`);
|
|
});
|
|
});
|
|
});
|
|
};
|