Commit Graph

496 Commits

Author SHA1 Message Date
Guo Xiang Tan 5734c7f3f3 FIX: Don't send rejection mailer to bounced emails. 2016-04-07 22:21:17 +08:00
Sam a130cb8305 FEATURE: move more urgent emails notifications to critical queue
Move signup, admin login and password change email notifications
to critical queue
2016-04-07 14:39:01 +10:00
Sam 8ec7fd84fd FEATURE: prioritize sidekiq jobs
This commit introduces 3 queues for sidekiq

"critical" for urgent jobs (weighted at 4x weight)
"default" for standard jobs(weighted at 2x weight)
"low" for less important jobs


"critical jobs"

Reset Password emails has been seperated to its own job
Heartbeat which is required to keep sidekiq running
Test email which needs to return real quick


"low priority jobs"

Notify mailing list
Pull hotlinked images
Update gravatar

"default"

All the rest

Note: for people running sidekiq from command line use

bin/sidekiq -q critical,4 -q default,2 -q low
2016-04-07 12:56:43 +10:00
Régis Hanol 79639e2dec FIX: ensure group's users counters are kept in sync 2016-04-04 17:03:18 +02:00
Régis Hanol 9e9c81c30b improve error log when timing out while connecting to mail server 2016-03-25 16:44:08 +01:00
Régis Hanol 39863953cd new 'enable_staged_users' site setting 2016-03-23 18:56:03 +01:00
Sam c095304d6d FEATURE: limit daily emails per user to 100 per day via site setting
- controlled via max_emails_per_day_per_user, 0 to disable
- when limit is reached user is warned
2016-03-23 15:08:48 +11:00
Sam a202ec2028 don't run mailing list if mailing list mode is disabled 2016-03-22 14:50:35 +11:00
Régis Hanol 9c61f45bf9 FIX: properly handle failure in poll mailbox job 2016-03-21 18:49:01 +01:00
Sam Saffron 433fa74d87 FIX: ensure consistency of user options
Edge case during upgrade can cause accounts registered after migration
prior to restart to have missing user option records
2016-03-17 10:03:56 +11:00
Régis Hanol 162fcb75da FEATURE: admin dashboard check when email polling errored in the past 24 hours 2016-03-16 21:17:48 +01:00
Régis Hanol 4a3cb4a000 FIX: use MD5 of the email_string when there's no 'Message-Id' 2016-03-14 18:18:58 +01:00
Robin Ward 5771d2aee2 SECURITY: Support for confirm old as well as new email accounts 2016-03-08 14:52:22 -05:00
Régis Hanol 622d804d46 FEATURE: Add rejection message on rejected IncomingEmail
FIX: Better RateLimit description in rejected IncomingEmail
FEATURE: Send email when hitting a rate limit
2016-03-07 16:56:17 +01:00
Arpit Jalan 05288144b5 FIX: export user list based on trust level filter 2016-03-07 18:49:31 +05:30
Guo Xiang Tan bc4087b9bb FIX: RSS description might be `nil`. 2016-03-07 17:42:17 +08:00
Régis Hanol 05f0db0a20 FIX: don't use `destroy_all` when `delete_all` is enough 2016-03-05 00:41:22 +01:00
Neil Lalonde c1aea91d63 FEATURE: More digest email frequency options. Digests can be sent as often as every 30 minutes. 2016-03-02 15:43:47 -05:00
Guo Xiang Tan f89e9024ba FIX: Topic and Post may be `nil`. 2016-02-24 16:27:28 +08:00
Neil Lalonde e8d837269b FEATURE: pending flags reminder is sent as a group message to staff instead of sending an email to the contact email site setting. 2016-02-19 15:21:18 -05:00
Sam 3de390c067 quote fields in case they are still in the db 2016-02-19 13:57:07 +11:00
Sam f0e942f647 PERF: move 3 more option columns out of the user table 2016-02-18 16:57:22 +11:00
Sam 3829c78526 PERF: shift most user options out of the user table
As it stands we load up user records quite frequently on the topic pages,
this in turn pulls all the columns for the users being selected, just to
discard them after they are loaded

