Sam Saffron
ec1c3559da
PERF: correct clean up inactive so it does not clog scheduler
...
also add a hard limit of 1000 users per job run so we do not clog the
scheduler
destroyer.destroy has a transaction and this can have some serious complications
with the open record set find_each has going
2019-04-09 22:25:05 +10:00
Guo Xiang Tan
6d0e8821f8
FIX: Optimize query and avoid bloating memory in Jobs::MigrateUploadScheme
.
2019-04-09 15:45:30 +08:00
Vinoth Kannan
914ada1c74
DEV: convert scheduled job EnsurePostUploadsExistence into a rake task
2019-04-09 02:07:35 +05:30
Guo Xiang Tan
108c231d1c
FIX: Clean up topic_search_data
of trashed topics.
...
This keeps the index and table smaller.
2019-04-08 16:53:39 +08:00
Guo Xiang Tan
c4997ce85f
FIX: Don't try and reindex posts that have been trashed.
2019-04-08 16:38:43 +08:00
Robin Ward
c9ddc6ce30
FIX: Make sure the site setting works and fix build
2019-04-04 17:44:10 -04:00
Vinoth Kannan
2c7a50860f
DEV: disable missing post uploads check by default.
2019-04-05 02:29:10 +05:30
Vinoth Kannan
a385f6c48a
REFACTOR: create custom field even when missing post uploads not found
2019-04-04 21:49:44 +05:30
Vinoth Kannan
44e87372da
FEATURE: Add scheduled job to ensure s3 uploads existence
2019-04-04 20:37:44 +05:30
Robin Ward
588f61f717
FIX: Linting
2019-04-03 18:08:07 -04:00
Vinoth Kannan
3b581de3b8
remove unrelated code
...
already added in a separate job
2019-04-04 02:26:28 +05:30
Vinoth Kannan
b3fb0a7039
FEATURE: ensure consistency of post uploads in cooked content
2019-04-04 02:23:28 +05:30
Robin Ward
c1ea63bdc1
FIX: Reviewables should not be created for users until they are active
...
Conversely, if a user is deactivated the reviewable should automatically
be rejected.
Before this fix, if a user was not active they'd still show in the
review queue but without an "Approve" button which was confusing.
2019-04-03 15:25:00 -04:00
Guo Xiang Tan
d151425353
PERF: Delete search data of posts from trashed topics periodically. ( #7302 )
...
This keeps both the index and table smaller.
2019-04-03 10:10:41 +08:00
Guo Xiang Tan
feb731bffd
FIX: Regenerate optimized images instead of migrating from old scheme.
...
`OptimizedImage.migrate_to_new_scheme` was optimizing optimized images
which we don't need to do. Regnerating the optimized image is way easier.
2019-04-03 09:45:02 +08:00
Guo Xiang Tan
d8704c11ca
PERF: Better use of index when queueing a topci for search reindex.
...
Also move `Search::INDEX_VERSION` to `SearchIndexer` which is where the
version is actually being used.
2019-04-02 09:53:37 +08:00
Guo Xiang Tan
aa2311a7b0
FIX: Don't reindex posts belonging to a deleted topic for search.
...
Posts belonging to a deleted topic can't be index for search so we need
to avoid loading those post ids.
2019-04-02 07:36:53 +08:00
Guo Xiang Tan
3fc5dbb045
FIX: Don't attempt to reindex posts that have an empty raw.
...
If the post ids keep loading, we might end up in a situations where
we're always loading the same post ids over and over again without
indexing anything new.
Follow up to daeda80ada
.
2019-04-02 07:13:33 +08:00
Robin Ward
76669bb5a6
FIX: Don't refer to pending review items as flags
...
They could be queued posts or users, and the notice should reflect that
properly.
2019-04-01 14:46:56 -04:00
Guo Xiang Tan
daeda80ada
FIX: Don't index posts with empty Post#raw
for search. ( #7263 )
...
* DEV: Remove unnecessary join in `Jobs::ReindexSearch`.
* FIX: Don't index posts with empty `Post#raw` for search.
2019-04-01 10:06:27 +08:00
Tarek Khalil
b1cb95fc23
FEATURE: Introduce ignore duration selection ( #7266 )
...
* FEATURE: Introducing new UI for tracking User's ignored or muted states
2019-03-29 10:14:53 +00:00
Robin Ward
b58867b6e9
FEATURE: New 'Reviewable' model to make reviewable items generic
...
Includes support for flags, reviewable users and queued posts, with REST API
backwards compatibility.
Co-Authored-By: romanrizzi <romanalejandro@gmail.com>
Co-Authored-By: jjaffeux <j.jaffeux@gmail.com>
2019-03-28 12:45:10 -04:00
Guo Xiang Tan
b58c965aad
FIX: Destroy optimized image if attempting to migrate to new scheme fails.
2019-03-26 14:37:34 +08:00
Tarek Khalil
fed2dd9148
FEATURE: Add scheduled job to purge expired ignored users ( #7211 )
2019-03-20 11:01:43 +01:00
Guo Xiang Tan
4020c87680
DEV: Refactor tests for Jobs::CleanUpInactiveUsers
.
...
* Remove use of 0 in favor of `TrustLevel.levels[:newuser]`.
* Consolidate two tests into a single one.
* Test that disabling the feature works.
* Avoid loading full ActiveRecord object in test when we only need to
know the existence of the record.
2019-03-19 09:57:21 +08:00
Bianca Nenciu
2347661a74
FEATURE: Clean up inactive users. ( #7172 )
2019-03-18 16:25:15 +01:00
Tarek Khalil
bd6d31c9ec
FEATURE: Add IgnoredUsersSummary
daily job ( #7144 )
...
* FEATURE: Add `IgnoredUsersSummary` daily job
## Why?
This is part of the [Ability to ignore a user feature](https://meta.discourse.org/t/ability-to-ignore-a-user/110254/8 ).
We want to:
1. Send an automatic group PM that goes out to moderators
2. When {x} users have Ignored the same user, threshold defined by a site setting, default of 5
3. Only send this message every X days which is defined by another site setting
2019-03-14 22:51:43 +00:00
Guo Xiang Tan
b0c8fdd7da
FIX: Properly support defaults for upload site settings.
2019-03-13 16:36:57 +08:00
Dan Ungureanu
32bae48fd3
DEV: Use User#human? User#bot? ( #7140 )
2019-03-12 07:58:14 +08:00
Gerhard Schlager
1121514799
UX: Localize date format in "new user of the month" message
2019-03-06 21:58:25 +01:00
Robin Ward
78ddc82952
FIX: Respect min_flags_staff_visibility for new flags too
...
There was a situation where if:
* There were new flags to review that met the visibility threshold
AND
* There were old flags that *didn't* meet the threshold
THEN
a pending flags notification would be sent out. This fixes that case.
Staff should not be notified of flags if they do not meet the threshold
and are old.
2019-01-25 11:27:43 -05:00
Robin Ward
96b2585a91
REFACTOR: Remove unncessary stubs from pending flags reminder
...
They seem to be calculated fine by the application, and stubbing
makes the tests more brittle and prone to regression.
2019-01-24 13:45:58 -05:00
Robin Ward
f32de88dfc
FIX: Don't notify of pending flags if min_flags_staff_visibility not met
2019-01-22 11:01:18 -05:00
Guo Xiang Tan
95e3841974
FIX: Remove old reference and use MiniScheduler::Stat
.
2019-01-18 16:36:11 +08:00
Sam
384135845b
FEATURE: introduce ultra_low priority queue
...
This commit introduces an ultra low priority queue for post rebakes. This
way rebakes can never interfere with regular sidekiq processing for cases
where we perform a large scale rebake.
Additionally it allows Post.rebake_old to be run with rate_limiter: false
to avoid triggering the limiter when rebaking. This is handy for cases
where you want to just force the full rebake and not wait for it to trickle
2019-01-17 14:53:19 +11:00
Saurabh Patel
b63b399799
DEV: remove uploaded_meta_id column from category ( #6725 )
...
* DEV: remove uploaded_meta_id column from category
* remove uploaded_meta part
2019-01-10 09:37:21 +08:00
Sam
e08a3f719c
FEATURE: push post rebake regular task to low priority queue
...
This allows us to run regular rebakes without starving the normal queue.
It additionally adds the ability to specify queue with `Jobs.enqueue` so
we can specifically queue a job with lower priority using the `queue` arg.
2019-01-09 08:57:20 +11:00
Sam
f74ef71130
DEV: add transaction and active check to invalidate job
...
Follows up on 3b76f19668
this per @tgxworld a transaction makes sense here
Very minor
2018-12-13 14:59:56 +11:00
Neil Lalonde
3b76f19668
FIX: invalidating inactive admin emails should mark them as not active
2018-12-12 17:07:49 -05:00
Neil Lalonde
a1db15fead
FEATURE: require admins to re-validate their email addresses if they haven't been seen for a number of days, configurable with the invalidate_inactive_admin_email_after_days site setting. Social logins are also revoked. Default is 365 days.
2018-12-12 15:32:38 -05:00
David Taylor
9db829134c
FIX: Use database to persist metadata during social registration ( #6750 )
...
Previously was using the cookie_store, which is limited to 4kb. This caused issues for providers sending large volumes of metadata about a user.
2018-12-10 15:10:06 +00:00
Saurabh Patel
9e3143445b
DEV:add uploaded_meta option in category for category meta image ( #6724 )
2018-12-07 16:24:07 +01:00
Sam
8e307e633e
FIX: posts would not auto rebake unless gravatar download was enabled
2018-12-07 17:03:22 +11:00
Guo Xiang Tan
eecd1a7d8c
FIX: Jobs::CleanUpUploads
fails when value of upload data_type is an empty string.
2018-11-30 10:46:39 +08:00
Guo Xiang Tan
81b3bdaabd
FIX: Remove site settings override for deprecated url site settings.
2018-11-20 11:42:39 +08:00
Guo Xiang Tan
9e86b425bc
FIX: Job to clean up old URL settings when new setting has been set.
...
Related to 44391ee8ab
2018-11-16 09:33:31 +08:00
Guo Xiang Tan
5b320e6652
DEV: Don't warn about using deprecated site settings in clean up uploads job.
2018-11-14 20:58:06 +08:00
Guo Xiang Tan
44391ee8ab
FEATURE: Upload Site Settings. ( #6573 )
2018-11-14 15:03:02 +08:00
Guo Xiang Tan
7b44339529
FIX: Prevent uploads used in site settings from being deleted.
2018-11-13 09:15:16 +08:00
Gerhard Schlager
24e5be3f0c
FIX: Relative links in translations should work with subfolder
2018-11-08 23:31:05 +00:00
Bianca Nenciu
2070edf889
FIX: Clarify User.group_locked_trust_level.
...
* Rename User.group_locked_trust_level to User.group_granted_trust_level.
* Remove the column from users table.
2018-11-07 10:27:44 +08:00
Guo Xiang Tan
84d4c81a26
FEATURE: Support backup uploads/downloads directly to/from S3.
...
This reverts commit 3c59106bac
.
2018-10-15 09:43:31 +08:00
Guo Xiang Tan
3c59106bac
Revert "FEATURE: Support backup uploads/downloads directly to/from S3."
...
This reverts commit c29a4dddc1
.
We're doing a beta bump soon so un-revert this after that is done.
2018-10-11 11:08:23 +08:00
Gerhard Schlager
c29a4dddc1
FEATURE: Support backup uploads/downloads directly to/from S3.
2018-10-11 10:38:43 +08:00
Gerhard Schlager
3a6ab02563
FEATURE: Notify admins when scheduling of backup fails
2018-10-02 15:48:16 +02:00
Sam
e1975e293f
FIX: when uploads are destroyed clear up avatar refs in user table
...
This also auto corrects twice daily when we ensure consistency
2018-08-31 14:46:42 +10:00
Guo Xiang Tan
36a7028f19
FEATURE: Clean up PostReplyKey
records.
...
* Default retention of 90 days.
2018-08-23 10:40:02 +08:00
Bianca Nenciu
860c1c3dcd
FEATURE: Automatically expire keys if not used for a configurable amount of time. ( #6264 )
2018-08-20 17:36:14 +02:00
Gerhard Schlager
b73950692b
FIX: Parsing non-existent feed should not fail
2018-08-10 18:37:14 +02:00
Simon Cossar
3cd4dc0f5f
Allow users with group_locked_trust_level to be promoted to tl3 ( #6249 )
2018-08-10 10:42:23 +10:00
Osama Sayegh
880462a41c
FEATURE: display out of date themes on admin dashboard
...
* FEATURE: disaply out of date themes on admin dashboard
* Update copy
2018-08-03 09:53:48 +10:00
Gerhard Schlager
a115aae45f
Use rchardet instead of charlock_holmes gem
2018-08-01 10:41:20 +02:00
Gerhard Schlager
5d421fb946
FIX: Try respecting charset in HTTP header of RSS feed
2018-08-01 10:41:20 +02:00
Gerhard Schlager
ff942ed2f3
FIX: Try detecting encoding of RSS feed
2018-08-01 10:41:20 +02:00
Guo Xiang Tan
87537b679c
Drop reply_key
, skipped
and skipped_reason
from email_logs
.
2018-07-30 11:39:28 +08:00
Guo Xiang Tan
fad9c2b971
PERF: Move EmailLog#reply_key
into new post_reply_keys
table.
2018-07-24 13:51:53 +08:00
Guo Xiang Tan
ae8b0a517f
PERF: Split skipped email logs into a seperate table.
2018-07-24 13:14:37 +08:00
Joffrey JAFFEUX
06323f9c89
FIX: takes old dashboard out of caching job
2018-07-21 12:42:03 -04:00
Joffrey JAFFEUX
0972dd2552
FIX: takes dashboard-next out of caching job
2018-07-21 11:13:15 -04:00
Joffrey JAFFEUX
1d5096eb46
FIX: lazy load more reports in dashboard
2018-07-20 23:35:53 -04:00
Joffrey JAFFEUX
1a78e12f4e
FEATURE: part 2 of dashboard improvements
...
- moderation tab
- sorting/pagination
- improved third party reports support
- trending charts
- better perf
- many fixes
- refactoring
- new reports
Co-Authored-By: Simon Cossar <scossar@users.noreply.github.com>
2018-07-19 14:33:11 -04:00
Régis Hanol
6d6e026e3c
FEATURE: selectable avatars
2018-07-18 12:57:43 +02:00
Sam
91266cdabb
correct auto bump topic logic
2018-07-17 09:33:33 +10:00
Sam
ac0053f491
FEATURE: navigate to first post and auto bump category settings
...
### navigate_to_first_post_after_read setting for categories
When enabled on categories logged on users will return to OP after
reading the entire category. (useful for documentation categories)
### num_auto_bump_daily
Set a number of topics that will automatically bump daily on a category.
- Every 15 minutes we will check if any category has this setting
- Categories with the setting are shuffled
- We exclude pinned, closed, category description and archived topics
- Maximum of 1 topic for the list of categories is bumped till limit reached per category
- We always try to bump oldest first
- Limit is elastic using a RateLimiter that ensures that we only bump N per day
Also some minor organisation on category settings
Froze strings on category.rb
2018-07-16 18:10:35 +10:00
Guo Xiang Tan
4172e1dd52
FIX: Rename User#usernames
that clashes with Group#name
. ( #6069 )
2018-07-09 16:54:57 +08:00
Guo Xiang Tan
f7322c05ad
FIX: Avoid destroy_all
in Jobs::CleanUpUploads
.
...
`destroy_all` loads all the relation into memory as once.
See https://github.com/rails/rails/issues/22510
2018-07-02 12:44:36 +08:00
Arpit Jalan
7550e9ff95
FIX: purge unactivated users with a message from non-human users
2018-06-29 13:03:04 +05:30
Ernesto Serrano
c5e24da5dd
Update poll_mailbox.rb
2018-06-25 16:18:07 +10:00
Sam
5f64fd0a21
DEV: remove exec_sql and replace with mini_sql
...
Introduce new patterns for direct sql that are safe and fast.
MiniSql is not prone to memory bloat that can happen with direct PG usage.
It also has an extremely fast materializer and very a convenient API
- DB.exec(sql, *params) => runs sql returns row count
- DB.query(sql, *params) => runs sql returns usable objects (not a hash)
- DB.query_hash(sql, *params) => runs sql returns an array of hashes
- DB.query_single(sql, *params) => runs sql and returns a flat one dimensional array
- DB.build(sql) => returns a sql builder
See more at: https://github.com/discourse/mini_sql
2018-06-19 16:13:36 +10:00
Sam
12fd0b827e
PERF: release results in a couple of cases
2018-06-13 15:11:43 +10:00
Guo Xiang Tan
d600e71b3d
FIX: Clean up stale UserExport
records daily.
...
* Add tests for `UserExport.remove_old_exports`
2018-06-05 09:43:40 +08:00
Régis Hanol
6024fb84cc
make rubocop happy
2018-06-04 19:06:52 +02:00
Régis Hanol
ab8cdd6b5b
Upload.url can't be NULL
2018-06-04 18:43:00 +02:00
Régis Hanol
085eaaf18d
FIX: always delete invalid upload records
2018-06-04 18:40:57 +02:00
Arpit Jalan
1841dd48dc
FIX: revert utf-8 encode changes
2018-05-20 17:50:36 +05:30
Arpit Jalan
9512796ef6
FIX: check for blank response when polling feed
2018-05-18 17:00:44 +05:30
Régis Hanol
39aceed63d
FIX: don't purge unactivated users with a message
2018-05-16 18:24:11 +02:00
Arpit Jalan
146f634c8f
FIX: UTF-8 encode feed response body
2018-05-16 12:59:23 +05:30
Sam
6332d5040d
UX: switch dashboard to be the new dashboard
...
Also:
- add pageviews
- add problems and version sections
2018-05-14 13:07:59 +10:00
Sam
bc9e0d46af
PERF: use cached reports for dashboard if available
2018-05-14 12:01:44 +10:00
Arpit Jalan
91bf10bd12
FIX: create upload record for exported csv files
2018-04-20 00:27:49 +05:30
Joffrey JAFFEUX
0e414d0890
dashboard next: trending search report
...
This commit also improves how data is loaded sync and async
2018-04-19 18:19:21 +02:00
Joffrey JAFFEUX
01c061d20d
dashboard next: perf and UI tweaks
...
* cache CORE reports
* adds backups/uploads section
* few css tweaks
2018-04-18 21:30:41 +02:00
Guo Xiang Tan
7bf9650e96
Remove comment that is no longer accurate.
2018-04-18 14:22:18 +08:00
Neil Lalonde
ced7e9a691
FEATURE: control which web crawlers can access using a whitelist or blacklist
2018-03-22 15:41:02 -04:00
Sam
86d12bd44b
FEATURE: search within title using in:title
...
Also
- Significantly improved search ranking, title is treated most strongly
- Adds tag names to the index
- Run search re-indexer more aggressively
- Re-index topic and all posts on category change
2018-02-20 14:41:21 +11:00
Sam
d8b4627fc8
we have to define this for tests to pass
2018-02-15 13:30:34 +11:00
Sam
b5b866aab3
oops
2018-02-15 13:13:31 +11:00
Sam
c89b42c488
PERF: only require the rss library if used
...
Before:
Total allocated: 257909321 bytes (2514134 objects)
Total retained: 39681579 bytes (343387 objects)
allocated memory by gem
-----------------------------------
42875979 rss
retained memory by gem
-----------------------------------
2080188 rss
retained objects by gem
-----------------------------------
13052 rss
After:
Total allocated: 210562047 bytes (2252030 objects)
Total retained: 37433816 bytes (328635 objects)
----
So, 2 less megabytes on boot and 13000 objects stuck in ruby heaps forever.
2018-02-15 13:11:33 +11:00
Régis Hanol
7d501058d7
FIX: don't grant new user of the month badge to suspended users or based on deleted topics/posts
2018-02-13 17:32:38 +01:00
Neil Lalonde
76c309fe6b
PERF: a faster way to count tags used per category
2018-02-12 15:16:47 -05:00
Neil Lalonde
d7e90edeb5
PERF: Tl3Promotions job can limit the number of TL3 candidates by using some simple requirements in the query
2018-02-05 17:54:36 -05:00
Régis Hanol
130974d58d
FIX: automatically unsilence users
2018-02-05 17:45:47 +01:00
Régis Hanol
77ac14d475
prevent users with a tiny number of posts to dominate the 'new user of the month' leaderboard
2018-01-29 12:09:17 +01:00
Neil Lalonde
2493648f9c
PERF: calculate topic_counts for tags in an async job so tag queries that include counts are much faster
2018-01-12 11:03:03 -05:00
Robin Ward
69a90f31fb
FEATURE: Allow Forums to disable the Backups feature
2017-12-21 15:22:04 -05:00
Neil Lalonde
f5a3be750c
PERF: add option to limit how many categories are processed in one call to CategoryFeaturedTopic.feature_topics ( #5446 )
2017-12-20 13:42:29 +11:00
scossar
11050e5d10
Don't override count value that has been set by query.count
2017-12-13 18:48:46 -08:00
Kyle Zhao
5f318a5241
FEATURE: Replace SimpleRSS with Ruby RSS module ( #5311 )
...
* SPEC: PollFeedJob parsing atom feed
* add FeedItemAccessor
It is to provide a consistent interface to access a feed item's tag
content.
* add FeedElementInstaller
to install non-standard and non-namespaced feed elements
* FEATURE: replace SimpleRSS with Ruby RSS module
* get FinalDestination and download with Excon
* support namespaced element with FeedElementInstaller
2017-12-06 10:45:09 +11:00
Robin Ward
77f90876d3
REFACTOR: Track manual locked user levels separately from groups
2017-11-27 11:23:44 -05:00
Régis Hanol
4addc5e329
Add missing contexts when destroying users
2017-11-22 15:43:54 +01:00
Régis Hanol
c4d0eb802e
FIX: delete upload records when sha is null
2017-11-21 10:20:42 +01:00
Régis Hanol
2d48caffdf
FIX: be more lenient when deleting a custom emoji
2017-11-20 23:50:23 +01:00
Robin Ward
971e302ff2
FEATURE: Support an end date for user silencing
2017-11-14 13:20:19 -05:00
Régis Hanol
ba2209f7d7
FIX: always clean up uploads with no sha1
2017-11-14 10:56:10 +01:00
Régis Hanol
7370adeae3
FIX: don't delete uploads referenced in drafts or queued posts when using the short_url
2017-11-13 15:01:31 +01:00
Robin Ward
1f14350220
Rename "Blocked" to "Silenced"
2017-11-10 14:10:27 -05:00
Guo Xiang Tan
6def5a344a
Let's be more aggressive with purging old WebHookEvent records.
2017-11-08 14:15:34 +08:00
Guo Xiang Tan
6090994cdf
FEATURE: Retain the latest 30 days of WebHookEvent records by default.
2017-11-08 14:11:01 +08:00
Guo Xiang Tan
0abc5f90cd
FIX: Broken link in new user of the month post.
2017-10-30 13:11:29 +08:00
Guo Xiang Tan
d5e369d6cf
Fix weird Rubocop error.
2017-10-23 12:30:28 +08:00
Sam
4ea87b5ab8
Merge branch 's3_refactor'
2017-10-09 10:27:52 +11:00
Sam
70bb2aa426
FEATURE: allow specifying s3 config via globals
...
This refactors handling of s3 so it can be specified via GlobalSetting
This means that in a multisite environment you can configure s3 uploads
without actual sites knowing credentials in s3
It is a critical setting for situations where assets are mirrored to s3.
2017-10-06 16:20:01 +11:00
Guo Xiang Tan
4ba5e678d8
Require dependencies to enable live reload in dev for Sidekiq.
2017-10-06 11:39:00 +08:00
Kyle Zhao
ac666ddf17
PollFeed: check 'content:encoded' for content first
2017-10-02 01:16:11 -04:00
Guo Xiang Tan
d79fee9ff3
Fix undefined method for Nil class error.
2017-09-28 17:38:53 +08:00
Robin Ward
fa41913ba5
FIX: Don't count private content in New User of the Month
2017-09-27 15:03:24 -04:00
Robin Ward
d1ebc62065
The ability to display errors on flagging actions.
2017-09-25 12:28:01 -04:00
Robin Ward
677b016387
Send a suspension message via email to a user
2017-09-25 12:26:41 -04:00
Neil Lalonde
16fe7aa307
FEATURE: automatically handle flags and posts that have been waiting in a queue for a long time. Flags will be deferred. Posts waiting for approval will be rejected. Control how old the records need to be with the auto_handle_queued_age site setting.
2017-09-14 12:01:06 -04:00
Neil Lalonde
beea5cac48
FIX: send the queued posts reminder as a message to moderators instead of an email to the contact_email
2017-09-12 18:00:51 -04:00
Neil Lalonde
2c56f8df7c
FEATURE: show tags in search results
2017-08-25 11:52:59 -04:00
Sam Saffron
56f7b4e01e
PERF: reindex search data without loading large post counts
2017-08-16 08:18:59 -04:00
Erick Guan
6e59149a77
FIX: rebuild index when engine replaced ( #5021 )
2017-08-16 07:38:34 -04:00
Leo McArdle
836dee1120
FIX: add additional email to tests and clean up resulting mess
2017-07-31 22:27:29 +00:00
Guo Xiang Tan
5012d46cbd
Add rubocop to our build. ( #5004 )
2017-07-28 10:20:09 +09:00
Robin Ward
6b6ad9391b
Clean up job for search logs
2017-07-14 14:30:58 -04:00
Guo Xiang Tan
1ab60d83df
PERF: Terminate scheduled job earlier if badge is not enabled.
2017-06-26 10:13:58 +09:00
Guo Xiang Tan
6cc174ca82
PERF: Fetch users in batches in grant anniversary badge job.
2017-06-23 16:54:35 +09:00
Robin Ward
d92c938491
FIX: Don't raise an error cleaning up uploads if a path is nil
2017-06-08 14:31:58 -04:00
Régis Hanol
e8f0771dc9
FIX: the 'clean_up_uploads' jobs would delete images used in site settings
...
when they were entered using absolute URLs, with the CDN or simple a different format than the one used in the database
2017-06-07 22:53:15 +02:00
Sam
0aed2533ac
Revert unread optimisation, has too many edge cases
2017-05-26 09:04:13 -04:00
Sam
29fac1ac18
PERF: improve performance of unread queries
...
Figuring out what unread topics a user has is a very expensive
operation over time.
Users can easily accumulate 10s of thousands of tracking state rows
(1 for every topic they ever visit)
When figuring out what a user has that is unread we need to join
the tracking state records to the topic table. This can very quickly
lead to cases where you need to scan through the entire topic table.
This commit optimises it so we always keep track of the "first" date
a user has unread topics. Then we can easily filter out all earlier
topics from the join.
We use pg functions, instead of nested queries here to assist the
planner.
2017-05-25 15:07:30 -04:00
Robin Ward
b78b010757
FIX: Fixes to grant new user of the month badge
2017-05-24 11:36:24 -04:00
Neil Lalonde
9edc490d3f
FIX: remove memoized values in jobs
2017-05-22 16:26:30 -04:00
Neil Lalonde
f350dd4fd1
FIX: possible data leaking from one site to another in multisite in PendingFlagsReminder
2017-05-22 15:18:13 -04:00
Robin Ward
bd0bb879e5
FIX: Don't count likes from system users in the new user of the month
2017-05-15 13:14:32 -04:00
Neil Lalonde
55b61e9bea
rename topic_status_update to topic_timer
2017-05-11 18:27:53 -04:00
Robin Ward
3ade46de0b
FIX: Don't send system message for new user of the month if disabled
2017-05-11 11:33:16 -04:00
Sam
f709899a1d
Allow theme field object model to support uploads
2017-05-10 15:46:42 -04:00
Robin Ward
4db76796b9
FEATURE: Setting to poll feeds more frequently
2017-05-10 14:30:12 -04:00
Robin Ward
6e4ba8a33e
Catch RSS Parsing errors
2017-05-09 15:07:06 -04:00
Guo Xiang Tan
71a266b673
Remove daily mailing mode option as it doesn't scale.
...
https://meta.discourse.org/t/daily-updates-option-for-mailing-list-mode/45029/14?u=tgxworld
2017-05-05 12:21:50 +08:00
Neil Lalonde
ca224ed8e9
FIX: pending flags message should go to moderators group, not staff
2017-05-01 14:53:16 -04:00
Robin Ward
f05f1a24d3
Change Anniversary badge to be multiple grant, once per year
2017-04-28 14:22:54 -04:00
Guo Xiang Tan
85d9342ff0
Merge pull request #4836 from tgxworld/fix_clean_up_staged_users_job
...
FIX: Clean up unused staged users job not completing.
2017-04-27 15:41:46 +08:00
Robin Ward
bf9c4a7828
FEATURE: secure_email site setting to prevent data going out in email
2017-04-26 13:05:56 -04:00
Guo Xiang Tan
daa97c40ce
FIX: Clean up unused staged users job not completing.
2017-04-26 10:51:36 +08:00
Neil Lalonde
05efa7ce68
simplify last_notified_id
2017-04-20 15:26:28 -04:00
Neil Lalonde
3835e16cf7
FIX: New implementation of the "notify about flag after" setting. Only notify about new flags since the last notification. Send a private message to staff. Mention the 3 most active moderators in the message so they get notification emails.
2017-04-19 16:17:45 -04:00
Guo Xiang Tan
5943543ec3
FIX: Improve checks for non-human users.
2017-04-06 11:29:34 +08:00
Robin Ward
ebe232da47
Weigh staff votes more for New User of the Month badges
2017-04-03 16:52:31 -04:00
Robin Ward
a13a8dc96c
FIX: Safeguard to not award NewUserOfTheMonth if it hasn't been a month
2017-04-03 13:26:51 -04:00
Robin Ward
3d64f33d40
Require at least two likes to get the "New User of the Month" badge
2017-04-03 13:03:28 -04:00
Jeff Atwood
3b64aeaf21
loosen new user of the month criteria slightly
2017-03-31 16:33:50 -07:00
Robin Ward
e4b1376146
Change New User of the Month Badge to use trust level rather than age
2017-03-31 16:56:58 -04:00
Robin Ward
a8d3779f0b
Update New User of the Month badge to require 4 posts in 2 topics
2017-03-31 16:52:00 -04:00
Robin Ward
fc7fa4c0ad
Rename "Rookie of the Month" to "New User of the Month"
2017-03-31 16:30:30 -04:00
Robin Ward
e6f6bd34d8
Send the user a notice when they've received rookie of the month
2017-03-31 15:06:31 -04:00
Robin Ward
893e93dfbe
New badge, Rookie of the Month, for two new high quality users.
2017-03-31 15:06:31 -04:00
Guo Xiang Tan
34b7bee568
FEATURE: Allow admin to auto reopen at topic.
...
* This commit also introduces a `TopicStatusUpdate`
model to support other forms of deferred topic
status update in the future.
2017-03-31 11:14:18 +08:00
Guo Xiang Tan
1a7e954e09
FIX: Store custom emojis as uploads.
...
* Depending on a hardcoded directory was a flawed design
which made it impossible to debug when custom emojis go
missing.
2017-03-14 13:07:18 +08:00
Régis Hanol
23b06d2895
FIX: should not try to send digest to users who reached the bounce threshold
2017-03-08 19:19:11 +01:00
Blake Erickson
0a41da6bad
FEATURE: Add order logic to admin users controller
...
Added order and direction parameters for sorting admin user pages. This
commit only includes backend api changes.
https://meta.discourse.org/t/make-admin-users-list-sortable-suggestion/47649
Now you can pass in `order` and `asc` parameters to the
`/admin/users/list/<query>.json` endpoint.
Example:
`/admin/users/list/active.json?&order=post_count` which defaults to desc
and
`/admin/users/list/active.json?order=post_count&asc=true`
2017-02-24 17:11:17 -07:00
Régis Hanol
f07b4b310a
should not have renamed this setting in 460665895c
2017-02-08 18:11:34 +01:00
Sam
ff49f72ad9
FEATURE: per client user tokens
...
Revamped system for managing authentication tokens.
- Every user has 1 token per client (web browser)
- Tokens are rotated every 10 minutes
New system migrates the old tokens to "legacy" tokens,
so users still remain logged on.
Also introduces weekly job to expire old auth tokens.
2017-02-07 09:22:16 -05:00
Régis Hanol
664feca199
FIX: don't send emails from muted users in mailing list mode
2016-12-12 15:28:26 +01:00
Guo Xiang Tan
9a800107cb
FIX: Associate category logo and background to uploads record.
2016-12-12 17:37:28 +08:00
Robin Ward
424fc8e2e2
FIX: Don't raise an error if the RSS endpoint is 404
2016-12-05 12:29:14 -05:00
Guo Xiang Tan
55b35a05ed
FIX: This should not have been checked in.
2016-12-05 11:49:04 +08:00
Guo Xiang Tan
22059d4df9
Add Rake task to clean up unused multisite Redis keys.
2016-12-05 11:46:34 +08:00
Andreas Motl
43fd3ebd4a
Add “pop3_polling_openssl_verify” setting to turn off TLS server certificate verification like “smtp_openssl_verify_mode”. Defaults to “true”, so it does not change current behavior.
2016-11-11 21:59:15 +01:00
Guo Xiang Tan
f03d9cad06
PERF: NOT IN
query is really inefficient for large tables.
2016-11-02 13:09:18 +08:00
Régis Hanol
52b338db62
FIX: category logo & background URLs should not use the CDN
2016-10-25 10:43:57 +02:00
Robin Ward
af83c8dc14
Upload Logos Step
2016-09-22 09:52:19 -04:00
Guo Xiang Tan
baacb30ba1
FIX: Incorrect folder.
2016-09-15 15:20:07 +08:00
Matt Palmer
394cd43d77
Scrub only after converting strings to UTF-8
...
Scrubbing an ASCII-8BIT string isn't ever going to remove anything, because
there's no code point that isn't valid 8-bit ASCII. Since we'd really
prefer it if everything were UTF-8 anyway, we'll just assume, for now, that
whatever comes out of SimpleRSS is probably UTF-8, and just nuke anything
that isn't a valid UTF-8 codepoint.
Of course, the *real* bug here is that SimpleRSS [unilaterally converts
everything to
ASCII-8BIT](https://github.com/cardmagic/simple-rss/issues/15 ). It's
presumably *far* too much to ask that it detects the encoding of the source
RSS feed and marks the parsed strings with the correct encoding...
2016-08-25 16:09:07 +10:00
Arpit Jalan
a2220feaea
FEATURE: new site setting rebake_old_posts_count
2016-08-15 16:34:13 +05:30
Arpit Jalan
c064e946b2
FIX: custom reason for flags were not showing for non-english locales
2016-08-05 18:41:11 +05:30
Régis Hanol
c591429868
FIX: don't destroy uploads in queued posts and drafts
2016-08-01 18:35:57 +02:00
Sam
12dc511fea
PERF: make score calculator cheaper when site has long topics
2016-07-22 09:48:44 +10:00
Guo Xiang Tan
1ea1cefb35
Extract Nginx log analyzer into a plugin that ships with Discourse.
2016-07-19 15:44:00 +08:00
Guo Xiang Tan
bd07658a37
PERF: Split queries when cleaning uploads.
...
This reduces the number of scans that the db has to do in the query
to fetch orphan uploads. Futheremore, we were not batching our
records which bloats memory.
2016-07-04 16:34:32 +08:00
Régis Hanol
2ecd0da59f
REFACTOR: use same code path for handling emails via API and POP
2016-06-22 15:50:49 +02:00
Régis Hanol
e9a293beeb
FIX: clean up uploads job
2016-06-20 22:05:41 +02:00
Sam
852860de66
FEATURE: simpler and friendlier unsubscribe workflow
...
- All unsubscribes go to the exact same page
- You may unsubscribe from watching a category on that page
- You no longer need to be logged in to unsubscribe from a topic
- Simplified footer on emails
2016-06-17 11:28:49 +10:00
Sam
c9dcffe434
FEATURE: store history for scheduled job execution
2016-05-30 11:38:08 +10:00
James Kiesel
feffe23cc5
FEATURE: More granular mailing list mode ( #4068 )
...
* Rearrange frontend to account for mailing list mode
* Allow update of user preference for mailing list frequency
* Add mailing list frequency estimate
* Simplify frequency estimate; disable activity summary for mailing list mode
* Remove combined updates
* Add specs for enqueue mailing list mode job
* Write mailing list method for mailer
* Fix linting error
* Account for stale topics
* Add translations for default mailing list setting
* One query for mailing list topics
* Fix failing spec
* WIP
* Flesh out html template
* First pass at text-based mailing list summary
* Add user avatar
* Properly format posts for mailing list
* Move make_all_links_absolute into Email::Styles
* Apply first_seen_at to user
* Send mailing list email summary hourly based on first_seen_at
* Branch and test cleanup
* Use existing mailing list mode estimate
* Fix failing specs
2016-05-21 15:17:54 +02:00
Sam Saffron
ce5867cce2
workaround issue where orphan user_avatar record exists
2016-05-17 09:40:17 +10:00
Régis Hanol
3df8f184c3
FEATURE: clean up 1 year old and unused staged users
2016-05-16 22:13:23 +02:00
Régis Hanol
21ce674546
fix translation when receiving a bounce or an auto-reply
2016-05-16 08:42:30 +02:00
Régis Hanol
1e57bbf5c8
Lots bounce emails related fixes
...
- Show bounce score on user admin page
- Added reset bounce score button on user admin page
- Only whitelisted email types are sent to emails with high bounce score
- FIX: properly detect bounces even when there is no TO: header in the email
- Don't desactivate a user when reaching the bounce threshold
2016-05-06 19:34:33 +02:00
Arpit Jalan
9427e0c732
FIX: bootstrap mode should not amend setting that is not in default state
2016-05-04 16:46:46 +05:30
Régis Hanol
8e611ec7a1
FEATURE: handle bounced emails
2016-05-02 23:15:32 +02:00
Arpit Jalan
74b3807f60
FEATURE: new bootstrap mode settings for brand new Discourse community ( #4193 )
...
* FEATURE: new bootstrap mode settings for brand new Discourse community
* new SiteSetting.set_and_log method
2016-04-26 13:08:19 -04:00
Guo Xiang Tan
a556d9ad4e
FIX: Expiry should be 3 times polling interval.
2016-04-21 15:04:03 +08:00
Guo Xiang Tan
b4e0c5afe0
FIX: Fetch stats if it has not been cached.
2016-04-21 14:50:25 +08:00
Régis Hanol
7d9f2265b9
FIX: improve support for handling emails coming from screened email addresses
2016-04-18 23:01:54 +02:00
Guo Xiang Tan
f95cefd09a
FEATURE: Add POP3 timeout error only after 3 failures in a row.
2016-04-14 08:55:19 +08:00
Régis Hanol
8fcd359e2a
Revert "FIX: Jobs.cancel_scheduled_job wasn't working anymore due to our move to using multiple queues"
...
This reverts commit b7c16991f7
.
2016-04-13 18:30:25 +02:00
Régis Hanol
b7c16991f7
FIX: Jobs.cancel_scheduled_job wasn't working anymore due to our move to using multiple queues
...
FIX: Don't queue more than 1 'update_gravatar' job per user
2016-04-13 18:12:28 +02:00
Régis Hanol
4d9c81fde7
Merge pull request #4148 from tgxworld/dont_reply_to_emails_that_are_autogenerated
...
FIX: Don't send rejection mailer to bounced emails.
2016-04-13 15:36:14 +02:00
Neil Lalonde
7f0b1691c4
FEATURE: add pop3 timeouts and auth errors to admin dashboard. Admins will get notified along with other problems.
2016-04-08 17:33:47 -04:00
Neil Lalonde
9c934e27be
FEATURE: notify admins if problems have been reported on the dashboard for a while
2016-04-08 16:44:13 -04:00
Robin Ward
9d8db11cf3
Move MigrateScheme
to new Onceoff thing
2016-04-07 15:31:32 -04:00
Robin Ward
3f7ced9236
Try running once off jobs outside of db:migrate
2016-04-07 15:07:24 -04:00
Guo Xiang Tan
5734c7f3f3
FIX: Don't send rejection mailer to bounced emails.
2016-04-07 22:21:17 +08: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
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
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
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
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
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
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
8608b5cbc1
FIX: don't poll the mailbox in development
2016-02-01 16:56:32 +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
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
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
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
Régis Hanol
3c2486e2ba
FIX: compare UTC dates to schedule backups
2015-11-12 18:35:03 +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
acecfeb37f
Add 'staged' boolean to User
2015-11-06 19:19:13 +01: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
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
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