ubuntu resolute
This commit is contained in:
55
nodejs/commande/delPerm.js
Normal file
55
nodejs/commande/delPerm.js
Normal file
@@ -0,0 +1,55 @@
|
||||
const fs = require('fs');
|
||||
|
||||
module.exports = function (app, checkApiKey) {
|
||||
app.post('/action/delperm', checkApiKey, (req, res) => {
|
||||
const authzFilePath = '/etc/apache2/dav_svn.authz';
|
||||
|
||||
const { repoName, user } = req.body;
|
||||
|
||||
console.log("Nom du repo reçu :", repoName); // DEBUG
|
||||
console.log("Utilisateur reçu :", user); // DEBUG
|
||||
|
||||
if (!repoName || !user) {
|
||||
return res.status(400).json({ error: "Missing repoName or user parameter" });
|
||||
}
|
||||
|
||||
try {
|
||||
const fileContent = fs.readFileSync(authzFilePath, 'utf8');
|
||||
|
||||
console.log("Contenu du fichier avant modification :");
|
||||
console.log(fileContent); // DEBUG
|
||||
|
||||
const repoRegex = new RegExp(`(\\[/${repoName}\\][^\\[]*)(?=\\[|$)`, 'gs');
|
||||
const match = repoRegex.exec(fileContent);
|
||||
|
||||
if (!match) {
|
||||
return res.status(400).json({ error: "Repository section not found" });
|
||||
}
|
||||
|
||||
const fullRepoSection = match[0];
|
||||
const lines = fullRepoSection.split('\n');
|
||||
|
||||
const newLines = lines.filter(line => {
|
||||
const trimmed = line.trim();
|
||||
return !trimmed.startsWith(user + ' =');
|
||||
});
|
||||
|
||||
const updatedRepoSection = newLines.join('\n');
|
||||
|
||||
const newFileContent = fileContent.replace(fullRepoSection, updatedRepoSection);
|
||||
|
||||
console.log("Contenu du fichier après modification :");
|
||||
console.log(newFileContent); // DEBUG
|
||||
|
||||
fs.writeFileSync(authzFilePath, newFileContent, 'utf8');
|
||||
|
||||
res.json({ message: 'Permission removed successfully' });
|
||||
|
||||
} catch (error) {
|
||||
res.status(500).json({
|
||||
error: "Error processing repository permissions",
|
||||
details: error.message
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user