New structure keeps all options in a discrete table, this is better organised
and allows us to easily add more column without worrying about bloating the
user table
2016-02-17 18:08:25 +11:00
Régis Hanol bf96025507 link email logs to the post that generate the email notification when available 2016-02-16 16:35:57 +01:00
Régis Hanol 4ad5660615 add slightly more logs when skipping email notifications 2016-02-15 17:53:07 +01:00
Régis Hanol 40b099f1a6 FIX: keep whitespaces when replacing direct link to external images with local images 2016-02-15 12:34:45 +01:00
Neil Lalonde 06c9e79984 FIX: pending flags reminder email was ignoring the 'notify about flags after' site setting. 2016-02-12 14:33:23 -05:00
Régis Hanol cad7fc1062 FIX: don't allow blocked user to send emails in 2016-02-11 10:39:57 +01:00
Régis Hanol 460665895c properly name purge emails/email logs site settings 2016-02-08 22:18:52 +01:00
Régis Hanol ac863bab91 FEATURE: new 'suppress_email_logs_after_days' site setting 2016-02-08 18:47:35 +01:00
Régis Hanol 62cd6a4122 Merge pull request #3995 from devonestes/reducing-duplication-csv-export
Reducing duplication and string allocation in Jobs::ExportCsvFile
2016-02-06 11:10:21 +01:00
Régis Hanol ea0e63b150 FIX: handle cases where we only pass the notification type rather than the notification id when sending user email 2016-02-05 20:07:30 +01:00
Devon Estes 0aa59956fa Extract method refactoring in Jobs::ExportCsvFile
I was combing through some of the files with worse grades on Code Climate as a guide for places where I could jump in and help, and I saw this as one of the ones in need of some love. I reduced duplication in the #user_list_export method by extracting several methods that were common to both branches of the logic in that method.
2016-02-05 16:47:15 +01:00
Arpit Jalan eec8436cfe FEATURE: filter admin reports via user group 2016-02-04 11:23:49 +05:30
Régis Hanol 7d992cb4c5 FIX: sending emails to mailing list subscribers wasn't working 2016-02-03 19:27:58 +01:00
Régis Hanol 8608b5cbc1 FIX: don't poll the mailbox in development 2016-02-01 16:56:32 +01:00
Régis Hanol 96380bfd38 FIX: only create 1 email_log when an email is sent 2016-01-29 16:49:49 +01:00
Régis Hanol d51019ee53 FIX: *always* create an EmailLog whenever we run the UserEmail job
There were actually 2 bugs:

1/ Calling '.try(:key)' on a hash doesn't work. So EmailLogs were never associated to a user.

