Skip to content

User & Email Queue overrides

Capture User lifecycle customization and Email Queue deletion policy.

  • leekimerp/leekimerp/override/user.pyOverrideUser(User)
  • leekimerp/leekimerp/override/email_queue.pyOverrideEmailQueue(EmailQueue) + has_role
MethodBehavior
validate_email_typeSkips parent email validation when email == self.name
validateCalls super().validate(); requires username and email; for new users or invalid name as email, sets name = username
validate_renameBlocks renaming Administrator / Guest; skips email validation for non-email new names
after_renameSets username to new name; preserves email; updates owner / modified_by across tables (large loop over DB tables)

Risk: after_rename iterates all tables — performance impact on rename in large databases.

MethodBehavior
on_trashCalls prevent_email_queue_delete
prevent_email_queue_deleteAllows delete only if user is Administrator or has System Manager role
  • Standard User and Email Queue DocType actions in Desk
  • frappe.core.doctype.user.user.User, frappe.email.doctype.email_queue.email_queue.EmailQueue
  • Email Queue cleanup: only Admins/System Managers can delete rows — align with support procedures.