Implement RADIUS user creation and update functionality in CPE provisioning
This commit is contained in:
@@ -111,6 +111,7 @@ Vue.component('Cpeprovisioning', {
|
||||
<tt-button text="In Radius anlegen"
|
||||
@click="createRadiusUser(item)"
|
||||
:disabled="!isValidMac(item.cpe_data.mac)"
|
||||
:loading="item.isCreatingRadius"
|
||||
sm
|
||||
additional-class="btn-primary" />
|
||||
<tt-button text="ACS Auto VLAN Zuweisung testen"
|
||||
@@ -244,6 +245,7 @@ Vue.component('Cpeprovisioning', {
|
||||
...item,
|
||||
isDirty: false,
|
||||
isSaving: false,
|
||||
isCreatingRadius: false,
|
||||
pop_name: item.pop_name || 'N/A',
|
||||
owner_address: `${item.owner_street || ''} ${item.owner_housenumber || ''}, ${item.owner_zip || ''} ${item.owner_city || ''}`,
|
||||
owner_phone: item.owner_phone || '',
|
||||
@@ -296,36 +298,27 @@ Vue.component('Cpeprovisioning', {
|
||||
isVlanSelected(item) {
|
||||
return item.vlans && Object.values(item.vlans).some(v => v.checked);
|
||||
},
|
||||
createRadiusUser(item) {
|
||||
const message = {
|
||||
type: "INITIATE_CREATE_RADIUS_USER",
|
||||
payload: {
|
||||
customerName: item.customer,
|
||||
address: item.owner_full_address,
|
||||
servicePin: item.spin,
|
||||
routerMac: item.cpe_data.mac,
|
||||
customerNumber: item.owner_customer_number
|
||||
}
|
||||
};
|
||||
async createRadiusUser(item) {
|
||||
// Disable button during request
|
||||
this.$set(item, 'isCreatingRadius', true);
|
||||
|
||||
if (window.chrome && chrome.runtime && chrome.runtime.sendMessage) {
|
||||
try {
|
||||
chrome.runtime.sendMessage(this.extensionId, message, (response) => {
|
||||
if (chrome.runtime.lastError) {
|
||||
console.warn("Senden an Erweiterung fehlgeschlagen:", chrome.runtime.lastError.message);
|
||||
window.notify('warning', 'Daten konnten nicht an die Erweiterung gesendet werden. (Drücke STRG + ALT + E zum Konfigurieren)');
|
||||
} else {
|
||||
console.log("Erweiterung hat geantwortet:", response);
|
||||
window.notify('success', 'Radius Anlage an Erweiterung übergeben.');
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
console.error("Fehler beim Senden an die Erweiterung:", e);
|
||||
window.notify('error', 'Fehler beim Senden an die Erweiterung.');
|
||||
try {
|
||||
const { data } = await axios.post(window.TT_CONFIG.CPE_PROV_API_CREATE_RADIUS_USER_URL, {
|
||||
mac: item.cpe_data.mac
|
||||
});
|
||||
|
||||
if (data.success) {
|
||||
window.notify('success', `RADIUS User erfolgreich angelegt! Kundennr: ${data.data.customer_number}`);
|
||||
console.log('RADIUS User created:', data.data);
|
||||
} else {
|
||||
window.notify('error', data.message || 'Fehler beim Anlegen des RADIUS Users.');
|
||||
}
|
||||
} else {
|
||||
console.warn("Chrome Extension Messaging API nicht verfügbar.");
|
||||
window.notify('warning', 'Chrome Messaging API nicht gefunden.');
|
||||
} catch (error) {
|
||||
const errorMsg = error.response?.data?.message || 'Ein unerwarteter Fehler ist aufgetreten.';
|
||||
window.notify('error', errorMsg);
|
||||
console.error('Error creating RADIUS user:', error);
|
||||
} finally {
|
||||
this.$set(item, 'isCreatingRadius', false);
|
||||
}
|
||||
},
|
||||
async testAcsVlan(item) {
|
||||
|
||||
Reference in New Issue
Block a user