2/ Turns out that we update the 'user.last_emailed_at' whenever we create an EmailLog (in the 'after_create' callback).
So we need to always create an EmailLog (whenever the email is sent or skipped).
2016-01-28 19:01:35 +01:00
Sam 1bb485fca5 FIX: when a user got multiple replies to a topic, emails were missing 2016-01-27 12:20:08 +11:00
Régis Hanol 3083657358 FEATURE: better email in support
FEATURE: new incoming_email model
FEATURE: infinite scrolling in emails admin
FEATURE: new 'emails:import' rake task
2016-01-19 00:57:55 +01:00
Régis Hanol 8b0ffd9a88 don't bother iterating over disabled badges 2016-01-18 21:41:12 +01:00
Régis Hanol 737c606710 FIX: 'cancel_scheduled_job' wasn't working due to sidekiq upgrade 2016-01-13 09:08:26 +01:00
Régis Hanol fbacaab2fc FIX: disable scheduled jobs when in readonly mode 2016-01-11 18:31:28 +01:00
Sam Saffron 426299d261 FEATURE: upgrade to Sidekiq 4 2016-01-01 15:40:31 +11:00
Régis Hanol 4bb31daa2e FIX: when getting a reply by email, ensure it's by the same user 2015-12-16 00:43:05 +01:00
Régis Hanol 93d1cc6294 add support for incoming emails in CC/BCC fields 2015-12-10 23:49:16 +01:00
Sam 1f7c03df5c FIX: missing email notifications for group mentions 2015-12-01 12:12:55 +11:00
Régis Hanol 0d54c18c8b new hidden 'allow_staged_accounts' setting 2015-11-26 18:31:23 +01:00
Arpit Jalan 2eba00a326 FIX: user archive url field should have absolute URLs 2015-11-25 15:13:15 +05:30
Neil Lalonde 523138f1fd FEATURE: add setting pending_users_reminder_delay to configure when to send reminders to moderators about user approvals based on how long new users have been waiting 2015-11-20 16:06:07 -05:00
Neil Lalonde 5597957cc6 FIX: don't send repeat notifications to moderators about the same pending approval users 2015-11-20 16:06:07 -05:00
Robin Ward 3720783c1b Refactor to our own Discourse I18n backend
This removes some monkey patches and makes testing easier.
It will also support database backed I18n changes.
2015-11-13 16:35:02 -05:00
Régis Hanol 3c2486e2ba FIX: compare UTC dates to schedule backups 2015-11-12 18:35:03 +01:00
Régis Hanol de95573d23 FEATURE: new 'backup_with_uploads' site setting 2015-11-12 16:23:59 +01:00
Régis Hanol 72a7bd38e1 FEATURE: new 'backup_time_of_day' site setting 2015-11-12 16:14:49 +01:00
Régis Hanol 78de89f7a1 FIX: PullHotlinkedImages was messing with URL when using Markdown references 2015-11-09 16:37:51 +01:00
Régis Hanol acecfeb37f Add 'staged' boolean to User 2015-11-06 19:19:13 +01:00
Arpit Jalan 700c005c26 PERF: optimize export user list CSV queries 2015-11-02 13:15:58 +05:30
Régis Hanol 5c0fb34eee FIX: resize emoji job was generate errors 2015-10-30 23:31:30 +01:00
Régis Hanol 5e3da94c46 FIX: prevent infinite loop in PullHotlinkedImages job 2015-10-30 22:46:46 +01:00
Robin Ward 971af6a762 FIX: PostAlerter should ignore deleted posts 2015-10-28 13:03:54 -04:00
Guo Xiang Tan 600e42c2ba FIX: Race condition when wrapping `PostCreator#create` in a transaction. 2015-10-15 14:42:40 +08:00
Sam 6f43b575a8 FEATURE: no need to cap new and unread together anymore
- leave unread alone
- cap new at 500 per site, with a site setting
2015-10-01 17:17:15 +10:00
Régis Hanol 54d6d24cbf FIX: timing issue with edits and cook post processing 2015-09-29 18:51:26 +02:00
Régis Hanol fe656fb04d FIX: select appropriate period when redirecting to top 2015-09-21 20:28:20 +02:00
Régis Hanol a3831a7003 FIX: uploading an animated user card/profile background was converted to a still image 2015-09-20 22:01:03 +02:00
Robin Ward 40934e595a FIX: Some RSS feeds do unsafe redirects
There are people who have RSS feeds set up that do HTTPS -> HTTP
redirects which throw errors. Since RSS feeds are all configured
by admins I think it's OK if they allow an unsafe redirect as the
content is public anyway. This will reduce many server side errors.
2015-09-18 13:25:09 -04:00
Gerhard Schlager 619d5b1bc1 FIX: Load fallback locales in Sidekiq jobs 2015-09-18 18:21:27 +02:00
Neil Lalonde b4a724e80a FEATURE: export dashboard reports to csv file 2015-09-15 16:45:10 -04:00
Neil Lalonde 991a36f4f2 always use fetch_stats to get AdminDashboardData data 2015-09-14 16:10:54 -04:00
Sam 335be272ff FEATURE: implement capping of new/unread
We cap new and unread at 2/5th of SiteSetting.max_tracked_new_unread

This dynamic capping is applied under 2 conditions:

1. New capping is applied once every 15 minutes in the periodical job, this effectively ensures that usually even super active sites are capped at 200 new items

2. Unread capping is applied if a user hits max_tracked_new_unread,
  meaning if new + unread == 500, we defer a job that runs within 15 minutes that will cap user at 200 unread

