Commit Graph

1456 Commits

Author SHA1 Message Date
Son NK 7e425c0338 disable login if user is disabled 2020-10-04 12:49:43 +02:00
Son NK 6c37a91c6d add User.disabled field 2020-10-04 12:49:43 +02:00
Son NK e225bffc30 add backref for some models 2020-10-04 12:49:43 +02:00
Son Nguyen Kim 73e90e6892
Merge pull request #298 from TheLastProject/feature/autogenerated_icon
Show icon if address was autogenerated
2020-10-03 10:54:41 +02:00
Sylvia van Os ff0eaa4bbf Show icon if address was autogenerated 2020-10-02 20:52:29 +02:00
Sylvia van Os 7be674c13b Reformat with Black 2020-10-01 21:51:50 +02:00
Sylvia van Os d8ed1cbbc3 Dedupe email address 2020-10-01 21:35:11 +02:00
Son NK cbdcab7d24 handle the ValueError in SpamAssassin 2020-09-30 17:24:03 +02:00
Son NK 770b15aba3 do not hardcode spamd user 2020-09-30 14:01:49 +02:00
Son NK 6a4622fca9 replace cx42 by spamd for SpamAssassin
get rid of "info: spamd: handle_user (userdir) unable to find user: 'cx42'" error
2020-09-30 12:47:39 +02:00
Son NK 772a2e7355 add "export alias" button 2020-09-30 12:20:18 +02:00
Son NK 8ed619687f ignore UnicodeDecodeError when parsing SpamAssassin response 2020-09-30 12:00:05 +02:00
Son NK 8517e7d356 refactor com emails: remove non-uses, move to the right location 2020-09-30 11:51:43 +02:00
Son Nguyen Kim 4e7aec7dce
Merge pull request #293 from TheLastProject/patch-1
Add dot after DKIM
2020-09-30 11:09:01 +02:00
Son NK 91e3cc5dcb able to set a different host than 127.0.0.1 and apply black format 2020-09-30 10:32:21 +02:00
Son NK 078368362c copy spamassassin client code from https://github.com/petermat/spamassassin_client 2020-09-30 10:29:52 +02:00
Sylvia van Os b95c44e3db
Add dot after DKIM
To prevent the domain name being added after it
2020-09-29 19:17:56 +02:00
Son NK e661f90ce7 do not hard exit when memory exceeds the threshold 2020-09-29 12:33:36 +02:00
Son NK 571e39bb30 user can add/remove authorized address 2020-09-28 21:09:20 +02:00
Son NK 0830bba218 Add AuthorizedAddress model 2020-09-28 17:40:54 +02:00
Son NK d6d686c4c3 add argument commit= to create() 2020-09-28 17:40:30 +02:00
Son NK 53f66d0f3c handle the "past due" subscription case: downgrade a subscription if it's renewed 2020-09-24 09:34:35 +02:00
Son NK f274bac053 fix typo 2020-09-23 19:36:54 +02:00
Son NK d81ad2fd12 sanitize mailbox before creating: remove empty space 2020-09-17 17:02:50 +02:00
Son NK 4b697fc897 parseaddr_unicode: handle case where name is bytes 2020-09-16 17:34:33 +02:00
Son NK 03dfafe1cf handle linebreak in parseaddr_unicode 2020-09-16 17:28:01 +02:00
Son NK 5480f6d35b handle case highlight_id is not int 2020-09-14 19:54:00 +02:00
Son NK 40892f8253 contact email can contain whitespace 2020-09-14 18:21:30 +02:00
Son NK 299f7d3fba remove unnecessary sanitize 2020-09-14 17:58:15 +02:00
Son NK 491f4de120 add Contact mail_from and from_header column 2020-09-14 17:55:55 +02:00
Son NK ed2e748d1e sanitize envelope mail_from and rcpt_tos 2020-09-14 17:30:01 +02:00
Son NK c48b5038f3 sanitize rcpt_to in greylisting_needed 2020-09-14 12:20:16 +02:00
Son NK 18263c2fd5 handle case alias already created in try_auto_create_catch_all_domain() 2020-09-14 12:18:15 +02:00
Son NK e291a71037 fix duplicate contact on contact page 2020-09-14 11:38:01 +02:00
Son NK 1026f0763d fix wording 2020-09-12 14:57:33 +02:00
Son NK c6eba9f125 improve welcome email 2020-09-12 14:34:32 +02:00
Son NK 3545ae7d97 improve intro 2020-09-12 14:32:55 +02:00
Son NK 2cfaa93a5f create a first alias to receive SimpleLogin newsletter when user is created 2020-09-12 14:31:31 +02:00
Son NK 8fe508c5d3 Add User.newsletter_alias_id column 2020-09-12 14:30:49 +02:00
Son NK c625a178e8 use RequestException instead of ConnectionError 2020-09-11 16:55:32 +02:00
Son NK 76175dc517 update batch import wording 2020-09-11 16:49:39 +02:00
Son NK f664243e42 add batch-import page 2020-09-10 20:14:55 +02:00
Son NK 6da48298a6 Add BatchImport model 2020-09-10 20:05:25 +02:00
Son NK a660a05f83 use warning for problem with random alias default domain 2020-09-10 09:32:51 +02:00
Son NK a0b50762ee remove "how to use" on custom domain page 2020-09-08 13:51:46 +02:00
Son NK 7b6e58ef95 always show the "how to send email" help 2020-09-08 13:51:00 +02:00
Son NK d1eb1ea799 handle case apple server not accessible 2020-09-05 20:56:03 +02:00
Son NK 5cf0a4bcfe handle case alias can be None in toggle_alias 2020-09-05 20:54:08 +02:00
Son NK 2d395f99bb make sure to remove whitespace in alias 2020-09-02 09:56:16 +02:00
Son NK 6629b8687b set cookie setup_done=true on the setup_done page 2020-09-01 20:47:57 +02:00
Son NK 4cb3e54821 send at max 1 email / 30 days for DNS issue on custom domain 2020-08-31 17:36:27 +02:00
Son NK 85b87bbacb improve send_email_with_rate_control to use on any day range 2020-08-31 17:32:46 +02:00
Son NK e4c4797cdb do not mark a domain as unverified if it fails the MX check 2020-08-31 17:11:18 +02:00
Son NK 63e228d9f4 only alert on invalid mailbox that has too many email logs 2020-08-30 19:59:39 +02:00
Son NK 77c67c5314 create aliases_for_mailbox() and nb_email_log_for_mailbox() 2020-08-30 19:56:45 +02:00
Son NK e117726cd9 send alert email when a mailbox is an email alias 2020-08-30 19:06:50 +02:00
Son NK ffc59a6fad Add check_custom_domain cronjob 2020-08-29 19:05:32 +02:00
Son NK a3d919db2e take into account mailbox in alias search 2020-08-29 19:03:33 +02:00
Son NK 37a53757eb add send_email_at_most_times 2020-08-27 10:43:30 +02:00
Son NK fdedc24358 black new version 2020-08-27 10:20:48 +02:00
Son NK 9c72f4dec0 Add Alias.disable_email_spoofing_check column 2020-08-26 14:39:03 +02:00
Son NK 4101142253 black 2020-08-26 11:45:24 +02:00
Son NK f213469e9f display nb-reply, nb-forward on alias contact page 2020-08-26 11:45:07 +02:00
Son NK cd687664d1 fix email template 2020-08-25 13:03:34 +02:00
Son NK ab911fd55e do not forward cycle email: email sent to alias from its mailbox 2020-08-25 12:51:19 +02:00
Son Nguyen Kim 637bc569eb
Merge pull request #260 from FabioWidmer/improvements-1
Improvements for Self Hosting & More
2020-08-24 20:16:59 +02:00
Son NK 9237f43c19 use warning log level for tampered alias 2020-08-24 19:58:21 +02:00
Son NK 17c7303fb5 add get_header_from_bounce() 2020-08-24 10:17:22 +02:00
Son NK eb6647d62e fix 2020-08-23 20:24:46 +02:00
Son NK 77bfa67402 fix delete_alias: do not use IntegrityError 2020-08-23 20:17:50 +02:00
Fabio Widmer 6a45010740
Remove secret variables from Jinja 2020-08-22 18:38:44 +02:00
Son NK ef196c5b4a use 5.5 as max spam score 2020-08-22 16:58:51 +02:00
Son NK 00a08d898a refactor: do not use latest_activity in subquery 2020-08-21 23:10:23 +02:00
Son NK d7583f1733 handle case where alias does not have any activity in get_alias_infos_with_pagination_v3 2020-08-21 20:39:18 +02:00
Son NK 30fe09185f create get_alias_infos_with_pagination_v3 - reduce nb queries used in get_alias_infos_with_pagination_v2 2020-08-21 19:51:48 +02:00
Son NK dc8c2f403e try to fix Message.as_bytes() by trying different policies 2020-08-21 12:01:11 +02:00
Son NK c77b0c07b4 fix alias sorting 2020-08-20 10:11:41 +02:00
Son NK b8e0ee424c pass userId to Paddle 2020-08-20 09:44:45 +02:00
Son NK 7e345e4db3 fix typo 2020-08-19 10:03:07 +02:00
Son NK 7f34dc1a20 remove auto email fill-up on paddle 2020-08-19 09:22:54 +02:00
Fabio Widmer aa18b7ecd1
Add variables to Jinja 2020-08-18 08:47:41 +02:00
Fabio Widmer 28dbafe1f7
Hide deprecated social login if not used 2020-08-16 12:57:12 +02:00
Son NK 0c6a5f4333 add EmailLog.spam_score column 2020-08-16 11:59:53 +02:00
Son NK 359eec23c0 take into account spam email during reply phase on refused email page 2020-08-15 16:58:11 +02:00
Son NK f9300009e5 refactor: rename forward -> contact 2020-08-15 16:56:16 +02:00
Son NK bf555ed605 detect spam in reply phase 2020-08-15 16:53:57 +02:00
Son NK 08db23658a add SPAMASSASSIN_HOST param 2020-08-15 16:33:48 +02:00
Son NK c0f263ee70 add Monitoring model 2020-08-15 13:15:20 +02:00
Son NK d8e4396a70 add HOST param 2020-08-14 19:09:45 +02:00
Fabio Widmer fbb17b1f57
Fix email_utils.py formatting 2020-08-14 16:50:59 +02:00
Fabio Widmer 9fa9dbe821
Fix email_utils.py formatting 2020-08-14 16:30:43 +02:00
Fabio Widmer 9226492f83
More self hosting improvements 2020-08-14 16:23:29 +02:00
Son NK 89830e2173 fix import 2020-08-14 12:06:26 +02:00
Son NK 6bc0c5ada4 fix Mailbox.delete: use alias_utils.delete_alias 2020-08-14 12:03:41 +02:00
Son NK b4eb110971 fix Directory.create: use alias_utils.delete_alias 2020-08-14 12:02:54 +02:00
Son NK 2cae0200a8 use delete_alias(alias,user) instead of Alias.delete, DomainDeletedAlias.create, DeletedAlias.create 2020-08-14 12:02:33 +02:00
Son NK 4434ad62dd handle the case 2 users want to use the same email address 2020-08-13 11:00:48 +02:00
Son NK b7cbaa6e84 delete the expired ChangeEmail object 2020-08-13 10:59:39 +02:00
Fabio Widmer 8e71e8e7f4
A few (self hosting) improvements 2020-08-12 16:12:41 +02:00
Fabio Widmer d0ed69f8aa
Add Plausible Analytics support 2020-08-12 15:24:34 +02:00
Son NK b395c2ebd0 use warning log for FIDO error 2020-08-12 12:48:51 +02:00
Son NK 9def7df974 also search for PGP key in contact 2020-08-08 10:26:24 +02:00
Son NK 8a11e42da9 notify admin when user cancels 2020-08-07 10:01:11 +02:00
Son NK c74857c7e7 use alias name when searching 2020-08-07 09:56:44 +02:00
Son NK 2f00294ba3 replace pgp_enabled by disable_pgp 2020-08-06 14:22:28 +02:00
Son NK 1f0ef13ff2 do not require user to re-enter TOTP code when cancelling TOTP 2020-08-05 12:30:56 +02:00
Son NK f17608df50 add link back to home page in recovery page 2020-08-05 12:28:20 +02:00
Son NK 6cb589350b avoid adding a built-in domain as custom domain 2020-08-04 21:07:45 +02:00
Son NK a3051b3d45 black 2020-08-04 20:12:15 +02:00
Son NK b3ca7d1d5b Return pgp_enabled in GET /api/v2/aliases 2020-08-04 20:11:59 +02:00
Son NK 03841693ba Return support_pgp in GET /api/v2/aliases 2020-08-04 20:09:42 +02:00
Son NK f2fb599664 Optimize Alias.get_contacts() to retrieve the latest reply for each contact in a single query 2020-08-04 11:37:59 +02:00
Son NK 918b18870f show mailboxes that a catch-all alias belongs to 2020-08-01 12:41:48 +02:00
Son NK 41e2283d93 domain catch-all alias belongs to domain mailboxes 2020-08-01 12:31:43 +02:00
Son NK f5bc166f39 able to choose mailboxes for a domain 2020-08-01 12:31:02 +02:00
Son NK ec8f120085 small fixes in directory.py 2020-08-01 12:22:52 +02:00
Son NK e8fc9752b5 Add DomailMailbox model 2020-08-01 12:20:59 +02:00
Son NK ed22f5116f fix api key counter not correctly incremented 2020-08-01 10:14:59 +02:00
Son NK 68eeb2e121 add rel="noopener" for target="_blank" link 2020-07-30 10:09:10 +02:00
Son NK efe1ab641f add hCaptcha check 2020-07-23 12:43:55 +02:00
Son NK 307e3c93c6 Add HCAPTCHA_SECRET, HCAPTCHA_SITEKEY param 2020-07-23 12:40:50 +02:00
Son NK 38a6bcc461 add warning log 2020-07-23 11:32:11 +02:00
Son NK d89e41d0e5 use user.max_spam_score if present 2020-07-23 11:11:43 +02:00
Son NK 8e9968a7d9 Add User.max_spam_score column 2020-07-23 11:09:28 +02:00
Son NK 6437ee46e0 use LOG.exception instead of LOG.error to provide stacktrace 2020-07-17 12:59:07 +02:00
Son NK 7f29756230 do not hardcode oauth urls 2020-07-16 23:48:47 +02:00
Son NK 515b3510a8 use warning when user is out of quota 2020-07-15 19:14:37 +02:00
Son NK 8f17cda794 use warning error for alias expiration error 2020-07-13 20:40:26 +02:00
Son NK 28c96d0d35 return 412 when alias ceration time is expired 2020-07-11 19:23:56 +02:00
Son NK 1bbc416ec1 fix the case public domain is also a custom domain for a specific user: check for public domain first. 2020-07-05 11:45:00 +02:00
Son NK f9cb40aa5b user can choose a random alias domain in a list of public domains 2020-07-04 23:29:06 +02:00
Son NK 4b479ea003 take into account user.default_random_alias_public_domain_id in create_new_random() 2020-07-04 23:27:02 +02:00
Son NK 4542a8353e add User.available_domains_for_random_alias(), default_random_alias_domain() 2020-07-04 23:24:32 +02:00
Son NK 955231199e Add User.default_random_alias_public_domain_id 2020-07-04 23:23:39 +02:00
Son NK ee9b796b7d Add PublicDomain model 2020-07-04 23:18:11 +02:00
Son NK 4cd0227477 refactoring: move model methods below fields 2020-07-04 22:46:09 +02:00
Son NK 5ed39b47ca add setup-done page 2020-07-04 19:42:48 +02:00
Son NK d59e9a6238 use warning level for apple server issue 2020-07-04 18:24:34 +02:00
Son NK d0776b770f add GET /api/logout 2020-07-04 12:10:04 +02:00
Son NK 0d3a3e0c48 Create POST /api/api_key 2020-07-04 11:41:31 +02:00
Son NK 5b3ec91300 login user in api auth endpoints 2020-07-04 10:39:38 +02:00
Son NK df96773959 show nb paid user on referral page 2020-07-02 08:48:59 +02:00
Son NK 96ac15a3e0 add user.is_paid() and referral.nb_paid_user() 2020-07-02 08:48:37 +02:00
Son NK 40b4273111 take into account /verifyReceipt can return 5** 2020-06-30 20:10:12 +02:00
Son NK c41bffbbae refactor: use SESSION_COOKIE_NAME instead of hardcoding "slapp" 2020-06-28 21:17:18 +02:00
Son NK b23259cacd add Mailbox.nb_failed_checks 2020-06-28 11:17:36 +02:00
Son NK ec0f5ccd3a only return verified mailbox in alias.mailboxes 2020-06-28 11:15:29 +02:00
Son NK 204f5f9a0c fix alias can be none in delete alias endpoint 2020-06-28 09:48:21 +02:00
Son NK 02bd45bc4a fix alias can be none in update alias endpoint 2020-06-28 09:48:21 +02:00
Son NK b2f82ba4a8 use custom domain to generate a random alias if user enables this option 2020-06-25 13:05:25 +02:00
Son NK abe9768db4 user can update the random alias domain 2020-06-25 13:04:27 +02:00
Son NK 040c6d1f9e add User.default_random_alias_domain_id 2020-06-25 13:02:43 +02:00
Son NK c91b44fa97 set rate limit to 5/minute on new alias routes 2020-06-24 10:32:22 +02:00
Son NK 774ffcae3b enable CORS on /api endpoints 2020-06-24 10:30:01 +02:00
Son NK 45a8b360e4 handle case where alias is None 2020-06-19 23:44:16 +02:00
Son NK ee6a1a672d fix POST /v2/alias/custom/new when DISABLE_ALIAS_SUFFIX is set 2020-06-15 23:35:20 +02:00
Son NK 1a22d0cf9b fix domain can be null in self-hosting
# Conflicts:
#	app/api/views/new_custom_alias.py
#	app/dashboard/views/custom_alias.py
2020-06-15 15:58:05 +02:00
Son NK 4906d3a4a8 add more logging in email_domain_can_be_used_as_mailbox 2020-06-14 12:00:02 +02:00
Son NK 5705842415 add email_utils.copy() 2020-06-12 00:02:07 +02:00
Son NK 1dc2e9c54f fix retry pgp 2020-06-12 00:01:21 +02:00
Son NK 4ee38823b8 make sure to strip and lower email 2020-06-11 23:35:24 +02:00
Son NK cadbe7d32b order alias.mailboxes 2020-06-10 22:32:00 +02:00
Son NK 9e2f1c5f9f try to load the public key if encrypt fails for 1st time 2020-06-10 22:28:15 +02:00
Son NK d0c65ea378 send transactional email from SENDER if set 2020-06-10 13:55:47 +02:00
Son NK 9abfa3e98c Add new param SENDER, SENDER_DIR 2020-06-10 13:54:42 +02:00
Son NK b47d95226d generate html from plaintext if not set 2020-06-10 12:18:39 +02:00
Son NK 0c4e48c906 remove bounced_email param from send_email_with_rate_control 2020-06-10 12:17:04 +02:00
Son NK da7b46ef97 remove bounced_email param from send_email 2020-06-10 12:15:57 +02:00
Son NK dfe708b4fb return user email in /api/auth/mfa 2020-06-09 17:20:37 +02:00
Son NK 0002531bc0 return user email in /api/auth/login 2020-06-09 17:19:03 +02:00
Son NK 1101ba5afa add Mailbox.nb_email_log and aliases 2020-06-09 17:02:45 +02:00
Son NK 582a971b80 remove pgp retry mechanism 2020-06-08 23:05:35 +02:00
Son NK e988573cb4 hard exit when memory is more than 300MB 2020-06-08 13:53:27 +02:00
Son NK d85b32d56f prettify contact manager page 2020-06-07 13:41:59 +02:00
Son NK 08f4891492 use breadcrumb for contact header 2020-06-07 13:41:59 +02:00
Son NK 6cccb450b0 fix contact order on alias contact manager page 2020-06-07 13:41:59 +02:00
Son NK 7b2d86552b fix popup display when edit contact 2020-06-07 13:41:59 +02:00
Son NK f708ee6bb2 improve wordings in alias contact manager page 2020-06-07 13:41:59 +02:00
Son NK afe975b8c3 User can add PGP key to for a contact 2020-06-07 13:40:24 +02:00
Son NK c593253c7d Add pgp_public_key,pgp_finger_print columns to Contact model 2020-06-07 13:40:24 +02:00
Son Nguyen Kim 49a81db951
Merge pull request #223 from simple-login/pgp-fix
Fix intermitten PGP errors
2020-06-07 13:38:37 +02:00
Son NK ce4992c7fb check if alias exists 2020-06-07 12:50:30 +02:00
Son NK 16df2acb29 stop the email handler process when PGP error 2020-06-07 11:41:35 +02:00
Son NK 123f3583fd log memory usage in encrypt_file() 2020-06-07 10:23:36 +02:00
Son NK c8cd066d25 try encrypt again if fail 2020-06-06 23:06:34 +02:00
Son NK e5b60d9251 prettify directory page 2020-06-05 23:25:37 +02:00
Son NK 83e540d1d4 Create directory alias with directory mailboxes 2020-06-05 22:30:32 +02:00
Son NK bc01479a72 user can update directory mailboxes 2020-06-05 22:13:35 +02:00
Son NK 18b530fe6f Able to set mailboxes when creating directory 2020-06-05 22:12:21 +02:00
Son NK 8161d89c39 Create DirectoryMailbox model 2020-06-05 22:08:08 +02:00
Son NK 9603683c18 log the failed encrypted content to debug 2020-06-05 10:10:21 +02:00
Son NK 50a7442d02 update notification email 2020-06-03 21:37:44 +02:00
Son NK ecab3ea6ed take into account the case premium user obtains a lifetime license
- do not show subscription expired date
- show lifetime plan message on settings page
2020-06-03 21:32:15 +02:00
Son NK 9fc0748fcc Support setting alias name in POST /api/v3/alias/custom/new 2020-06-03 21:22:29 +02:00
Son NK d76aad3f17 format 2020-06-03 20:05:05 +02:00
Son NK 89dd8663ce fix alias is None 2020-06-03 20:04:54 +02:00
Son NK acac06188c fix mailbox.nb_alias(): take into account multiple mailboxes per alias case 2020-06-03 09:06:38 +02:00
Son NK 48dc0dd1cc change mailboxes to mailbox_ids 2020-06-02 20:06:32 +02:00
Son NK d055989239 Create POST /api/v3/alias/custom/new 2020-06-02 09:33:56 +02:00
Son NK b356ea1b28 force convert header to string, sometimes addrs is Header object 2020-06-01 21:14:23 +02:00