48 lines
1.8 KiB
JavaScript
Executable File
48 lines
1.8 KiB
JavaScript
Executable File
exports.index = function (req, res) {
|
|
res.render('index', { title: 'Home' })
|
|
};
|
|
|
|
exports.db = function (req, res) {
|
|
res.render('database', { title: 'Manage MAC' })
|
|
};
|
|
|
|
exports.form = function (req, res) {
|
|
var snmpMac = req.app.get('snmpMac'); //TODO: wie kann man das schoener machen?
|
|
var mac = req.body.mac,
|
|
label = req.body.label,
|
|
action = req.body.action;
|
|
var status = "";
|
|
mac = mac.toLowerCase();
|
|
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
|
|
|
|
if (/^([0-9a-f]{2}[:-]){5}([0-9a-f]{2})$/.exec(mac)) {
|
|
if (action == "add") {
|
|
if (label) {
|
|
if(label.split('').length > 1) {
|
|
console.log("add mac request mac: " +mac + " label " + label + " ip: " + ip);
|
|
snmpMac.add(mac, '"' + label + '"', function (err) {
|
|
console.log("add mac result: " + err);
|
|
req.flash('status', err == null ? "" : "database error: " + err);
|
|
res.redirect("/db");
|
|
});
|
|
}
|
|
} else {
|
|
req.flash('status', 'label is invalid ("^[0-9a-zA-Z]+$")');
|
|
res.redirect("/db");
|
|
}
|
|
} else if (action == "remove") {
|
|
console.log("remove mac request mac: "+mac + " label " + '"' + label + '"' + " ip: " + ip);
|
|
snmpMac.delete(mac, function (err) {
|
|
console.log("delete mac result: " + err);
|
|
req.flash('status', err == null ? "" : "database error: " + err);
|
|
res.redirect("/db");
|
|
});
|
|
} else {
|
|
res.redirect("/db");
|
|
}
|
|
} else {
|
|
req.flash('status', 'mac address is invalid');
|
|
res.redirect("/db");
|
|
}
|
|
};
|