This logic ensures that at worst case a user gets "bad" numbers for 15 minutes and then the system goes ahead and fixes itself up
2015-09-07 12:03:17 +10:00
Régis Hanol 2b9b29c8c8 FIX: ensure CategoryUser consistency 2015-09-02 22:02:31 +02:00
Sam 82a6176b08 lower the volume on failed to pull hotlinked image
add more diagnostics
2015-08-19 12:32:45 +10:00
Sam add6e12ce4 FIX: topic links with long titles can not be crawled
0..255 == 256 numbers column fits 255
2015-08-18 17:34:46 +10:00
Régis Hanol 827ea641b0 FIX: Use File.size instead of IO.size 2015-08-17 18:57:28 +02:00
Régis Hanol a47370fc52 Merge pull request #3456 from 5minpause/patch-1
Changes RSS item creation to prevent encoding errors
2015-08-14 18:19:58 +02:00
Régis Hanol b8cf797e31 FIX: ensure Badge consistency 2015-08-14 13:03:49 +02:00
Régis Hanol b6cd4af2ba FIX: follow redirects when pulling hotlinked images 2015-08-14 12:46:52 +02:00
Sam f743bc6e74 stop adding users to a group if they are already in the group 2015-08-14 17:50:24 +10:00
Sam e670ebb433 FEATURE: allow backup settings to be overriden by globals
FEATURE: allow backup interval of up to 30 days
FIX: if a custom file exists in backup directory look at its date
FEATURE: site setting automatic_backups_enabled default true
2015-08-14 16:28:29 +10:00
Sam 7d86d23eec correct bad error reporting. 2015-08-14 13:29:39 +10:00
Régis Hanol 15418f3d44 FEATURE: new 'backup_frequency' site setting 2015-08-07 17:34:58 +02:00
Sam 6f9dc135ba FEATURE: allow logging of raw body of all unprocessable email
set log_mail_processing_failures to true to enable
2015-07-31 15:10:35 +10:00
Régis Hanol faf4f44776 FEATURE: make pin expiration mandatory 2015-07-29 16:34:21 +02:00
Sam e3d6c476f5 Merge pull request #3593 from tgxworld/cache_results_on_about_page
Cache results on about page
2015-07-21 10:04:51 +10:00
Guo Xiang Tan b0ea6764e0 PERF: Cache About#stats. 2015-07-20 22:45:05 +08:00
5minpause 4ee1bc6320 Changes RSS item creation to prevent encoding errors
SimpleRss is unreliable with parsing RSS feeds that contain German Umlauts.
For example this feed http://www.lauffeuer-lb.de/api/v2/articles.xml can't be
parsed by SimpleRss. Discourse's logs are full of

```
Job exception: Wrapped Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8
Job exception: incompatible character encodings: ASCII-8BIT and UTF-8
```

The embedding fails because the feed can't be parsed.

