Skip to content

Commit 73b18a8

Browse files
committed
feat: Require destination address for alias deletion
Modified the alias deletion process to require both the source and destination addresses. Changes include: - Updated backend API endpoint and logic for alias deletion. - Updated frontend service call, component logic, and confirmation message for alias deletion. - Removed unused translation key 'status' from account management.
1 parent ccb5afc commit 73b18a8

File tree

6 files changed

+22
-28
lines changed

6 files changed

+22
-28
lines changed

backend/dockerMailserver.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,12 +237,12 @@ async function addAlias(source, destination) {
237237
}
238238

239239
// Function to delete an alias
240-
async function deleteAlias(source) {
240+
async function deleteAlias(source, destination) {
241241
try {
242-
debugLog(`Deleting alias: ${source}`);
243-
await execSetup(`alias del ${source}`);
244-
debugLog(`Alias deleted: ${source}`);
245-
return { success: true, source };
242+
debugLog(`Deleting alias: ${source} => ${destination}`);
243+
await execSetup(`alias del ${source} ${destination}`);
244+
debugLog(`Alias deleted: ${source} => ${destination}`);
245+
return { success: true, source, destination };
246246
} catch (error) {
247247
console.error('Error deleting alias:', error);
248248
debugLog('Alias deletion error:', error);

backend/index.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,16 @@ app.post('/api/aliases', async (req, res) => {
107107
// Endpoint for deleting an alias
108108
app.delete('/api/aliases/:source', async (req, res) => {
109109
try {
110-
const { source } = req.params;
110+
const { source, destination } = req.params;
111111
if (!source) {
112112
return res.status(400).json({ error: 'Source is required' });
113113
}
114-
await dockerMailserver.deleteAlias(source);
115-
res.json({ message: 'Alias deleted successfully', source });
114+
115+
if (!destination) {
116+
return res.status(400).json({ error: 'Destination is required' });
117+
}
118+
await dockerMailserver.deleteAlias(source, destination);
119+
res.json({ message: 'Alias deleted successfully', source, destination });
116120
} catch (error) {
117121
res.status(500).json({ error: 'Unable to delete alias' });
118122
}

frontend/src/locales/en/translation.json

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
"password": "Password",
3636
"newPassword": "New Password",
3737
"confirmPassword": "Confirm Password",
38-
"status": "Status",
3938
"storage": "Storage Usage",
4039
"aliases": "Aliases",
4140
"actions": "Actions",
@@ -54,11 +53,7 @@
5453
"cannotCreateAccount": "Unable to create account. Please try again.",
5554
"cannotDeleteAccount": "Unable to delete account. Please try again.",
5655
"cannotUpdatePassword": "Unable to update password. Please try again.",
57-
"confirmDelete": "Are you sure you want to delete account {{email}}?",
58-
"status": {
59-
"active": "Active",
60-
"inactive": "Inactive"
61-
}
56+
"confirmDelete": "Are you sure you want to delete account {{email}}?"
6257
},
6358
"aliases": {
6459
"title": "Aliases Management",
@@ -79,7 +74,7 @@
7974
"aliasDeleted": "Alias deleted successfully!",
8075
"cannotCreateAlias": "Unable to create alias. Please try again.",
8176
"cannotDeleteAlias": "Unable to delete alias. Please try again.",
82-
"confirmDelete": "Are you sure you want to delete alias {{source}}?"
77+
"confirmDelete": "Are you sure you want to delete alias {{source}} => {{destination}}?"
8378
},
8479
"settings": {
8580
"title": "Settings",

frontend/src/locales/pl/translation.json

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
"password": "Hasło",
3636
"newPassword": "Nowe Hasło",
3737
"confirmPassword": "Potwierdź Hasło",
38-
"status": "Status",
3938
"storage": "Użycie Dysku",
4039
"aliases": "Aliasy",
4140
"actions": "Akcje",
@@ -54,11 +53,7 @@
5453
"cannotCreateAccount": "Nie można utworzyć konta. Spróbuj ponownie.",
5554
"cannotDeleteAccount": "Nie można usunąć konta. Spróbuj ponownie.",
5655
"cannotUpdatePassword": "Nie można zaktualizować hasła. Spróbuj ponownie.",
57-
"confirmDelete": "Czy na pewno chcesz usunąć konto {{email}}?",
58-
"status": {
59-
"active": "Aktywne",
60-
"inactive": "Nieaktywne"
61-
}
56+
"confirmDelete": "Czy na pewno chcesz usunąć konto {{email}}?"
6257
},
6358
"aliases": {
6459
"title": "Zarządzanie Aliasami",
@@ -79,7 +74,7 @@
7974
"aliasDeleted": "Alias został pomyślnie usunięty!",
8075
"cannotCreateAlias": "Nie można utworzyć aliasu. Spróbuj ponownie.",
8176
"cannotDeleteAlias": "Nie można usunąć aliasu. Spróbuj ponownie.",
82-
"confirmDelete": "Czy na pewno chcesz usunąć alias {{source}}?"
77+
"confirmDelete": "Czy na pewno chcesz usunąć alias {{source}} => {{destination}}?"
8378
},
8479
"settings": {
8580
"title": "Ustawienia",

frontend/src/pages/Aliases.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,10 @@ const Aliases = () => {
104104
}
105105
};
106106

107-
const handleDelete = async (source) => {
108-
if (window.confirm(t('aliases.confirmDelete', { source }))) {
107+
const handleDelete = async (source, destination) => {
108+
if (window.confirm(t('aliases.confirmDelete', { source, destination }))) {
109109
try {
110-
await deleteAlias(source);
110+
await deleteAlias(source, destination);
111111
setSuccessMessage('aliases.aliasDeleted');
112112
fetchData(); // Refresh the aliases list
113113
} catch (err) {
@@ -127,7 +127,7 @@ const Aliases = () => {
127127
variant="danger"
128128
size="sm"
129129
icon="trash"
130-
onClick={() => handleDelete(alias.source)}
130+
onClick={() => handleDelete(alias.source, alias.destination)}
131131
/>
132132
)
133133
}

frontend/src/services/api.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ export const addAlias = async (source, destination) => {
8383
}
8484
};
8585

86-
export const deleteAlias = async (source) => {
86+
export const deleteAlias = async (source, destination) => {
8787
try {
88-
const response = await api.delete(`/aliases/${source}`);
88+
const response = await api.delete(`/aliases/${source}/${destination}`);
8989
return response.data;
9090
} catch (error) {
9191
console.error('Error deleting alias:', error);

0 commit comments

Comments
 (0)