Updated and fixes. v1.0.4
This commit is contained in:
@@ -107,12 +107,12 @@ def get_config():
|
||||
return {'mailcow_server': '', 'mailcow_api_key': ''}
|
||||
|
||||
def search_aliases(query):
|
||||
"""Search for aliases in local database"""
|
||||
"""Search for aliases in local database (matches from start of alias address only)"""
|
||||
conn = get_db_connection()
|
||||
cursor = conn.cursor()
|
||||
search_term = '%' + query + '%'
|
||||
cursor.execute('SELECT alias, goto FROM aliases WHERE alias LIKE ? OR goto LIKE ?',
|
||||
(search_term, search_term))
|
||||
search_term = query + '%' # Match from start only
|
||||
cursor.execute('SELECT alias, goto FROM aliases WHERE alias LIKE ?',
|
||||
(search_term,))
|
||||
results = cursor.fetchall()
|
||||
conn.close()
|
||||
return results
|
||||
@@ -384,3 +384,37 @@ def change_password(old_password, new_password):
|
||||
conn.close()
|
||||
|
||||
return True
|
||||
|
||||
def delete_multiple_aliases(alias_list):
|
||||
"""
|
||||
Delete multiple aliases in one operation
|
||||
|
||||
Args:
|
||||
alias_list: List of alias email addresses to delete
|
||||
|
||||
Returns:
|
||||
Dictionary with:
|
||||
- success_count: Number of successfully deleted aliases
|
||||
- failed_count: Number of failed deletions
|
||||
- failed_aliases: List of dicts with 'alias' and 'error' for each failure
|
||||
"""
|
||||
success_count = 0
|
||||
failed_count = 0
|
||||
failed_aliases = []
|
||||
|
||||
for alias in alias_list:
|
||||
try:
|
||||
delete_alias(alias)
|
||||
success_count += 1
|
||||
except Exception as e:
|
||||
failed_count += 1
|
||||
failed_aliases.append({
|
||||
'alias': alias,
|
||||
'error': str(e)
|
||||
})
|
||||
|
||||
return {
|
||||
'success_count': success_count,
|
||||
'failed_count': failed_count,
|
||||
'failed_aliases': failed_aliases
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user