mirror of
https://github.com/jc21/nginx-proxy-manager.git
synced 2024-08-30 18:22:48 +00:00
implemented update and delete methods
This commit is contained in:
parent
7e7e077ce1
commit
392d1f0277
@ -8,7 +8,7 @@ const PIHOLE_LOGIN_URL = 'http://'+process.env.PIHOLE_IP+'/admin/index.php';
|
||||
const PIHOLE_CUSTOMDNS_URL = 'http://'+process.env.PIHOLE_IP+'/admin/scripts/pi-hole/php/customdns.php';
|
||||
|
||||
// Function to update Pi-hole with domain and IP
|
||||
async function updatePihole(domain, ip) {
|
||||
async function updatePihole(domain, ip,action) {
|
||||
try {
|
||||
// Step 1: Login to Pi-hole to get session cookie
|
||||
const loginResponse = await axios.post(PIHOLE_LOGIN_URL, qs.stringify({
|
||||
@ -22,7 +22,6 @@ async function updatePihole(domain, ip) {
|
||||
});
|
||||
|
||||
if (loginResponse.status === 200) {
|
||||
console.log('Login successful');
|
||||
// Extract session cookie (PHPSESSID)
|
||||
const cookies = loginResponse.headers['set-cookie'];
|
||||
const sessionCookie = cookies.find((cookie) => cookie.startsWith('PHPSESSID'));
|
||||
@ -44,7 +43,6 @@ async function updatePihole(domain, ip) {
|
||||
// Extract token value from element with ID "token"
|
||||
const token = $('#token').text().trim();
|
||||
|
||||
console.log('Token retrieved:', token);
|
||||
|
||||
// Step 3: Add custom DNS record with explicit session cookie and token
|
||||
const headers = {
|
||||
@ -60,7 +58,7 @@ async function updatePihole(domain, ip) {
|
||||
|
||||
// Request data including token
|
||||
const requestData = {
|
||||
action: 'add',
|
||||
action: action,
|
||||
ip: ip,
|
||||
domain: domain,
|
||||
token: token // Use the token retrieved from the HTML page
|
||||
@ -71,7 +69,7 @@ async function updatePihole(domain, ip) {
|
||||
headers: headers
|
||||
});
|
||||
|
||||
console.log('Custom DNS record added:', addRecordResponse.data);
|
||||
console.log('PiHole API:', addRecordResponse.data);
|
||||
} else {
|
||||
console.error('Login failed:', loginResponse.statusText);
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ const internalProxyHost = {
|
||||
|
||||
// Update PiHole
|
||||
for (let i = 0; i < row.domain_names.length; i++) {
|
||||
piHole.updatePihole(row.domain_names[i], row.forward_host);
|
||||
piHole.updatePihole(row.domain_names[i], row.forward_host, 'add');
|
||||
}
|
||||
|
||||
return row;
|
||||
@ -77,7 +77,7 @@ const internalProxyHost = {
|
||||
|
||||
// Update PiHole
|
||||
for (let i = 0; i < row.domain_names.length; i++) {
|
||||
piHole.updatePihole(row.domain_names[i], row.forward_host);
|
||||
piHole.updatePihole(row.domain_names[i], row.forward_host, 'add');
|
||||
}
|
||||
|
||||
return row;
|
||||
@ -166,9 +166,18 @@ const internalProxyHost = {
|
||||
data.certificate_id = cert.id;
|
||||
})
|
||||
.then(() => {
|
||||
// Update PiHole
|
||||
for (let i = 0; i < row.domain_names.length; i++) {
|
||||
piHole.updatePihole(row.domain_names[i], row.forward_host, 'delete');
|
||||
}
|
||||
return row;
|
||||
});
|
||||
} else {
|
||||
// Update PiHole
|
||||
for (let i = 0; i < row.domain_names.length; i++) {
|
||||
piHole.updatePihole(row.domain_names[i], row.forward_host, 'delete');
|
||||
|
||||
}
|
||||
return row;
|
||||
}
|
||||
})
|
||||
@ -194,6 +203,7 @@ const internalProxyHost = {
|
||||
meta: data
|
||||
})
|
||||
.then(() => {
|
||||
|
||||
return saved_row;
|
||||
});
|
||||
});
|
||||
@ -213,6 +223,9 @@ const internalProxyHost = {
|
||||
.then((new_meta) => {
|
||||
row.meta = new_meta;
|
||||
row = internalHost.cleanRowCertificateMeta(row);
|
||||
for (let i = 0; i < row.domain_names.length; i++) {
|
||||
piHole.updatePihole(row.domain_names[i], row.forward_host, 'add');
|
||||
}
|
||||
return _.omit(row, omissions());
|
||||
});
|
||||
});
|
||||
@ -288,6 +301,12 @@ const internalProxyHost = {
|
||||
is_deleted: 1
|
||||
})
|
||||
.then(() => {
|
||||
// Update PiHole
|
||||
|
||||
for (let i = 0; i < row.domain_names.length; i++) {
|
||||
piHole.updatePihole(row.domain_names[i], row.forward_host, 'delete').then();
|
||||
console.log('Deleted from PiHole: ' + row.domain_names[i]);
|
||||
}
|
||||
// Delete Nginx Config
|
||||
return internalNginx.deleteConfig('proxy_host', row)
|
||||
.then(() => {
|
||||
|
Loading…
Reference in New Issue
Block a user