This change forces the encoding (using #scrub)  which prevents the numerous
encoding errors.
2015-07-20 14:30:42 +02:00
Arpit Jalan 7a1694f1ac FEATURE: add more data in user list export 2015-07-15 11:38:48 +05:30
Kane York 38acc8a070 FIX: Don't root CSV export URLs 2015-07-06 15:19:31 -07:00
Sam e32cecf60f Don't run perf report in multisite 2015-06-26 16:30:07 +10:00
Sam 4b449241fb correct formatting 2015-06-26 14:15:52 +10:00
Sam 542e796fb0 FEATURE: daily performance reports 2015-06-26 13:37:05 +10:00
Régis Hanol 18f887772d FEATURE: allow plugins to add custom admin reports 2015-06-25 02:42:08 +02:00
Neil Lalonde 77595bcaa9 FEATURE: notify by email when there are posts from new users waiting to be reviewed 2015-06-18 15:47:35 -04:00
Régis Hanol 3db743640e fix the build :fired: 2015-06-17 17:45:53 +02:00
Régis Hanol 56b9528de8 FIX: catch the PG::UniqueViolation exception too 2015-06-17 15:38:45 +02:00
Régis Hanol 189cb3ff12 FEATURE: move migrate_to_new_scheme into a background job
- new hidden site setting 'migrate_to_new_scheme' (defaults to false)
- new rake tasks to toggle migration to new scheme
- FIX: migrate_to_new_scheme also works with CDN
- PERF: improve perf of the DbHelper.remap method
- REFACTOR: UrlHelper is now a class
2015-06-12 12:07:57 +02:00
cpradio afb566260e FEATURE: Use created_at to remove an ip if its last_match_at is null 2015-06-05 10:51:13 -04:00
Arpit Jalan 725861f344 FIX: move draft cleanup to the dedicated method and add test 2015-06-03 14:35:54 +05:30
Jeff Atwood fa963e8f38 Revert "Revert "FIX: new task to delete old drafts weekly""
This reverts commit c987a1d571.
2015-06-02 04:26:01 -07:00
Sam Saffron c987a1d571 Revert "FIX: new task to delete old drafts weekly"
This reverts commit fcaed7a00d.
2015-06-02 20:30:06 +10:00
Sam Saffron 0fd1974838 FIX: leaving around useless drafts after posting 2015-06-02 20:28:33 +10:00
Arpit Jalan fcaed7a00d FIX: new task to delete old drafts weekly 2015-06-02 08:39:27 +05:30
Régis Hanol 0483f05154 make sure we pass in the user_id when creating avatar thumbnails 2015-05-29 18:11:19 +02:00
Régis Hanol c3227b69fa FIX: proper support for pixel ratios up to 3 2015-05-29 09:57:54 +02:00
Régis Hanol e101396ea1 FEATURE: add support for device pixel ratio = 3 2015-05-28 01:48:07 +02:00
Robin Ward 1434e46ed2 FIX: Excon was wrapping our `ReadOnly` exception
This was preventing the crawling of many topic links
2015-05-27 14:29:52 -04:00
Sam 0a2a248acc should be using site setting not global 2015-05-27 11:17:46 +10:00
Régis Hanol 033c2e7140 FIX: respect the allow_animated_avatars site setting 2015-05-26 12:22:02 +02:00
Régis Hanol a797f7c664 FIX: properly handle images when using 's3_cdn_url' 2015-05-26 11:47:33 +02:00
Régis Hanol bb0c2813ac FEATURE: generate (avatar) thumbnails in a background task
FIX: keep the "uploading..." indicator until the server replies via the MessageBus
FIX: text was disapearing when uploading an avatar

PERF: always use a region for S3 (defaults to 'us-east-1')
FEATURE: ApplyCDN middleware when using S3
FIX: use the same pattern to store files on S3 and locally
PERF: keep a local cache of uploads when generating thumbnails
FEATURE: migrate_to_s3 rake task
2015-05-25 17:59:00 +02:00
Régis Hanol 41cd438f0b FIX: 'clean up uploads' job
Only 1 query was needed.
2015-05-22 20:28:52 +02:00
Arpit Jalan b3314ea801 FIX: handle user export failure when post is not linked to a topic 2015-05-18 09:07:12 +05:30
Régis Hanol d40d308e45 Merge pull request #3445 from lukegb/bug/anonymous-emails
Don't send emails to anonymous users
2015-05-15 14:28:37 +02:00
Arpit Jalan 750a275dcb FIX: user archive export was failing in some cases 2015-05-14 20:35:25 +05:30
Luke Granger-Brown 9f9825bb6b FIX: don't send emails to anonymous users
Also changes behaviour of real to not return anonymous users.

This means user counts will no longer include them, and the
mailing list system will ignore them even if they somehow end up
with the feature turned on.
2015-05-11 00:56:34 +01:00
Régis Hanol 9a96cd9f3b CRUSHED: duplicate key value violates unique constraint 'index_uploads_on_sha1' 2015-05-07 01:00:13 +02:00
Sam cd9e499b77 Don't try loading embeds on deleted topics 2015-05-06 16:53:28 +10:00
Sam bbd5452b8d Do not alert if we have no topic (eg topic deleted) 2015-05-06 13:25:23 +10:00
Sam 6fab03b777 do not alert on deleted posts 2015-05-06 10:44:45 +10:00
Régis Hanol 80b2935e11 FIX: prevent DOS when fixing avatar in quotes 2015-04-24 11:14:10 +02:00
Neil Lalonde 85320f919b FEATURE: user list csv includes approved, suspended_at, suspended_till, blocked 2015-04-22 12:40:12 -04:00
Robin Ward 5990ab855b PERF: Move post alerting into async 2015-04-20 13:34:57 -04:00
Robin Ward 6ae58d41a7 PERF: Only refresh the Daily stats hourly, do the others daily. 2015-04-20 12:11:36 -04:00
Tan Le c55fdc7a75 A shorter and more concise version of select..size 2015-04-12 22:26:48 +10:00
Arpit Jalan e6df97f01d FIX: add email reply error message for topic not getting created in restricted category 2015-04-10 17:11:52 +05:30
Régis Hanol 8775dbec54 Merge pull request #3299 from riking/stagger-backups
FIX: Stagger daily backups by up to 10 minutes
2015-04-06 11:14:37 +02:00
Régis Hanol 23e8e1b6c1 Merge pull request #3303 from riking/patch-6
FIX: Don't fail topic auto-close if privledges are lost
2015-04-06 11:12:37 +02:00
Régis Hanol 7ce2dea33e Merge pull request #3306 from riking/badge-rescue
FIX: Don't stop the badge grant after the first failure
2015-04-06 11:12:20 +02:00
Arpit Jalan a80c742855 FIX: include site name in email reply error subject 2015-04-02 15:46:22 +05:30
Régis Hanol 10b8eca9a6 fix the build 2015-03-30 12:48:20 +02:00
Régis Hanol 588667b1e4 FEATURE: fix avatar in quotes when changing avatars 2015-03-30 12:31:10 +02:00
riking 6ce26ab4d8 FIX: Don't stop the badge grant after the first failure 2015-03-28 18:36:05 -07:00
riking 03b971c3e3 FIX: Don't fail topic auto-close if privledges are lost 2015-03-27 15:31:04 -07:00
Régis Hanol a87083fa76 FIX: use 'resize' option instead of 'thumbnail' when downsizing emojis 2015-03-26 18:16:15 +01:00
riking 018c467c69 FIX: Stagger daily backups by up to 10 minutes 2015-03-25 23:24:39 -07:00
Sam bb20f64cb2 use standard error so its easier to catch 2015-03-23 12:20:50 +11:00
Robin Ward 3d2d224312 FEATURE: User Directory, with sorting and time period filter 2015-03-18 15:20:34 -04:00
Régis Hanol fc962eb378 FEATURE: automatic daily roll-up for screened IP addresses 2015-03-09 18:55:17 +01:00
Sam 6960639c58 Merge pull request #3190 from riking/thrown_logging
Delete old ErrorLog, use Logster for 500 errors
2015-02-23 14:19:16 +11:00
Régis Hanol 92e6446f0f FEATURE: new site setting 2015-02-21 18:37:37 +01:00
Régis Hanol 82157418eb FIX: we only want to downsize emojis 2015-02-20 17:24:37 +01:00
Arpit Jalan f3daae6dec Improve auto generated email reply error message 2015-02-18 18:58:51 +05:30
Robin Ward 3ce2077aa8 Migrate unsubscribe keys to the database.
This should reduce a lot of the keys in redis.
2015-02-13 14:24:15 -05:00
riking 5657006aca Rename handle_exception to handle_job_exception 2015-02-09 12:47:46 -08:00
Régis Hanol 2507f99135 FEATURE: background job to make sure emoticons aren't too big 2015-01-29 18:36:35 +01:00
Arpit Jalan 12c82bed59 Disable digest emails site setting 2015-01-27 22:41:36 +05:30
Régis Hanol efd65dcc8c hard match domains for automatic group membership 2015-01-26 23:17:29 +01:00
Arpit Jalan 5c2ee8ec2a FEATURE: suppress digest emails for users not seen on the site for more than (n) days. 2015-01-26 22:04:02 +05:30
Régis Hanol 256519dddf FEATURE: automatic group membership based on email address 2015-01-23 18:25:43 +01:00