diff --git a/app/dashboard/views/alias_contact_manager.py b/app/dashboard/views/alias_contact_manager.py index 9df31ca8..15a1a353 100644 --- a/app/dashboard/views/alias_contact_manager.py +++ b/app/dashboard/views/alias_contact_manager.py @@ -51,6 +51,15 @@ def email_validator(): return _check +def user_can_create_contacts(user: User) -> bool: + if user.is_premium(): + return True + return ( + config.DISABLE_CREATE_CONTACTS_FOR_FREE_USERS + and user.flags & User.FLAG_FREE_DISABLE_CREATE_ALIAS > 0 + ) + + def create_contact(user: User, alias: Alias, contact_address: str) -> Contact: """ Create a contact for a user. Can be restricted for new free users by enabling DISABLE_CREATE_CONTACTS_FOR_FREE_USERS. @@ -74,9 +83,7 @@ def create_contact(user: User, alias: Alias, contact_address: str) -> Contact: if contact: raise ErrContactAlreadyExists(contact) - if config.DISABLE_CREATE_CONTACTS_FOR_FREE_USERS and ( - not user.is_premium() and user.flags & User.FLAG_FREE_DISABLE_CREATE_ALIAS > 0 - ): + if not user_can_create_contacts(user): raise ErrContactErrorUpgradeNeeded() contact = Contact.create( @@ -312,4 +319,5 @@ def alias_contact_manager(alias_id): last_page=last_page, query=query, nb_contact=nb_contact, + can_create_contacts=user_can_create_contacts(current_user), ) diff --git a/templates/dashboard/alias_contact_manager.html b/templates/dashboard/alias_contact_manager.html index 5061406c..a26370e4 100644 --- a/templates/dashboard/alias_contact_manager.html +++ b/templates/dashboard/alias_contact_manager.html @@ -64,7 +64,7 @@
Where do you want to send the email?
- {% if alias.user.is_premium() %} + {% if can_create_contacts %} {% else %}