From b0e460b433fbbaf4ae5874d2d1bf0155c0f8535e Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Wed, 13 Oct 2021 16:26:43 -0700 Subject: [PATCH] email_server: aliases: Add method for checking of an alias is taken Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/email_server/aliases/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/plinth/modules/email_server/aliases/__init__.py b/plinth/modules/email_server/aliases/__init__.py index fb391945b..7f3d4e8c8 100644 --- a/plinth/modules/email_server/aliases/__init__.py +++ b/plinth/modules/email_server/aliases/__init__.py @@ -55,6 +55,20 @@ def get(uid_number): return result +def exists(email_name): + """Return whether alias is already taken.""" + try: + pwd.getpwnam(email_name) + return True + except KeyError: + pass + + with db_cursor() as cur: + query = 'SELECT COUNT(*) FROM Alias WHERE email_name=?' + cur.execute(query, (email_name, )) + return cur.fetchone()[0] != 0 + + def put(uid_number, email_name): s = """INSERT INTO Alias(email_name, uid_number, status) SELECT ?,?,? WHERE NOT EXISTS(