From 9d0d7e586cf37116990be2ed6715c77fa16577b9 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Tue, 15 Feb 2022 18:14:29 -0800 Subject: [PATCH] email: aliases: Drop ability to enable/disable aliases - There is no use case for keeping an alias disabled. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/email/aliases.py | 34 +++---------------- .../data/etc/postfix/freedombox-aliases.cf | 2 +- plinth/modules/email/forms.py | 23 +------------ .../email/templates/email-aliases.html | 4 --- plinth/modules/email/views.py | 8 +---- 5 files changed, 7 insertions(+), 64 deletions(-) diff --git a/plinth/modules/email/aliases.py b/plinth/modules/email/aliases.py index aeeb9163f..1df0c849d 100644 --- a/plinth/modules/email/aliases.py +++ b/plinth/modules/email/aliases.py @@ -4,7 +4,7 @@ import contextlib import pwd import sqlite3 -from dataclasses import InitVar, dataclass, field +from dataclasses import dataclass from plinth import actions @@ -13,11 +13,6 @@ from plinth import actions class Alias: value: str name: str - enabled: bool = field(init=False) - status: InitVar[int] - - def __post_init__(self, status): - self.enabled = (status != 0) @contextlib.contextmanager @@ -36,7 +31,7 @@ def _get_cursor(): def get(username): """Get all aliases of a user.""" - query = 'SELECT name, value, status FROM alias WHERE value=?' + query = 'SELECT name, value FROM alias WHERE value=?' with _get_cursor() as cursor: rows = cursor.execute(query, (username, )) return [Alias(**row) for row in rows] @@ -58,10 +53,10 @@ def exists(name): def put(username, name): """Insert if not exists a new alias.""" - query = 'INSERT INTO alias (name, value, status) VALUES (?, ?, ?)' + query = 'INSERT INTO alias (name, value) VALUES (?, ?)' with _get_cursor() as cursor: try: - cursor.execute(query, (name, username, 1)) + cursor.execute(query, (name, username)) except sqlite3.IntegrityError: pass # Alias exists, rare since we are already checking @@ -76,26 +71,6 @@ def delete(username, aliases): cursor.execute('COMMIT') -def enable(username, aliases): - """Enable a list of aliases.""" - return _set_status(username, aliases, 1) - - -def disable(username, aliases): - """Disable a list of aliases.""" - return _set_status(username, aliases, 0) - - -def _set_status(username, aliases, status): - """Set the status value of a list of aliases.""" - query = 'UPDATE alias SET status=? WHERE value=? AND name=?' - parameter_seq = ((status, username, name) for name in aliases) - with _get_cursor() as cursor: - cursor.execute('BEGIN') - cursor.executemany(query, parameter_seq) - cursor.execute('COMMIT') - - def first_setup(): """Create the database file and schema inside it.""" actions.superuser_run('email', ['aliases', 'setup']) @@ -106,7 +81,6 @@ BEGIN; CREATE TABLE IF NOT EXISTS alias ( name TEXT NOT NULL, value TEXT NOT NULL, - status INTEGER NOT NULL, PRIMARY KEY (name) ); COMMIT; diff --git a/plinth/modules/email/data/etc/postfix/freedombox-aliases.cf b/plinth/modules/email/data/etc/postfix/freedombox-aliases.cf index a9102cf90..8ae5d7992 100644 --- a/plinth/modules/email/data/etc/postfix/freedombox-aliases.cf +++ b/plinth/modules/email/data/etc/postfix/freedombox-aliases.cf @@ -1,4 +1,4 @@ # Do not edit this file. Manage your settings on FreedomBox. dbpath = /var/lib/postfix/freedombox-aliases/aliases.sqlite3 -query = SELECT value FROM alias WHERE name='%s' AND status=1 +query = SELECT value FROM alias WHERE name='%s' diff --git a/plinth/modules/email/forms.py b/plinth/modules/email/forms.py index 265bfa5dd..d23fe49e5 100644 --- a/plinth/modules/email/forms.py +++ b/plinth/modules/email/forms.py @@ -60,26 +60,5 @@ class AliasListForm(forms.Form): def __init__(self, aliases, *args, **kwargs): """Populate the choices for aliases.""" super().__init__(*args, **kwargs) - enabled_aliases = [(alias.name, alias.name) for alias in aliases - if alias.enabled] - disabled_aliases = [(alias.name, alias.name) for alias in aliases - if not alias.enabled] - choices = [] - if enabled_aliases: - choices.append((_('Enabled'), enabled_aliases)) - - if disabled_aliases: - choices.append((_('Disabled'), disabled_aliases)) - + choices = [(alias.name, alias.name) for alias in aliases] self.fields['aliases'].choices = choices - - def clean(self): - """Add the pressed button to cleaned data.""" - cleaned_data = super().clean() - buttons = [key[4:] for key in self.data if key.startswith('btn_')] - if len(buttons) != 1 or buttons[0] not in ('enable', 'disable', - 'delete'): - raise ValidationError('Invalid button pressed') - - cleaned_data['action'] = buttons[0] - return cleaned_data diff --git a/plinth/modules/email/templates/email-aliases.html b/plinth/modules/email/templates/email-aliases.html index 64773f089..3fd8ebfc1 100644 --- a/plinth/modules/email/templates/email-aliases.html +++ b/plinth/modules/email/templates/email-aliases.html @@ -20,10 +20,6 @@ {{ list_form|bootstrap }} - - diff --git a/plinth/modules/email/views.py b/plinth/modules/email/views.py index 9332dfbf2..3a8446c94 100644 --- a/plinth/modules/email/views.py +++ b/plinth/modules/email/views.py @@ -116,14 +116,8 @@ class AliasView(FormView): def _list_form_valid(self, form): """Handle a valid alias list form operation.""" aliases = form.cleaned_data['aliases'] - action = form.cleaned_data['action'] username = self.request.user.username - if action == 'delete': - aliases_module.delete(username, aliases) - elif action == 'disable': - aliases_module.disable(username, aliases) - elif action == 'enable': - aliases_module.enable(username, aliases) + aliases_module.delete(username, aliases) def _create_form_valid(self, form): """Handle a valid create alias form operation."""