Ralph Rooding
0d9fdbf8fe
FEATURE: Allow import of hidden site settings ( #7601 )
...
* Allow optional import of hidden site settings
* Always import hidden settings
2019-05-28 16:20:18 +10:00
Robin Ward
89b84651c3
Migrate score settings to use sensitivities
...
We hide scores so these settings no longer made sense.
2019-05-24 15:44:24 -04:00
Guo Xiang Tan
a36fe019bb
DEV: Fix race condition when enqueuing edit wiki-ed notification.
2019-05-16 13:48:46 +08:00
Penar Musaraj
fc5bb39096
FIX: Do not send duplicate alerts for the same post ( #7476 )
2019-05-15 18:47:36 +02:00
Arpit Jalan
a2b1789c3e
FIX: do not log username change if the save process was unsuccessful
2019-05-13 22:20:27 +05:30
Sam Saffron
30990006a9
DEV: enable frozen string literal on all files
...
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.
Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
Guo Xiang Tan
f04518fdf9
DEV: Reduce number of jobs enqueued.
...
Apply code review suggestion from
405ba00c08
.
2019-05-08 15:58:08 +08:00
Guo Xiang Tan
405ba00c08
FEATURE: Create notifications on wiki edits for watching users.
...
* Moves creation of notification into background job.
2019-05-08 15:31:10 +08:00
Guo Xiang Tan
152238b4cf
DEV: Prefer public_send
over send
.
2019-05-07 09:33:21 +08:00
Guo Xiang Tan
d252dad4f0
FIX: Can't remove user profile uploads.
...
Follow up to 24347ace10
.
2019-05-02 16:54:10 +08:00
Guo Xiang Tan
24347ace10
FIX: Properly associate user_profiles background urls via upload id.
...
`Upload#url` is more likely and can change from time to time. When it
does changes, we don't want to have to look through multiple tables to
ensure that the URLs are all up to date. Instead, we simply associate
uploads properly to `UserProfile` so that it does not have to replicate
the URLs in the table.
2019-05-02 14:58:24 +08:00
Gerhard Schlager
876c4f20b3
FIX: Remove duplicate Emoji names from blurb
...
The blurb contained the value of the alt and title attribute of Emojis. Both values are always the same.
2019-04-29 17:26:39 +02:00
Gerhard Schlager
71d19f6e1f
FIX: Reduce mentions in blurbs to @username or @groupname
...
The link to the user profile or group is useless and the URL encoded username or group name looks awful for Unicode names
2019-04-29 17:26:39 +02:00
Sam Saffron
45285f1477
DEV: remove update_attributes which is deprecated in Rails 6
...
See: https://github.com/rails/rails/pull/31998
update_attributes is a relic of the past, it should no longer be used.
2019-04-29 17:32:25 +10:00
Tarek Khalil
6e46197bc8
FIX: Disable webhooks on 410 and 404 HTTP responses ( #7392 )
...
FIX: Disable webhooks on 410 and 404 HTTP responses (#7392 )
2019-04-18 12:36:37 +01:00
Robin Ward
14f9d40e48
FEATURE: Clarify Reviewable User Actions
...
"Approve" is now "Approve User" and "Delete" is a dropdown with a choice
that allows you to block.
2019-04-17 11:44:17 -04:00
Penar Musaraj
6bbdf5b56e
DEV: add "pre_notification_alert" event
...
Allows plugins to modify payload before sending a notification alert
2019-04-15 10:17:15 -04:00
Penar Musaraj
24fd710f04
Revert "FIX: strip spoilers in notification excerpts"
...
This reverts commit 55942224ed
.
2019-04-15 10:15:17 -04:00
Penar Musaraj
55942224ed
FIX: strip spoilers in notification excerpts
2019-04-12 12:00:49 -04:00
David Taylor
24ef4f7b2b
Remove support for disable_jump_reply user setting ( #7359 )
2019-04-12 09:03:06 +10:00
David Taylor
dc703adad7
FEATURE: Add user preference for title counter mode ( #7364 )
2019-04-12 09:02:18 +10:00
Robin Ward
5d99346740
FIX: Always allow us to reject users, even if they are deleted
2019-04-10 11:00:39 -04:00
Robin Ward
a4ff593506
UX: Slightly improved reviewable user display, plus link to admin if possible
2019-04-03 17:07:48 -04:00
Robin Ward
111a502231
FIX: Deleting Users should work nicely with Reviewable Users
...
"Rejecting" a user in the queue is equivalent to deleting them, which
would then making it impossible to review rejected users. Now we store
information about the user in the payload so if they are deleted things
still display in the Rejected view.
Secondly, if a user is destroyed outside of the review queue, it will
now automatically "Reject" that queue item.
2019-04-03 16:42:39 -04:00
Robin Ward
1bce97a596
FIX: Allow queued posts from deleted users to be rejected
2019-04-03 11:40:46 -04: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
3cba10b9ca
DEV: Don't warn when trying to reindex a post with a deleted topic.
2019-04-01 17:04:32 +08:00
Guo Xiang Tan
2a69ab4a4c
FIX: Keep alt
and title
in lightbox when indexing for search.
...
Follow up to cfd507822f
2019-04-01 16:20:33 +08:00
Guo Xiang Tan
cfd507822f
PERF: Improve quality of PostSearchData#raw_data
. ( #7275 )
...
This commit fixes the follow quality issue with `PostSearchData#raw_data`:
1. URLs are being tokenized and links with similar href and characters
are being duplicated in the raw data.
`Post#cooked`:
```
<p><a href=\"https://meta.discourse.org/some.png \" class=\"onebox\" target=\"_blank\" rel=\"nofollow noopener\">https://meta.discourse.org/some.png </a></p>
```
`PostSearchData#raw_data` Before:
```
This is a test topic 0 Uncategorized https://meta.discourse.org/some.png discourse org/some png https://meta.discourse.org/some.png discourse org/some png
```
`PostSearchData#raw_data` After:
```
This is a test topic 0 Uncategorized https://meta.discourse.org/some.png meta discourse org
```
2. Ligthbox being included in search pollutes the
`PostSearchData#raw_data` unncessarily.
From 28 March 2018 to 28 March 2019, searches for the term `image` on
`meta.discourse.org` had a click through rate of 2.1%. Non-lightboxed images are not included in indexing for search yet we were indexing content within a lightbox. Also, search for terms like `image` was affected we were using `Pasted image` as the filename for
uploads that were pasted.
`Post#cooked`
```
<p>Let me see how I can fix this image<br>\n<div class=\"lightbox-wrapper\"><a class=\"lightbox\" href=\"https://meta.discourse.org/some.png \" title=\"some.png\" rel=\"nofollow noopener\"><img src=\"https://meta.discourse.org/some.png \" width=\"275\" height=\"299\"><div class=\"meta\">\n<svg class=\"fa d-icon d-icon-far-image svg-icon\" aria-hidden=\"true\"><use xlink:href=\"#far-image\"></use></svg><span class=\"filename\">some.png</span><span class=\"informations\">1750×2000</span><svg class=\"fa d-icon d-icon-discourse-expand svg-icon\" aria-hidden=\"true\"><use xlink:href=\"#discourse-expand\"></use></svg>\n</div></a></div></p>
```
`PostSearchData#raw_data` Before:
```
This is a test topic 0 Uncategorized Let me see how I can fix this image some.png png https://meta.discourse.org/some.png discourse org/some png some.png png 1750×2000
```
`PostSearchData#raw_data` After:
```
This is a test topic 0 Uncategorized Let me see how I can fix this image
```
In terms of indexing performance, we now have to parse the given HTML
through nokogiri twice. However performance is not a huge worry here since a string length of 194170 takes only 30ms
to scrub plus the indexing takes place in a background job.
2019-04-01 10:14:29 +08: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
Maja Komel
4a3daacb1b
FIX: reset embedding settings when no embeddable host, log host changes ( #7264 )
2019-03-29 17:05:51 +01: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
Maja Komel
34730a0b16
UX: show if webhook is disabled ( #7217 )
...
+ show in staff logs when webhook is created/updated/destroyed
2019-03-21 16:13:09 +01:00
Tarek Khalil
a31a35b334
FEATURE: Ignored user notification behaviour should be as a muted user ( #7227 )
2019-03-21 12:15:34 +01:00
Tarek Khalil
1dd0fa0c4e
REFACTOR: Move redundant ignored user check into guardian ( #7219 )
...
* REFACTOR: Move redundant ignored user check into guardian
2019-03-20 19:55:46 +00:00
Tarek Khalil
5852e86226
FEATURE: Only allow TL2 Users to ignore other users ( #7212 )
2019-03-20 15:02:33 +01:00
Tarek Khalil
3b59ff0d02
[FEATURE] Disallow ignoring self, admins or moderators users ( #7202 )
2019-03-20 11:18:46 +01:00
Guo Xiang Tan
d808f36fc4
FIX: Reindex post for search when post is moved to a different topic.
...
* This is causing certain posts to appear in searches incorrectly as `PostSearchData#raw_data` contains the outdated title, category name and tag names.
2019-03-19 17:19:14 +08:00
Penar Musaraj
9334d2f4f7
FEATURE: add more granular user option levels for email notifications ( #7143 )
...
Migrates email user options to a new data structure, where `email_always`, `email_direct` and `email_private_messages` are replace by
* `email_messages_level`, with options: `always`, `only_when_away` and `never` (defaults to `always`)
* `email_level`, with options: `always`, `only_when_away` and `never` (defaults to `only_when_away`)
2019-03-15 10:55:11 -04:00
Guo Xiang Tan
b0c8fdd7da
FIX: Properly support defaults for upload site settings.
2019-03-13 16:36:57 +08:00
Bianca Nenciu
191e31dccf
FEATURE: Log user approvals. ( #7121 )
2019-03-12 19:16:56 +11:00
Dan Ungureanu
32bae48fd3
DEV: Use User#human? User#bot? ( #7140 )
2019-03-12 07:58:14 +08:00
Tarek Khalil
d6eb892b04
FEATURE: Account for ignored_users
when merging two users ( #7142 )
...
* FEATURE: Account for `ignored_users` when merging two users
## Why?
This is part of the [Ability to ignore a user feature](https://meta.discourse.org/t/ability-to-ignore-a-user/110254/8 ).
When we merge two users, we need to account for merging their list of `ignored_users` too.
2019-03-11 13:53:59 +00:00
David Taylor
fc7938f7e0
REFACTOR: Migrate GoogleOAuth2Authenticator to use ManagedAuthenticator ( #7120 )
...
https://meta.discourse.org/t/future-social-authentication-improvements/94691/3
2019-03-07 11:31:04 +00:00
Tarek Khalil
0a9a11094d
FEATURE: Save ignored usernames in user preferences ( #7117 )
...
* FEATURE: Save ignored usernames in user preferences
2019-03-06 11:21:58 +00:00
Davide Porrovecchio
75aaae5d5c
FEATURE: Allow wildcard in allowed_user_api_auth_redirects setting ( #6779 )
2019-02-26 17:03:20 +01:00
Vinoth Kannan
d1bad881ea
FEATURE: Allow moderators to change topic timestamps ( #7053 )
2019-02-22 14:33:52 +05:30
Gerhard Schlager
b0862bd15d
FIX: Push notifications could fail with UnauthorizedRegistration
...
The webpush gem by default sets the expiration date of the JWT token to exactly 24 hours in the future. That's not really needed because the token isn't reused. And it might cause UnauthorizedRegistration if the server's clock isn't 100% correct, because the maximum allowed value is 24 hours.
2019-02-15 21:12:09 +01:00
Gerhard Schlager
17f1a76570
FIX: Delete push subscription on MismatchSenderId error
...
This should prevent repeated MismatchSenderId warnings when the VAPID keys have changed.
2019-02-15 21:12:09 +01:00
Arpit Jalan
99c6db21e6
FEATURE: allow blocking emojis ( #7011 )
...
https://meta.discourse.org/t/blocking-emojis-wont-work/105853
2019-02-15 20:55:48 +05:30
Régis Hanol
7aecd3c2f5
Update app/services/user_silencer.rb
...
Co-Authored-By: eviltrout <robin.ward@gmail.com>
2019-02-08 08:50:50 -05:00
Robin Ward
bc3efab816
FIX: When disagreeing with a flag that silenced a user, unsilence them
...
Previously it would unhide their post but leave them silenced.
This fix also cleans up some of the helper classes to make it easier
to pass extra data to the silencing code (for example, a link to the
post that caused the user to be silenced.)
This patch also refactors the auto_silence specs to avoid using
stubs.
2019-02-08 08:50:50 -05:00
Gerhard Schlager
1e98929501
FIX: Email domain whitelist prevented user anonymizing
...
FIX: Secondary email addresses were not deleted during anonymizing
2019-01-30 15:14:36 +01:00
David Taylor
aca0b32fda
FEATURE: Allow overriding text size from a different device ( #6955 )
...
This brings the feature in line with the theme selection system
2019-01-28 11:19:50 +00:00
Maja Komel
45f66826ee
PERF: delete potentially large associated tables before user_destroyer.destroy transaction
2019-01-18 16:10:03 +01:00
Guo Xiang Tan
aa2cc4ab31
FIX: Liked notification consolidation has to account for user like frequency setting.
2019-01-17 14:33:23 +08:00
Sam
6079a3e4d0
FEATURE: allow calling user destroyer without a transaction
...
This additional option allows us to destroy a user in "pieces" in cases
where database is very big and stuff tends to time out
2019-01-17 07:56:17 +11:00
Angus McLeod
79eb1b8e16
FIX: Add watching_first_post to NOTIFIABLE_TYPES ( #6887 )
2019-01-16 11:49:15 +00:00
Guo Xiang Tan
e7b49c42c4
FIX: Allow liked notifications consolidation to be disabled.
2019-01-16 16:17:04 +08:00
Guo Xiang Tan
27e2b6575b
FIX: Liked notifications should not be consolidated across multiple users.
2019-01-16 15:01:13 +08:00
Guo Xiang Tan
ebe65577ed
FEATURE: Consolidate likes notifications. ( #6879 )
2019-01-16 10:40:16 +08:00
David Taylor
1ebd3dbbd0
FEATURE: Allow the base font size to be changed on a per-user basis ( #6859 )
2019-01-14 13:21:46 +00:00
Gerhard Schlager
978cc0cfca
FIX: Remove expired subscription for push notifications
...
All other errors get logged, but do not stop the system from sending further push notifications.
2019-01-10 15:41:04 +01:00
Régis Hanol
88e861e895
FIX: prevent error when badge has already been awarded
2019-01-04 15:17:54 +01:00
Régis Hanol
2988d281fc
DEV: group all collapsed notifications
2018-12-24 12:44:50 +01:00
David Taylor
160d29b18a
REFACTOR: Migrate TwitterAuthenticator to use ManagedAuthenticator ( #6739 )
...
No changes to functionality. TwitterAuthenticator goes from 136 lines to 24, and all twitter-specific logic elsewhere has been deleted 🎉
2018-12-07 15:39:06 +00:00
Sam
82e45f5485
FIX: method extraction caused push notifications to include incorrect post
...
Previously the push notification code path was not tested for notification
collapsing. This happens if you get multiple replies to a topic you are
watching.
2018-12-05 16:40:10 +11:00
Régis Hanol
3c9c95ac83
Update Rubocop to 0.60
2018-12-04 10:48:16 +01:00
Sam
aa97f6fdba
FEATURE: disable notifications for small actions that are whispers
...
Previously we would notify on small actions if they were whispers
this inconsistently lead to all sorts of problems including
- collapsed "N replies" after assign
- empty push notifications
New behavior adds an api to explicitly send push notifications as well
if needed: create_notification_alert
2018-12-04 17:54:42 +11:00
David Taylor
208005f9c9
REFACTOR: Migrate FacebookAuthenticator to use ManagedAuthenticator
...
Changes to functionality
- Removed syncing of user metadata including gender, location etc.
These are no longer available to standard Facebook applications.
- Removed the remote 'revoke' functionality. No other providers have
it, and it does not appear to be standard practice in other apps.
- The 'facebook_no_email' event is no longer logged. The system can
cope fine with a missing email address.
Data is migrated to the new user_associated_accounts table.
facebook_user_infos can be dropped once we are confident the data has
been migrated successfully.
2018-11-30 11:18:11 +00:00
Arpit Jalan
059e36a6ff
FIX: log name changes only when the name is actually updated
2018-11-30 15:30:46 +05:30
Gerhard Schlager
886ef7251d
REFACTOR: Simplify extraction of mentions
2018-11-27 12:46:02 +01:00
Gerhard Schlager
5640166b27
FIX: Notify only invited users about mentions in PMs
2018-11-26 22:42:56 +01:00
Guo Xiang Tan
44391ee8ab
FEATURE: Upload Site Settings. ( #6573 )
2018-11-14 15:03:02 +08:00
Gerhard Schlager
24e5be3f0c
FIX: Relative links in translations should work with subfolder
2018-11-08 23:31:05 +00:00
Robin Ward
242a5fc5ef
Add DiscourseEvents for when users as unsuspended/unsilenced
2018-11-08 16:33:38 -05: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
Daniel Hollas
cee51672c9
FIX: Strip accents from search query
...
4481836
introduced accent stipping in search_indexer,
but we need to strip it from the query itself as well
TODO in search with diacritics:
- Still need to fix excerpts on search page
- need to support accent stripping in in_topic search
- need to make sure that in:title works correctly
- need to fix "word boldening" in titles
2018-10-23 12:10:33 +11:00
Maja Komel
27e732a58d
FEATURE: allow multiple secrets for Discourse SSO provider
...
This splits off the logic between SSO keys used incoming vs outgoing, it allows to far better restrict who is allowed to log in using a site.
This allows for better auditing of the SSO provider feature
2018-10-15 16:03:53 +11: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
Robin Ward
a566ed42ae
FEATURE: Option to disable user presence and profile
...
This allows users who are privacy conscious to disable the presence
features of the forum as well as their public profile.
2018-10-10 17:34:33 -04:00
Sam
550e108a8c
FEATURE: only export settings that changed via rake task
2018-10-08 11:54:52 +11:00
David Taylor
9bf522f227
FEATURE: Mixed case tagging ( #6454 )
...
- By default, behaviour is not changed: tags are made lowercase upon creation and edit.
- If force_lowercase_tags is disabled, then mixed case tags are allowed.
- Tags must remain case-insensitively unique. This is enforced by ActiveRecord and Postgres.
- A migration is added to provide a `UNIQUE` index on `lower(name)`. Migration includes a safety to correct any current tags that do not meet the criteria.
- A `where_name` scope is added to `models/tag.rb`, to allow easy case-insensitive lookups. This is used instead of `Tag.where(name: "blah")`.
- URLs remain lowercase. Mixed case URLs are functional, but have the lowercase equivalent as the canonical.
2018-10-05 10:23:52 +01:00
Neil Lalonde
dc1e7bb645
UX: when admin is deleted, make it clear in staff action logs when records belong to a deleted user and show their username in the details
2018-10-02 13:46:54 -04:00
Kyle Zhao
e402394375
FEATURE: auto grant an available title when removing old title
...
* FEATURE: auto grant an available title when removing old title
2018-09-21 12:06:08 +10:00
Vinoth Kannan
9281b72308
FEATURE: Log entity export in staff logs
2018-09-19 03:16:45 +05:30
Régis Hanol
4481836de2
FEATURE: new 'search_ignore_accents' site setting
2018-09-17 10:42:30 +02:00
Régis Hanol
30619c244c
FIX: don't index urls to local files
2018-09-13 18:53:53 +02:00
David Taylor
84fc7abb73
FIX: Allow rake destroy:topics
to delete topics in sub-categories
2018-09-10 12:52:14 +01:00
Sam
9b7cab589a
FIX: revert diacritic stripping
...
See more details in test case and at: https://meta.discourse.org/t/discourse-should-ignore-if-a-character-is-accented-when-doing-a-search/90198/16?u=sam
2018-08-31 11:46:55 +10:00
James Kiesel
a4001c1ea0
FEATURE: Pop revise modal on post edited notification ( #6287 )
...
* Add revision number to notification url
* Pop modal on route change
* Add semicolon
* Ensure modal pops even when navigating within a topic
* Ensure modal pops when visiting from other page
* Fix eslint errors
* Fix prettier errors
* Add callback for notification item click
* Remove stray revisionUrl function
* Rename to afterRouteComplete
2018-08-24 09:13:07 -04:00
Sam
ac11f8df52
correct regression searching with diacritics
2018-08-24 10:00:51 +10:00
Régis Hanol
c26de01399
Use NFKD normalization instead of NFD
2018-08-24 00:52:53 +02:00
Régis Hanol
bc7b530b0a
FIX: remove diacritics instead of transliterating
2018-08-24 00:38:44 +02:00
Régis Hanol
f4ae53d52b
Return immediately when there's no html to scrub
2018-08-23 18:00:07 +02:00
Régis Hanol
2fcf2b899e
FIX: remove diacritics when tokenizing html for search
2018-08-23 17:13:52 +02:00
Gerhard Schlager
5ed582551a
FIX: SpamRulesEnforcer should use default locale
2018-08-20 15:08:12 +02:00
Bianca Nenciu
975a72ab7a
FEATURE: Make links indexable. ( #6285 )
2018-08-20 10:39:19 +10:00
Osama Sayegh
865cb3feb9
FIX: allow selecting site's default theme from preference
2018-08-10 14:12:02 +03:00
Guo Xiang Tan
919e8db686
FIX: Check for group name availability should skip reserved usernames.
2018-08-01 11:09:33 +08:00
David Taylor
eda1462b3b
FEATURE: List, revoke and reconnect associated accounts. Phase 1 ( #6099 )
...
Listing connections is supported for all built-in auth providers. Revoke and reconnect is currently only implemented for Facebook.
2018-07-23 16:51:57 +01:00
Maja Komel
368d4e8eae
FIX: notify staff about whispers in watched categories ( #6128 )
2018-07-21 11:20:21 +02:00
OsamaSayegh
decf1f27cf
FEATURE: Groundwork for user-selectable theme components
...
* Phase 0 for user-selectable theme components
- Drops `key` column from the `themes` table
- Drops `theme_key` column from the `user_options` table
- Adds `theme_ids` (array of ints default []) column to the `user_options` table and migrates data from `theme_key` to the new column.
- Removes the `default_theme_key` site setting and adds `default_theme_id` instead.
- Replaces `theme_key` cookie with a new one called `theme_ids`
- no longer need Theme.settings_for_client
2018-07-12 14:18:21 +10:00
Sam
cb824a6b33
DEV: remove all calls to SqlBuilder use DB.build instead
...
This is part of the migration to mini_sql, SqlBuilder.new is being
deprecated and replaced with DB.build
2018-06-20 17:53:49 +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
Arpit Jalan
f1d1207725
FIX: improve context when user deletes self
2018-06-18 11:36:22 +05:30
Gerhard Schlager
150ae21489
FEATURE: Log user merge in staff logs
2018-06-11 18:43:56 +02:00
Gerhard Schlager
a26889ada2
FIX: Don't delete profile views during user anonymization
...
There's no need for that and it can take a lot of time.
2018-06-08 15:50:07 +02:00
Gerhard Schlager
4ba910ac54
Update username only after successful user anonymization
2018-06-08 15:50:07 +02:00
Gerhard Schlager
2564a8285d
REFACTOR: Run some parts of user anonymizing in background job
2018-06-08 15:50:07 +02:00
Gerhard Schlager
cf038cf72a
FEATURE: Remove more PII during user anonymizing
...
Removes
* invite if the user was invited
* email tokens
* incoming emails
* email log entries
* raw emails from posts
2018-06-08 15:50:07 +02:00
Guo Xiang Tan
ad5082d969
Make rubocop happy again.
2018-06-07 13:28:18 +08:00
Sam
89ad2b5900
DEV: Rails 5.2 upgrade and global gem upgrade
...
This updates tests to use latest rails 5 practice
and updates ALL dependencies that could be updated
Performance testing shows that performance has not regressed
if anything it is marginally faster now.
2018-06-07 14:21:33 +10:00
Arpit Jalan
36f9af4fa4
minor optimizations for post rejected logs
2018-06-02 09:44:55 +05:30
Arpit Jalan
89eca87f16
FEATURE: add staff action log for post rejections
2018-06-01 21:48:27 +05:30
Gerhard Schlager
b970b072f6
FIX: User merge should not fail when primary email address is missing
...
The merge process might move all email addresses of the source user to the target user. Destroying the source user failed in that case.
2018-06-01 16:23:21 +02:00
Régis Hanol
f988fa31aa
FIX: ensure 'notifications_state' is up to date after creating a notification
2018-05-26 02:09:48 +02:00
Guo Xiang Tan
9d307a9977
FIX: Destroy notifications and sync notifications count in transaction.
...
* Seeing errors where the user is destroyed right when the call to
reload is made.
2018-05-25 12:01:36 +08:00
Guo Xiang Tan
755b511b5c
PERF: Destroy collapsed notifications in 1 query instead of 3.
2018-05-25 12:01:36 +08:00
Régis Hanol
bb8f0087f4
Add a warning when PostAlerter isn't running in sidekiq
2018-05-24 17:52:59 +02:00
Régis Hanol
71f66cd679
FIX: ensure PostAlerter is always run in sidekiq
2018-05-24 17:27:43 +02:00
Guo Xiang Tan
2aad91d4a2
PERF: Don't bloat the Sidekiq queue with Jobs::SendPushNotification
.
2018-05-24 10:04:09 +08:00
Guo Xiang Tan
be49da9105
FIX: Don't silently fail if notification fails to create.
2018-05-24 10:04:09 +08:00
Guo Xiang Tan
ad9e0d6bea
Merge pull request #5848 from OsamaSayegh/fix-social-login-groups
...
FIX: apply automatic group rules when using social login providers
2018-05-23 08:17:42 +08:00
OsamaSayegh
f6d412465b
FIX: apply automatic group rules when using social login providers
2018-05-23 02:26:07 +03:00
Sam
45f65859c9
improve erraticly failing spec
2018-05-23 08:39:15 +10:00
Régis Hanol
53f8f6095d
FEATURE: staff action logs when creating/updating/deleting badges
2018-05-17 18:09:27 +02:00
Guo Xiang Tan
147ea37115
FIX: Missing notification for watching first post users when topic is recategorized.
...
https://meta.discourse.org/t/not-receiving-notifications-for-announcements/87275/2?u=tgxworld
2018-05-17 16:15:29 +08:00
Régis Hanol
b284464a91
FIX: PostOwnerChange should update 'topic.last_poser'
2018-05-16 19:48:04 +02:00
Gerhard Schlager
3464b05e41
FIX: Allow editing post that belongs to deleted topic
2018-05-15 20:50:31 +02:00
Gerhard Schlager
2e1b5bc8d3
FIX: Transaction in UserAnonymizer prevented avatar from updating
2018-05-15 20:47:58 +02:00
Régis Hanol
93ed8d2522
PERF: defer user notifications ( #5827 )
2018-05-15 09:51:32 +02:00
Gerhard Schlager
49392fb105
FIX: Anonymizing user didn't replace uploaded avatar in posts
2018-05-14 13:20:29 +02:00
Guo Xiang Tan
2eb2f273a8
Refactor of PushSubscriptionPusher
.
2018-05-09 08:14:14 +08:00
Jeff Wong
7f1f697e97
FIX: de-duplicate push subscriptions - ensure unique user/key
2018-05-08 15:20:39 -07:00
Gerhard Schlager
2e67998319
Improvements for user renaming ( #5810 )
...
* FEATURE: Update avatars in posts and revisions when user gets renamed
* FIX: Replace username in deleted posts when user gets renamed
* FEATURE: Replace username in notifications when user gets renamed
FEATURE: Update mentions and quotes when user gets merged
2018-05-08 10:02:43 -04:00
Guo Xiang Tan
fc4fde453d
PERF: Remove N+1 query.
2018-05-07 18:21:48 +08:00
Jeff Wong
91b31860a1
Feature: Push notifications for Android ( #5792 )
...
* Feature: Push notifications for Android
Notification config for desktop and mobile are merged.
Desktop notifications stay as they are for desktop views.
If mobile mode, push notifications are enabled.
Added push notification subscriptions in their own table, rather than through
custom fields.
Notification banner prompts appear for both mobile and desktop when enabled.
2018-05-04 15:31:48 -07:00
Robin Ward
05dddcb2fd
Add an event that is triggered when a user is anonymized
2018-05-02 12:25:29 -04:00
Gerhard Schlager
3be3c50c7e
FEATURE: Rename user in mentions and quotes
...
Co-authored-by: Robin Ward <robin.ward@gmail.com>
2018-05-01 13:49:14 -04:00
Robin Ward
e21a4ce1dd
FEATURE: Support anonymizing a user's IP addresses
2018-04-30 14:09:03 -04:00
Neil Lalonde
f7c4c71409
FIX: title selector needs to flag whether title comes from badge or not
2018-04-26 16:51:11 -04:00
Neil Lalonde
bd77795d7a
REFACTOR: move support for user card badge images to a plugin discourse-user-card-badges
2018-04-26 13:25:24 -04:00
Sam
6676bbd38b
FEATURE: index YouTube titles in search
...
Previously we omitted the titles for videos that YouTube provided
2018-04-26 15:46:52 +10:00
Gerhard Schlager
ec29869350
FIX: Merging users failed when PM was sent to source and target user
2018-04-24 11:08:29 -04:00
Arpit Jalan
0a442977b3
FEATURE: add staff action log for post approvals
2018-04-23 11:28:44 +05:30
Maja Komel
3d99726981
FIX: set notification level when changing post owner ( #5616 )
...
FIX: do not notify last post editor if they mention themself
2018-04-16 11:48:06 +02:00
Gerhard Schlager
f042a9529b
FIX: users shouldn't get notifications about mentions from system users
...
(unless the mentioned users are participants in a PM with the system user)
2018-04-12 16:19:44 +02:00
Gerhard Schlager
62aacce8f4
FEATURE: Notify flaggers when flagged post is edited by author
2018-04-09 16:45:33 +02:00
Guo Xiang Tan
e4a9242ada
FIX: Can't upload backup.
...
* Regression introduced in 142571bba0
2018-04-06 10:14:17 +08:00
Guo Xiang Tan
142571bba0
Remove use of rescue nil
.
...
* `rescue nil` is a really bad pattern to use in our code base.
We should rescue errors that we expect the code to throw and
not rescue everything because we're unsure of what errors the
code would throw. This would reduce the amount of pain we face
when debugging why something isn't working as expexted. I've
been bitten countless of times by errors being swallowed as a
result during debugging sessions.
2018-04-02 13:52:51 +08:00
Blake Erickson
31ce955487
Add destroy rake task
...
Adds several rake tasks to delete users, topics, pm's and site stats so
that you can have a fresh site but maintain site settings and category
structure.
2018-03-30 18:32:21 -06:00
Robin Ward
e4298a91b8
Pass silenced_by
through to DiscourseEvent
2018-03-29 16:44:18 -04:00
Neil Lalonde
73c1d3e7fe
FIX: tag notification preferences were being cleared when other preferences were changed
2018-03-29 15:08:32 -04:00
Blake Erickson
9fdf139235
Add tests for Site Settings import/export
...
- extracted out site settings rake task to a class
- added tests for import and export of site settings
2018-03-23 14:55:17 -06:00
Arpit Jalan
d96c1058a2
FEATURE: add staff action log for 'restore topic'
2018-03-21 18:04:13 +05:30
Robin Ward
b9abd7dc9e
FEATURE: Shared Drafts
...
This feature can be enabled by choosing a destination for the
`shared drafts category` site setting.
* Staff members can create shared drafts, choosing a destination
category for the topic when it is published.
* Shared Drafts can be viewed in their category, or above the
topic list for the destination category where it will end up.
* When the shared draft is ready, it can be published to the
appropriate category by clicking a button on the topic view.
* When published, Drafts change their timestamps to the current
time, and any edits to the original post are removed.
2018-03-20 17:15:26 -04:00
Robin Ward
135195363b
FIX: Not logging old post contents properly
2018-03-14 15:01:36 -04:00
Robin Ward
65ac80b014
FEATURE: Log Staff edits in Staff Action Logs
...
Why? Some edits by staff are not tracked. For example, during the grace
period, or via the flags/silence dialog.
If a staff member is editing someone else's post, it now goes into the
Staff Action Logs so it can be audited by other staff members.
2018-03-12 13:51:40 -04:00
Gerhard Schlager
dc77cce8d9
FIX: Create notifications for mentions in PMs
2018-03-09 11:04:29 +01:00
Gerhard Schlager
07649cd42d
FIX: email_domains_whitelist prevented creation of anonymous users
2018-03-06 18:14:53 +01:00
Robin Ward
0f66a99eb2
Setting to prevent logging details when anonymizing
2018-03-05 14:38:18 -05:00
Guo Xiang Tan
2f65393706
REFACTOR: Use Topic#private_message?
to reduce duplication.
2018-03-05 15:39:22 +08:00
Régis Hanol
25d80aabce
remove 'puts'
2018-03-02 01:50:24 +01:00
Gerhard Schlager
80e85e0d8f
FIX: Sidekiq job has wrong data when post owner changes within transaction
2018-03-01 18:00:18 +01:00
Gerhard Schlager
79590e4bec
FIX: Merging users shouldn't add more than 1 secondary email
2018-03-01 17:50:13 +01:00
Gerhard Schlager
a7c50039de
FIX: Allow changing post owner even when topic validations fail
2018-03-01 17:31:58 +01:00
Gerhard Schlager
7a2183e8ab
FEATURE: rake task for merging users
2018-03-01 12:28:12 +01:00
Gerhard Schlager
fffd1a6602
FIX: Associated Instagram account was missing at some places
2018-03-01 12:26:40 +01:00
Jeff Wong
f4f8a293e7
FEATURE: Implement 2factor login TOTP
...
implemented review items.
Blocking previous codes - valid 2-factor auth tokens can only be authenticated once/30 seconds.
I played with updating the “last used” any time the token was attempted but that seemed to be overkill, and frustrating as to why a token would fail.
Translatable texts.
Move second factor logic to a helper class.
Move second factor specific controller endpoints to its own controller.
Move serialization logic for 2-factor details in admin user views.
Add a login ember component for de-duplication
Fix up code formatting
Change verbiage of google authenticator
add controller tests:
second factor controller tests
change email tests
change password tests
admin login tests
add qunit tests - password reset, preferences
fix: check for 2factor on change email controller
fix: email controller - only show second factor errors on attempt
fix: check against 'true' to enable second factor.
Add modal for explaining what 2fa with links to Google Authenticator/FreeOTP
add two factor to email signin link
rate limit if second factor token present
add rate limiter test for second factor attempts
2018-02-21 09:04:07 +08: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
Robin Ward
7348513848
FIX: Include post in staff action logs when silencing a user
2018-02-13 15:59:10 -05:00
Maja Komel
1c27d93dcf
anonymous shadow users are approved on creation if must_approve_users is enabled ( #5569 )
2018-02-13 01:58:38 -05:00
Arpit Jalan
7cda3a37af
rename 'private_email_time_window_seconds' to 'personal_email_time_window_seconds'
2018-02-01 13:25:29 +05:30
Arpit Jalan
1f6adbea5c
FEATURE: log private message views
2018-01-29 08:08:08 +05:30
Robin Ward
6b04967e2f
FEATURE: Staff members can lock posts
...
Locking a post prevents it from being edited. This is useful if the user
has posted something which has been edited out, and the staff members don't
want them to be able to edit it back in again.
2018-01-26 14:01:30 -05:00
Sam
060e78e884
PERF: reduce memory usage for post alerter
2018-01-22 17:11:52 +11:00
Robin Ward
a8b46df4bd
More extensibility for custom silence/suspend messages
2018-01-19 11:35:19 -05:00
Neil Lalonde
ec65ae76b9
FIX: don't create new like notifications for deleted topics
2018-01-17 14:36:32 -05:00
Sam
eaca2cb049
bypass loud logging
2018-01-16 15:41:45 +11:00
Sam
38c018a84b
FIX: invalid cache for parent category with limit_suggested_to_category
2018-01-15 16:13:29 +11:00
Sam
5bf116e719
warn if missing user option record
2018-01-12 15:43:56 +11:00
Robin Ward
dd33050e10
Add discourse events for when a user is suspended/silenced
2018-01-11 12:56:45 -05:00
Sam
57a1190b07
FIX: correct issue with search omitting words with multiple dots
...
Previously we used to break up words with dots incorrectly leading to
missing search terms
2017-12-19 16:04:24 +11:00
Régis Hanol
62a5b174e1
FIX: wasn't able to use the same username when taking over a staged account
2017-12-12 11:26:00 +01:00
Robin Ward
77f90876d3
REFACTOR: Track manual locked user levels separately from groups
2017-11-27 11:23:44 -05:00
Robin Ward
0a9daba627
FIX: Support for long suspension emails
2017-11-20 12:45:46 -05:00
Robin Ward
3785429948
FIX: Missing word boundaries when non-regexp
2017-11-17 14:37:31 -05:00
Robin Ward
d755c9c90f
FIX: Allow regular expressions to specify boundaries
2017-11-17 14:13:44 -05:00
Gerhard Schlager
d47fa6653b
do not notify staged users about posts withing mailinglist mirror category
2017-11-17 15:29:14 +01:00
Robin Ward
971e302ff2
FEATURE: Support an end date for user silencing
2017-11-14 13:20:19 -05:00
Robin Ward
1f14350220
Rename "Blocked" to "Silenced"
2017-11-10 14:10:27 -05:00
Neil Lalonde
9dc9ca4ac0
FIX: be consistent with how first posts in topics are counted. do like DirectoryItem.refresh_period :all
2017-11-10 12:18:25 -05:00
Gerhard Schlager
31e2385316
FEATURE: do not send notification emails to users who are included in the To and CC header of an incoming email
2017-11-10 17:44:20 +01:00
Neil Lalonde
16ff2a4715
FIX: topic counts after converting topic to/from public and private
2017-11-09 15:33:44 -05:00
Michael Howell
38b8d68c68
FEATURE: Allow the user to select a custom home page ( #5268 )
...
* Add user_home configuration option
* Use the new user_home preference to actually show the right home page
* Fix trailing whitespace
* Update user_option_serializer.rb
* Fix JavaScript default homepage tests
* Use an object instead of a giant switch
* Remove trailing whitespace
* Make the default `user_home` set to `null` instead of `0`
* Rename user_home to homepage_id
2017-11-10 06:45:19 +11:00
Guo Xiang Tan
19f3b81161
Revert "FIX: always trigger the ':user_updated' event"
...
This reverts commit 519b70ea46
.
https://meta.discourse.org/t/creating-a-topic-or-a-post-sends-the-user-updated-webhook/71643
2017-10-23 11:44:22 +08:00
Guo Xiang Tan
e91a631978
REFACTOR: DRY up code and add better test coverage.
2017-10-23 11:16:14 +08:00
Robin Ward
838568cbc3
Refactor flag types for more customization
2017-10-19 13:55:23 -04:00
Guo Xiang Tan
79de10b212
FEATURE: Allow users to disable new PMs.
...
https://meta.discourse.org/t/is-it-possible-to-disable-private-messaging-for-a-specific-user/46391
2017-10-19 12:32:55 +08:00
Neil Lalonde
2db66072d7
SECURITY: signup without verified email using Google auth
2017-10-16 13:51:41 -04:00
Gerhard Schlager
c0bb97b5cb
FIX: delete staged users when the incoming email is rejected
2017-10-11 16:17:01 +02:00
Régis Hanol
3bdd8f57c1
FIX: invited staged users would sometimes not get notified of replies
2017-10-06 16:37:28 +02:00
Neil Lalonde
e47f5cedd2
FEATURE: forgot_password_strict setting also prevents reporting that an email address is taken during signup
2017-10-03 15:28:30 -04:00
Robin Ward
41c3941c4c
FEATURE: Support regular expressions for watched words
2017-09-27 15:48:57 -04:00
Robin Ward
7578d8fc44
Add a DiscourseEvent
for when a topic is closed
2017-09-27 14:00:53 -04:00
Robin Ward
09ed2ed749
Add Suspend User to flags page
2017-09-25 12:28:00 -04:00
Guo Xiang Tan
4e5e7dc736
FIX: Fix ActiveRecord API that was removed in Rails 5.1.
2017-09-25 16:16:37 +08:00
Guo Xiang Tan
23b787e0a6
Require dependency otherwise it causes Sidekiq to lock up in development.
2017-09-25 13:48:59 +08:00
Guo Xiang Tan
77d4c4d8dc
Fix all the errors to get our tests green on Rails 5.1.
2017-09-25 13:48:58 +08:00
Gerhard Schlager
87b4246c14
FIX: notify about whispered reply
2017-09-19 15:51:10 +02:00
Robin Ward
9b3b39d8a2
FIX: Users should be able to activate their emails even if unapproved
...
Note in discourse `active` means "Email is active" - they still can't
login until approved
2017-09-12 15:04:39 -04:00
Guo Xiang Tan
b7ac33464f
Reduce number of Redis calls.
2017-09-08 20:12:53 +08:00
Sam
50203794e6
FIX: staged users should get emails on must_approve_users sites
2017-08-28 17:32:07 -04:00
Neil Lalonde
2c56f8df7c
FEATURE: show tags in search results
2017-08-25 11:52:59 -04:00
Guo Xiang Tan
bc3e43b496
FIX: Topic timers being incorrectly trashed!
.
...
https://meta.discourse.org/t/temporary-timed-closure-of-topic-not-re-opening-topic/67877
2017-08-22 15:23:09 +09:00
Bianca Nenciu
ac8bc04ad7
Set user title from the badge view ( #5049 )
...
* title info under notification
* create badge-title as component
* display available titles, close button
* remove visual feedback when grant new badge
* Made changes after review.
* Some minor fixes.
2017-08-17 16:32:37 -04:00
Erick Guan
6e59149a77
FIX: rebuild index when engine replaced ( #5021 )
2017-08-16 07:38:34 -04:00
Sam
6002f2ca4a
FIX: not splitting words correctly for search tokenizer
2017-08-14 16:19:39 -04:00
Bianca Nenciu
117417848e
Remove like on change of ownership. ( #5038 )
2017-08-11 09:55:00 +02:00
Régis Hanol
519b70ea46
FIX: always trigger the ':user_updated' event
...
We don't always use the UserUpdated class to update a user's record
2017-08-04 18:12:10 +02:00
Erick Guan
f1eccd113c
Replace rmmseg gem for cppjieba_rb since better dictionary ( #5006 )
...
* Rename locale to ts config in search module to make it clear
* Replace rmmese-cpp for cppjieba_rb
2017-07-31 15:28:48 -04:00
Guo Xiang Tan
4620dfe92d
FEATURE: Add group settngs to allow users to leave a group freely.
...
https://meta.discourse.org/t/split-join-leave-freely-setting-on-groups/65565
2017-07-28 15:00:25 +09:00
Guo Xiang Tan
5012d46cbd
Add rubocop to our build. ( #5004 )
2017-07-28 10:20:09 +09:00
Neil Lalonde
24cb950432
FEATURE: Watched Words: when posts contain words, do one of flag, require approval, censor, or block
2017-07-26 11:01:09 -04:00
Régis Hanol
d67fe4c674
FIX: block all emails associated to a user when destroying their record
2017-07-25 17:44:46 +02:00
Leo McArdle
ddc0134b48
add DiscourseEvent triggers necessary to update a user's permissions before they're notified
2017-07-21 11:03:54 -04:00
Guo Xiang Tan
7ed9fbb415
FIX: Use default parameter in method.
2017-06-26 11:14:13 +09:00
Régis Hanol
a916f6b0c8
remove some warnings with already declared constants
2017-06-22 12:55:58 +02:00
Guo Xiang Tan
e888369f51
UX: Don't send emails for discobot notifications.
2017-06-12 17:00:27 +09:00
Sam
a7e65d98a9
FIX: mutex to avoid race condition with double notify
2017-05-26 17:04:40 -04:00
Guo Xiang Tan
238a156300
FIX: TopicTimestampChanger
should not allow timestamps in the future.
2017-05-22 16:03:49 +08:00
Guo Xiang Tan
4382a0bb07
Rename PostTimestampChanger
-> TopicTimestampChanger
.
2017-05-22 15:01:33 +08:00
Neil Lalonde
7821400141
FEATURE: staff can set a timer to remind them about a topic
2017-05-16 14:49:50 -04:00
Sam
e1dd543a93
FEATURE: allow users to select theme on single device
2017-05-15 12:48:16 -04:00
Sam
2d96a0785d
FEATURE: theme selection is now global per-user
2017-05-12 12:41:34 -04:00
Neil Lalonde
55b61e9bea
rename topic_status_update to topic_timer
2017-05-11 18:27:53 -04:00
Robin Ward
f05f1a24d3
Change Anniversary badge to be multiple grant, once per year
2017-04-28 14:22:54 -04:00
Sam
a3e8c3cd7b
FEATURE: Native theme support
...
This feature introduces the concept of themes. Themes are an evolution
of site customizations.
Themes introduce two very big conceptual changes:
- A theme may include other "child themes", children can include grand
children and so on.
- A theme may specify a color scheme
The change does away with the idea of "enabled" color schemes.
It also adds a bunch of big niceties like
- You can source a theme from a git repo
- History for themes is much improved
- You can only have a single enabled theme. Themes can be selected by
users, if you opt for it.
On a technical level this change comes with a whole bunch of goodies
- All CSS is now compiled using a custom pipeline that uses libsass
see /lib/stylesheet
- There is a single pipeline for css compilation (in the past we used
one for customizations and another one for the rest of the app
- The stylesheet pipeline is now divorced of sprockets, there is no
reliance on sprockets for CSS bundling
- CSS is generated with source maps everywhere (including themes) this
makes debugging much easier
- Our "live reloader" is smarter and avoid a flash of unstyled content
we run a file watcher in "puma" in dev so you no longer need to run
rake autospec to watch for CSS changes
2017-04-12 10:53:49 -04:00
Robin Ward
40cee37bcc
FIX: Don't insert topic status messages unless the status changes
2017-04-07 17:10:43 -04:00
Guo Xiang Tan
5943543ec3
FIX: Improve checks for non-human users.
2017-04-06 11:29:34 +08:00
Sam Saffron
cd39049262
SECURITY: do not send push notifications to suspended users
2017-04-05 08:28:24 -04:00
Guo Xiang Tan
aca972c08b
FIX: Skip validations when updating group mentions.
2017-04-04 14:13:18 +08:00
Guo Xiang Tan
f4758a4c4d
FEATURE: Allow admins to schedule a topic to be published in the future.
2017-04-04 11:16:05 +08: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
Neil Lalonde
9ae8813a53
FIX: admin user page should show count of all posts, including private messages, so admins can delete them. This bug was making it impossible to delete users.
2017-03-17 17:01:45 -04:00
Guo Xiang Tan
bf78c228f4
FIX: User created web hook being enqueued before record has been saved.
...
* Improve web hook tests as well.
2017-03-16 14:44:09 +08:00
Sam
16593ae8bf
FEATURE: log reason staff auto blocks a user
2017-03-10 15:45:48 -05:00
Arpit Jalan
d5bcc70e9c
FIX: grant trust level when bulk adding users to group
2017-03-06 14:39:53 +05:30
Neil Lalonde
262016604d
FEATURE: each category can control how many topics to show on categories page
2017-03-01 15:12:57 -05:00
Arpit Jalan
e27b1b98d1
FIX: handle new user when logging name change
2017-03-01 13:43:57 +05:30
Guo Xiang Tan
76dd6933d2
Revert "Revert "Revert "SECURITY: Ensure oAuth authenticated email is the same as created user's email."""
...
This reverts commit e6d75f6844
.
This is why we should not be pushing directly to master.
2017-03-01 10:16:59 +08:00
Guo Xiang Tan
e6d75f6844
Revert "Revert "SECURITY: Ensure oAuth authenticated email is the same as created user's email.""
...
This reverts commit 0e3def7d2b
.
2017-02-28 11:27:14 +08:00
Arpit Jalan
6661cebff8
FIX: do not log duplicate username changes
2017-02-28 01:32:00 +05:30
Arpit Jalan
b32d3d66e5
FEATURE: log all username and name changes
2017-02-28 00:23:27 +05:30
Robin Ward
0e3def7d2b
Revert "SECURITY: Ensure oAuth authenticated email is the same as created user's email."
...
This reverts commit 1060239e2d
.
2017-02-27 13:19:26 -05:00
Guo Xiang Tan
1060239e2d
SECURITY: Ensure oAuth authenticated email is the same as created user's email.
2017-02-24 13:13:10 +08:00
Guo Xiang Tan
0847b4258a
Revert "SECURITY: Ensure that user has been authenticated."
...
This reverts commit fbe51d68a7
.
Changing the commit message to correctly reflect what we're actually
fixing.
2017-02-24 13:12:29 +08:00
Guo Xiang Tan
fbe51d68a7
SECURITY: Ensure that user has been authenticated.
2017-02-24 10:47:48 +08:00
Robin Ward
496682c442
Merge pull request #4662 from tgxworld/fix_localized_group_name_change
...
Fix localized group name change
2017-01-26 10:50:00 -05:00
Neil Lalonde
6b93b09404
FIX: when blocking a user results in hiding their posts, only hide posts made in the last 24 hours
2017-01-19 15:56:22 -05:00
Guo Xiang Tan
706b4f6b9f
FEATURE: Remap group mentions when group name has been changed.
2017-01-18 13:39:34 +08:00
Régis Hanol
fbf9172db8
FIX: log backups download/destroy staff action
...
FIX: clean up junk left by the specs
RENAME: 'backup_operation' to 'backup_create' to match other backup log types
2017-01-16 19:53:31 +01:00
Guo Xiang Tan
515f50e42e
FEATURE: Log admin action when readonly mode is changed.
2017-01-12 09:41:02 +08:00
Robin Ward
6c3426d266
Let's not notify for trust levels on Staff, either
2017-01-11 11:25:04 -05:00
Neil Lalonde
98bd58df61
Don't show email of deleted users in staff action logs
2017-01-10 17:25:36 -05:00
Neil Lalonde
fc0a0a76a4
Add more info in staff action logs for blocking a user, and add logging for lock trust level, activate, and deactive user
2017-01-10 17:25:36 -05:00
Robin Ward
7341b0d03c
Don't give notifications to admins for trust level notifications
2017-01-10 12:18:48 -05:00
Guo Xiang Tan
d10fe51b72
Fix broken specs since all urls will be oneboxed.
2017-01-06 10:05:51 +08:00
Régis Hanol
cbcb9363f4
fix the build
2017-01-04 14:23:21 +01:00
Sam
c531f4ded5
remove rails-observers
...
Rails yanked out observers many many years ago, instead the functionality
was yanked out to a gem that is very lightly maintained.
For example: if we want to upgrade to rails 5 there is no published gem
Internally the usage of observers had quite a few problem.
The series of refactors renamed a bunch of classes to give us more clarity
and removed some magic.
2016-12-22 16:46:53 +11:00
Sam
019f1a1d06
UserEmailObserver is now removed
...
no big surprises here was pretty straightforward
after_commit semantics sure are weird though
2016-12-22 16:46:53 +11:00
Sam
2f6a4cc6de
remove UserActionObserver, replace with after_save and service
...
interestingly there was some left over dead code from when stars
existed in the topic_users table
2016-12-22 16:46:53 +11:00
Sam
0a78ae739d
Remove SearchObserver, aim is to remove all observers
...
rails-observers gem is mostly unmaintained and is a pain to carry forward
new implementation contains significantly less magic as a bonus
2016-12-22 13:13:14 +11:00
Guo Xiang Tan
69330f8bc2
Add user_updated event to webhooks.
2016-12-13 11:26:26 +08:00
Guo Xiang Tan
05f55dbc10
FEATURE: Group logs.
2016-12-12 17:29:54 +08:00
Régis Hanol
6edd3c347c
FIX: automatically disable digests when enabling mailing list mode
2016-11-28 15:52:35 +01:00
Guo Xiang Tan
f824afb4d3
FEATURE: Allow date_of_field column to be updated.
2016-11-17 15:16:58 +08:00
Guo Xiang Tan
95c6e97587
Ensure we don't run $redis.keys
in production.
2016-11-15 23:23:41 +08:00
Sam
aaf947356b
correct regression where notifications scope is not pushing to push server
2016-10-14 22:52:39 +11:00
Sam
f4f5524190
FEATURE: user API now contains scopes so permission is granular
...
previously we supported blanket read and write for user API, this
change amends it so we can define more limited scopes. A scope only
covers a few routes. You can not grant access to part of the site and
leave a large amount of the information hidden to API consumer.
2016-10-14 16:05:42 +11:00
Sam
3ad8616f44
Merge pull request #4476 from xfalcox/localize-badge-notifications
...
FIX: Properly localize badge notification on batch grant
2016-10-12 15:16:35 +11:00
Rafael dos Santos Silva
c5b94878ac
We need this variable later
2016-10-11 19:14:32 -03:00
Sam
89daa43754
FEATURE: remap emojis back for push notifications and desktop alerts
2016-10-11 13:03:48 +11:00
cpradio
6f1c31d777
Add notification level user preference when replying to a topic
2016-09-30 14:58:07 -04:00
Rafael dos Santos Silva
9a502c73c9
FIX: Properly localize badge notification on batch grant
2016-09-29 18:55:41 -03:00
Robin Ward
29cf47cfb2
Track steps the user has completed, nag them to finish it.
2016-09-22 09:52:19 -04:00
Robin Ward
c94e6f1b96
Add locale step
2016-09-22 09:52:19 -04:00
Neil Lalonde
06eb256d0a
FIX: blocking users should never hide all posts if they are trust level 1 or higher
2016-09-12 11:58:10 -04:00
Robin Ward
9609a47016
Ability to skip email validation via a plugin
2016-09-07 14:05:46 -04:00
Sam
4fe52c8cbe
FEATURE: backend support for pushing notifications to clients
2016-08-26 12:47:10 +10:00
Robin Ward
4061725a95
FIX: Don't ever grant badges when they're disabled
2016-08-19 15:16:37 -04:00
Arpit Jalan
a590f35982
FEATURE: allow changing post owners without creating post revision
2016-08-19 23:34:21 +05:30
Régis Hanol
e55e2aff94
FIX: FirstReplyByEmail badge wasn't granted
...
DEPRECATED: PostProcess badge trigger
2016-08-10 19:24:01 +02:00
Robin Ward
3d62e5dd98
SECURITY: XSS issue on Admin users list
2016-08-05 12:01:16 -04:00
Robin Ward
429f27ec96
SECURITY: Avoid mass assignment on user create
2016-08-05 11:57:13 -04:00
Sam
9018de39ed
FEATURE: allow shipping bio markdown via SSO
...
- Also adds site setting for sso_overrides_bio to disable bio editing by end users
2016-08-01 15:29:28 +10:00
Régis Hanol
b0f7e4ba00
FEATURE: deactive users after too many bounces
2016-07-25 18:57:06 +02:00
Robin Ward
b2289d733f
List the "Watching First Post" tags on preferences
2016-07-22 16:16:45 -04:00
Robin Ward
c279889191
FIX: Watching First Post in groups was working incorrectly
2016-07-21 15:05:10 -04:00
Robin Ward
09be741820
FIX: Don't alert on new posts in a topic unless it's a new record
2016-07-19 15:57:05 -04:00
Sam Saffron
46b34e3c62
FEATURE: remove user option for edit history public
...
Users can no longer opt-in for "public" edit history
if site owner disables it.
This feature adds cost and complexity to post rendering since
user options need to be premeptively loaded for every user in the
stream. It is also confusing to explain to communities with private edit
history.
2016-07-16 21:30:00 +10:00
Sam
f1b1b0da14
FEATURE: show watched first post in user page
2016-07-08 14:08:10 +10:00
Sam
4161ee210a
FEATURE: improved tag and category watching and tracking
...
- present tags watched on the user prefs page
- automatically watch or unwatch old topics based on watch status
New watching and tracking logic takes care of handling old topics
(either with or without read state)
When you watch a topic you now watch historically
Also removes confusing warnings from user.
2016-07-08 12:58:30 +10:00
Robin Ward
2005565c9c
Server side code for Watching First Post Only
2016-07-07 11:21:50 -04:00
Sam
92daf44daf
correct random suggested topic selection
2016-07-04 10:34:54 +10:00
Guo Xiang Tan
9fc0b8607c
Add event trigger for post notification alert.
2016-07-01 00:12:07 +08:00
Robin Ward
83e46cc302
FIX: Restrict changing ownership to one topic
2016-06-17 14:20:14 -04:00
Neil Lalonde
d62f2b4d67
UX: rename setting num_flags_to_block_new_user to num_spam_flags_to_block_new_user
2016-06-15 13:19:06 -04:00
Neil Lalonde
1c9519636c
FEATURE: new users can be blocked from posting if enough TL3 users flag their posts
2016-06-15 10:51:34 -04:00
Régis Hanol
367954057b
should have been 'deleted_topic'
2016-06-15 14:45:18 +02:00
Régis Hanol
ed4634dc34
FIX: don't error out when deleting a topic with no user
2016-06-15 14:41:08 +02:00
Régis Hanol
ca1a532cf5
show 'revoke_email' in staff action logs
2016-06-06 22:58:09 +02:00
Guo Xiang Tan
57c56b68f8
FIX: Incorrect attribute.
2016-06-06 14:32:53 +08: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
Arpit Jalan
26964a72ca
FIX: editing user title was deleting location
2016-05-03 22:25:43 +05:30
Régis Hanol
8e611ec7a1
FEATURE: handle bounced emails
2016-05-02 23:15:32 +02:00
Régis Hanol
2194ccec6e
slightly better automatic flag reason messages
2016-04-25 23:03:17 +02:00
Sam
72849e65de
FIX: when granting old badges that are bronze, do not notify
2016-04-12 22:08:38 +10:00
Arpit Jalan
8da446c8bc
FIX: do not raise error if topic not found while logging
2016-04-11 09:32:37 +05:30
Robin Ward
526573074c
Add one off job to grant the emoji badge retroactively
2016-04-07 13:49:44 -04:00
Guo Xiang Tan
fe54ece35e
Merge pull request #4114 from tgxworld/better_logging_for_backfilling_badges
...
FIX: Better logging when badges fail to backfill.
2016-04-07 13:31:50 +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
Robin Ward
c30d327b77
FEATURE: Two new badges - First Emoji and First Mention
2016-04-05 15:17:41 -04:00
Guo Xiang Tan
6f16896a2c
FIX: Better logging when badges fail to backfill.
2016-03-24 10:10:53 +08:00
Sam
f9e5c49350
FIX: blue notification instead of green for replies/mentions in PMs
2016-03-22 14:28:14 +11:00
Régis Hanol
f15d463eb8
FIX: user 'UserBlocker' when blocking a new user
2016-03-18 12:16:37 +01:00
Sam
180888c020
Merge pull request #4087 from jeremylan/bug_40489
...
Fixed anonymizer when 'full name required' setting is on
2016-03-18 12:29:51 +11:00
Neil Lalonde
213950e4cf
FEATURE: add option to include topics from trust level 0 users in digest emails
2016-03-17 17:35:23 -04:00
jeremylan
d95728dd16
Fixed anonymizer when 'full name required' setting is on
...
When the setting 'full name required' is on the anonymizer was trying to set the user name to nil and this caused the user name and email to remain not anonymized.
Now in this scenario the user name is set to the anonimized username and the email is anonymized correctly.
2016-03-17 17:50:04 +11:00
Neil Lalonde
091e7ef3ca
FIX: when a post is edited by someone other than the original author and a mention is added, the mention notification is from the person who edited
2016-03-08 15:26:12 -05:00
Régis Hanol
74e4251aff
FIX: collapse 'replied', 'quoted' and 'posted' to the same notification
2016-03-07 21:56:33 +01:00
Sam
af577a5854
FEATURE: like notification frequency of never
2016-03-06 09:12:59 +11:00
Sam Saffron
8b1772ac0f
FIX: if user undos like, and relikes notify
...
FEATURE: roll up likes for notify on all likes
2016-03-04 22:56:27 +11:00
Arpit Jalan
36f82aa68c
FEATURE: enforce admin password validation when signing up via developer email
2016-03-04 00:28:47 +05:30
Sam
5a6c34fb8a
regression, unable to edit posts
2016-03-03 16:00:14 +11:00
Guo Xiang Tan
9d24a00f2e
Merge pull request #4055 from tgxworld/fix_topic_view_not_working_in_redis_readonly
...
FIX: Topic view not working when Redis is readonly.
2016-03-03 08:48:31 +08:00
Guo Xiang Tan
5f8e20aa1d
FIX: Topic view not working when Redis is readonly.
2016-03-03 08:26:45 +08: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
Sam Saffron
5f4075a6cf
FEATURE: users can select how frequently they are notified on likes
...
- first time
- first time and daily (default)
- always
2016-03-02 23:16:52 +11:00
Arpit Jalan
43e3182a79
add IP address in backup log
2016-02-28 08:44:27 +05:30
Arpit Jalan
8f62a0caa8
FEATURE: log backup operation
2016-02-27 23:33:18 +05:30
Sam Saffron
820a435af8
FEATURE: add "email in-reply-to user option"
...
We no longer include previous replies as "context", instead
we include and excerpt of the post being replied to at the bottom
of notifications, this information was previously missing.
Users may opt in to emailing previous replies if they wish
or opt out of "in-reply-to" which makes sense in some email clients that
are smarter about displaying a tree of replies.
2016-02-26 00:05:59 +11:00
Guo Xiang Tan
e7cfbfeabb
FIX: Array#first
with block will return the first element if nothing matches.
2016-02-24 22:34:40 +08:00
Régis Hanol
8d1da9cedd
FEATURE: keep original title when sending email notifications about a PM
2016-02-23 01:34:16 +01:00
Sam
ab06f86fbe
FEATURE: allow users to control how many previous replies they get
...
- always means we always send previous replies with every email
- never means we do not
- "unless previously sent" ... is the default, in which we only email you each reply once
The default_email_previous_replies site setting can control this toggle
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
Arpit Jalan
8a7868be07
FIX: validate user website
2016-02-06 02:19:48 +05:30
Régis Hanol
12051f79a8
FIX: don't send empty email notifications for small_actions
2016-02-01 19:12:10 +01:00
Sam Saffron
4099823efe
FIX: batch badge assigner was not including full info in notification
...
(missing drilldown link in notification)
2016-02-01 18:27:07 +11:00
Sam
5ed21e8767
filter out archived correctly
2016-01-28 00:14:26 +11:00
Sam
b75353c26f
correct specs
2016-01-27 23:40:45 +11:00
Sam
50a63a491c
don't alert for inbox count of 0
2016-01-27 23:13:37 +11:00
Sam Saffron
a764cc3a42
FEATURE: by default users track a group (as opposed to watch)
...
FEATURE: a rollup counting number of messages in the group inbox to tracking users
2016-01-27 21:38:33 +11:00
Arpit Jalan
74f22f95da
FEATURE: log admin/moderator grant/revoke action
2016-01-27 15:39:04 +05:30
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
Arpit Jalan
cf1bd35fc6
FIX: while changing site text, old and new values can be nil
2016-01-18 20:56:14 +05:30
Sam
e6c1f1db52
FEATURE: link to filtered badge list from notification
...
When notified on a badge link to the badge page filtered on username
2016-01-18 18:20:16 +11:00
Neil Lalonde
1aa68e085e
don't hide all a user's posts when staff manually blocks them
2016-01-14 15:20:26 -05:00
Neil Lalonde
b8299a2710
log when staff blocks/unblocks someone
2016-01-14 15:05:11 -05:00
Sam
cba76db53b
FIX: if people link own post, watchers not notified
2015-12-31 10:51:58 +11:00
Régis Hanol
e89d8e796e
FIX: group messages notifications
...
Prevent double notifications when watching a group
Make sure mentions/quotes/replies in a group message shows up
2015-12-18 16:32:53 +01:00
Arpit Jalan
4c967d11b4
FEATURE: log site text changes
2015-12-18 19:42:06 +05:30
Régis Hanol
e53f110c83
Revert "FIX: prevent double notifications when replying to a group message"
...
This reverts commit e82dc21083
.
2015-12-16 22:20:38 +01:00
Régis Hanol
e82dc21083
FIX: prevent double notifications when replying to a group message
2015-12-16 17:41:54 +01:00
Régis Hanol
15c229195f
FEATURE: notification_level on a per-group basis
2015-12-14 23:17:09 +01:00
Guo Xiang Tan
8b6b3cf858
FIX: Admin logging should not log permissions if none has been set.
2015-12-06 15:29:13 +08:00
Sam
d1a5d8ea62
FEATURE: show group mentions and topics in groups page
2015-12-01 16:52:43 +11:00
Sam
ad3dd161e7
FEATURE: first class group mentions built in
...
If you allow a group to be mentioned it can be mentioned with the @ symbol.
Keep in mind as a safety mechanism max_users_notified_per_group_mention is set to 100
2015-11-30 17:08:43 +11:00
Neil Lalonde
84342ecdef
FIX: anonymized user's preferences should have system assigned avatar chosen
2015-11-27 14:37:30 -05:00
Régis Hanol
0d54c18c8b
new hidden 'allow_staged_accounts' setting
2015-11-26 18:31:23 +01:00
Régis Hanol
92ba6125c4
FEATURE: new 'automatically_unpin_topics' user preference
2015-11-17 18:21:40 +01:00
Robin Ward
3939331dec
FIX: Staff was getting 500 when editing post in deleted topic
2015-11-13 11:35:23 -05:00
Guo Xiang Tan
d9fe78da20
FIX: Topic#last_posted_at was not being set when changing topic timestamp.
2015-10-20 10:12:52 +08:00
Robin Ward
eacd75bcf8
SECURITY: Unread post notifications should respect whispers
2015-10-19 16:32:10 -04:00
Sam
1754fcccf7
PERF: instead of N redis operations perform in bulk
2015-10-02 15:00:51 +10:00
Gerhard Schlager
445bd033d2
FIX: Use correct badge slug within notifications
2015-09-24 00:49:13 +02:00
Gerhard Schlager
25e9aa7653
FIX: Use user's locale for badge notifications
2015-09-24 00:33:33 +02:00
Guo Xiang Tan
f39b9124b6
FEATURE: Log staff actions for Category changes.
2015-09-18 10:53:08 +08:00
Arpit Jalan
10b8e43a92
FIX: send new email activation token if the original token expired
2015-08-24 12:00:00 +05:30
Sam
94f05a40de
FIX: when destroying users we were leaving drafts behind
2015-08-24 16:05:08 +10:00
Guo Xiang Tan
c7a21b7c23
FEATURE: Allow admin to change timestamp of topic.
2015-08-17 00:00:05 +08:00
Sam
5ee4d3ba8c
FIX: log post deletion even if user is deleted.
2015-08-14 13:57:02 +10:00
Robin Ward
bb93a345eb
UX: Use smaller messages for moderator actions.
2015-07-27 10:09:21 -04:00
Kane York
acbf82d8db
FIX: Change post owner of deleted post, take 3
2015-07-21 16:43:52 -07:00
Kane York
61ea8c6f72
FIX: Allow to change ownership on deleted users' posts
2015-07-15 15:29:35 -07:00
Kane York
8796760825
FIX: Allow changing ownership of posts with deleted users
2015-07-14 21:15:34 -07:00
Arpit Jalan
03665e8466
FIX: mark user as approved if an invite is already present
2015-06-26 01:57:29 +05:30
Sam
5ab7f7e88d
FIX: double like notification
...
If you got a like -> edit/quote/etc -> like you would get a
double notification
2015-06-19 12:31:36 +10:00
Sam
1e4c7dfbe7
FIX: invalid plan generation when % in query on badge definition UI
2015-05-28 16:06:22 +10:00
Robin Ward
ee129edf25
FIX: mentions were not working in PMs
2015-05-25 13:15:00 -04:00
Régis Hanol
8d967d9065
FEATURE: move all uploads to a single endpoint + defer upload creation in a background thread
2015-05-20 16:45:48 +02:00
Régis Hanol
d4974b7093
FIX: anonymous mode don't work when names are required
2015-05-15 14:20:15 +02:00
riking
28f32aff66
FEATURE: Multiple notifications at once (1/topic)
2015-05-13 18:23:42 -07:00
Sam
3d6cfc6421
fix typo
2015-05-11 18:05:18 +10:00
Sam
f180aba492
stop random hostname for anon
2015-05-11 17:48:54 +10:00
Sam
4dfc1907ac
Simplify desktop notifications, only include if mention/reply/pm/link
...
Include post excerpt in the notification
2015-05-04 13:49:32 +10:00
Sam
803feefd54
MessageBus handles readonly redis now, no need to wrap it
2015-05-04 12:21:00 +10:00
Robin Ward
151b559e4c
FIX: If you delete a user, delete their queued posts as well.
2015-04-24 16:04:44 -04:00
Robin Ward
5b3f99aa50
Don't blow up if Redis switches to READONLY
2015-04-24 14:37:16 -04:00
Régis Hanol
a737090442
- FEATURE: revamped poll plugin
...
- add User.staff scope
- inject MessageBus into Ember views (so it can be used by the poll plugin)
- REFACTOR: use more accurate is_first_post? method instead of post_number == 1
- FEATURE: add support for JSON-typed custom fields
- FEATURE: allow plugins to add validation
- FEATURE: add post_custom_fields to PostSerializer
- FEATURE: allow plugins to whitelist post_custom_fields
- FIX: don't bump when post did not save successfully
- FEATURE: polls are supported in any post
- FEATURE: allow for multiple polls in the same post
- FEATURE: multiple choice polls
- FEATURE: rating polls
- FEATURE: new dialect allowing users to preview polls in the composer
2015-04-23 19:33:29 +02:00
Robin Ward
5990ab855b
PERF: Move post alerting into async
2015-04-20 13:34:57 -04:00
Robin Ward
13de577568
FIX: Error alerting tracking users of PM when replying in general
2015-04-17 15:38:44 -04:00
Sam
4bfca12b11
FEATURE: anonymous_account_duration_minutes , cycle anon accounts after N minutes from last post
...
fixes it so anon users can not like stuff
2015-04-08 12:30:02 +10:00
Sam
f5d89169e2
FEATURE: initial implemenation of anonymous posting mode
2015-04-07 18:05:31 +10: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
Sam
c6a5081763
FEATURE: reorder participants in topic so always chronological
...
FEATURE: tie breaker for same number of posts is last post date
UX: highlight for latest poster when it is OP
2015-04-06 17:27:05 +10:00
Régis Hanol
eec1921ba9
FIX: notifications inconsistencies + never notify system user
2015-04-01 11:55:59 +02:00
Sam
14741b5dac
FIX: only ONE user on site could have a list of muted users
2015-03-31 10:16:23 +11:00
riking
6ce26ab4d8
FIX: Don't stop the badge grant after the first failure
2015-03-28 18:36:05 -07:00
Sam
cfa511e35d
FIX: correctly mute likers
...
FEATURE: disallow all muting of staff
2015-03-26 12:08:04 +11:00
Sam
92e371f0b3
FEATURE: civilized mute
...
Allow user to mute all notifications generated by specific users
2015-03-24 11:55:22 +11:00
Sam
1601211617
Revert "FEATURE: allow end users to opt out of getting any private messages"
...
This reverts commit 229ecc4f8a
.
2015-03-23 17:21:58 +11:00
Sam
229ecc4f8a
FEATURE: allow end users to opt out of getting any private messages
2015-03-23 15:50:45 +11:00
Sam
fb41816003
smarter clear cache to help tests
2015-03-12 10:47:32 +11:00
Neil Lalonde
dece5a351a
more fixes for post ownership change and user deletion
2015-03-11 15:54:20 -04:00
Neil Lalonde
608647d02f
FEATURE: Anonymize User. A way to remove a user but keep their topics and posts.
2015-03-10 11:59:08 -04:00
Sam
f432b9f5b7
correct spec failure, only test code was affected
2015-03-03 10:21:01 +11:00
Neil Lalonde
1bf4f34049
FIX: topic and post counts are not updated when ownership of a post is changed
2015-03-02 12:13:21 -05:00
Robin Ward
3c3e08147b
Fix some weird indentation
2015-02-27 10:33:39 -05:00
Sam
ea40dd08e6
correct tests
2015-02-27 09:41:08 +11:00
Régis Hanol
8c5d8715cd
FIX: staff action logs not logging all changes
2015-02-25 17:18:22 +01:00
Sam
b760d22460
PERF: avoid expensive order by random for suggested topics
2015-02-25 17:19:12 +11:00
riking
06f02ce9fc
FIX: 🈂️ Allow closing polls in multi-locale sites
2015-02-05 19:55:03 -08:00
Robin Ward
4e64d16a47
FEATURE: Allow plugins to log staff actions
2015-02-05 15:26:34 -05:00
Régis Hanol
2fcd199f48
FIX: send a PM to moderators when a post has been flagged as sockpuppet
2015-02-05 19:58:49 +01:00
riking
03fd275b45
FIX: Respect user locale for reply notifications
2015-01-17 23:17:50 -08:00
riking
1ab0d6bd82
FEATURE: Log username changes by staff
...
Also fix the tests for changing username
2015-01-17 02:26:12 -08:00
Régis Hanol
bfbc49ef6f
FIX: log only 1 'show email' record
2014-12-29 11:50:36 +01:00
Sam
f23eb475a4
FEATURE: remove override stylesheet option, too confusing
2014-12-23 13:03:48 +11:00
Robin Ward
b2e2a99898
FIX: Don't raise an error when trying to log nothing
2014-12-15 14:14:12 -05:00
Régis Hanol
4e735e8aab
FIX: roll up staff action wasn't working
2014-11-27 01:12:56 +01:00
Régis Hanol
7b0ae702e7
FEATURE: log a new staff action when rolling up banned IP addresses
2014-11-24 19:48:54 +01:00
Régis Hanol
0398ab7514
FIX: when adding an IP to the spammer list, check the broader ban list
...
first
FEATURE: allow admins to search users using IP ranges
2014-11-21 18:16:06 +01:00
Régis Hanol
7641d88224
FEATURE: new 'maximum new user accounts per registration IP' site setting
2014-11-17 12:04:29 +01:00
Régis Hanol
bb2d538194
FEATURE: log impersonations
2014-11-06 10:58:47 +01:00
Régis Hanol
b09ad87098
FIX: add 'show emails' button from moderators in user admin section
2014-11-03 12:46:08 +01:00
Régis Hanol
e7f251c105
LOTS of changes to properly handle post/topic revisions
...
FIX: history revision can now properly be hidden
FIX: PostRevision serializer is now entirely dynamic to properly handle
hidden revisions
FIX: default history modal to "side by side" view on mobile
FIX: properly hiden which revision has been hidden
UX: inline category/user/wiki/post_type changes with the revision
details
FEATURE: new '/posts/:post_id/revisions/latest' endpoint to retrieve
latest revision
UX: do not show the hide/show revision button on mobile (no room for
them)
UX: remove CSS transitions on the buttons in the history modal
FIX: PostRevisor now handles all the changes that might create new
revisions
FIX: PostRevision.ensure_consistency! was wrong due to off by 1
mistake...
refactored topic's callbacks for better readability
extracted 'PostRevisionGuardian'
2014-10-27 22:06:43 +01:00
Régis Hanol
10094a0bcd
FIX: resolve flags as good when deleting a spam user
2014-10-20 16:59:06 +02:00
Sam
be48dfbb8c
correct badge title revocation query
2014-10-09 22:01:08 +11:00
Sam
0e7be81e60
FIX: badge granted titles were not being revoked when badge was revoked
2014-10-08 10:26:18 +11:00
Sam
0378dca66f
FIX: dismissed banner topic returned after saving user profile
2014-10-07 16:11:19 +11:00
Sam
836bc0f935
FIX: incorrect edit notification in user stream
...
FIX: missing edit notifications when post edited by multiple users
2014-10-07 15:57:48 +11:00
Régis Hanol
98b6b9821a
FEATURE: log topic/post deletions from staff members
2014-10-01 17:40:13 +02:00
Robin Ward
edb34c178a
FEATURE: Show user fields when the user is signing up
2014-09-30 10:45:18 -04:00
Régis Hanol
7e309a21cf
FEATURE: hide emails behind a button for staff members
2014-09-29 22:31:05 +02:00
Neil Lalonde
384d8f25e4
fix broken build
2014-09-22 13:23:33 -04:00
Neil Lalonde
ef436a5775
use && instead of and
2014-09-22 12:17:17 -04:00
Neil Lalonde
d6a562658a
FIX: update user preferences was failing if custom_fields is blank string
2014-09-17 13:09:39 -04:00
Robin Ward
56eda5abf9
FIX: Don't allow profile bios longer than 3k chars
2014-09-08 15:23:21 -04:00
Sam
59d04c0695
Internal renaming of elder,leader,regular,basic to numbers
...
Changed internals so trust levels are referred to with
TrustLevel[1], TrustLevel[2] etc.
This gives us much better flexibility naming trust levels, these names
are meant to be controlled by various communities.
2014-09-05 15:20:52 +10:00
Sam
1792941098
Merge pull request #2740 from riking/badges_disabled
...
FIX: Do not perform grants if badges are disabled
2014-09-03 22:19:51 +10:00
riking
3cf493eb4f
FIX: Apply contract checks when first creating a badge
2014-09-02 19:09:51 -07:00
riking
ee812eb447
FIX: Do not perform grants if badges are disabled
2014-09-02 13:12:27 -07:00
riking
808460a28f
Fix magic numbers, extra param references
2014-08-31 19:36:31 -07:00
riking
1833b43ae2
FEATURE: Badge query validation, preview results, and EXPLAIN
...
Upon saving a badge or requesting a badge result preview,
BadgeGranter.contract_checks! will examine the provided badge SQL for
some contractual obligations - namely, the returned columns and use of
trigger parameters.
Saving the badge is wrapped in a transaction to make this easier, by
raising ActiveRecord::Rollback on a detected violation.
On the client, a modal view is added for the badge query sample run
results, named admin-badge-preview.
The preview action is moved up to the route.
The save action, on failure, triggers a 'saveError' action (also in the
route).
The preview action gains a new parameter, 'explain', which will give the
output of an EXPLAIN query for the badge sql, which can be used by forum
admins to estimate the cost of their badge queries.
The preview link is replaced by two links, one which omits (false) and
includes (true) the EXPLAIN query.
The Badge.save() method is amended to propogate errors.
Badge::Trigger gets some utility methods for use in the
BadgeGranter.contract_checks! method.
Additionally, extra checks outside of BadgeGranter.contract_checks! are
added in the preview() method, to cover cases of null granted_at
columns.
An uninitialized variable path is removed in the backfill() method.
TODO - it would be nice to be able to get the actual names of all
columns the provided query returns, so we could give more errors
2014-08-31 11:25:44 -07:00
Sam
87d2be3ecf
FIX: ensure triggered badges are never triggered if filter is missing
2014-08-27 18:02:13 +10:00
Neil Lalonde
d273374f1a
FIX: before nuking a user, do a real count of posts instead of relying on user_stat record
2014-08-18 12:07:29 -04:00
Akshay
7ef61144e7
Avoid using to_s when performing String Interpolation
2014-08-14 23:55:27 +05:30
Sam
1baa55fe45
FIX: preview bust when no params
2014-08-13 12:25:56 +10:00
Sam
22cd259687
FIX: remove faulty "ensure consistency" badge job
2014-08-11 09:21:06 +10:00
Sam
e6f0b94b3a
FIX: bust preview
...
FIX: safeguard for huge delta backfill
2014-08-09 09:33:00 +10:00
Sam
953d3f2151
PERF: add optional delta badge filtering
...
This is tricky and optional, some badges are very expensive to calculate
pass in :backfill , :post_ids and :user_ids to all badge queries so they
can do pre-filtering, if you do it after the sub-query it is too late
2014-08-08 10:02:43 +10:00
Sam
e7e70d14da
Merge pull request #2591 from BenLubar/benlubar-edit-history-public
...
add profile option for edit history visibility
2014-07-30 14:09:10 +10:00
Sam
5d9eefbfed
FIX: don't notify on link reflections
2014-07-29 15:40:05 +10:00
Ben Lubar
44dc4b4a17
add profile option for edit history, visible only when edit history is disabled globally.
2014-07-26 23:04:46 -05:00
Sam
a34037b26c
FIX: typo
2014-07-24 18:38:27 +10:00
Sam
ec03d135fa
FEATURE: allow advanced badge options in admin screen
...
clean up serializer, allow simplistic preview
2014-07-24 18:28:23 +10:00
Sam
0f9678fe49
FIX: faster update of all badges
...
Introduced badge triggers, introduced concept of badge that happens due to a post but has the post hidden
Delta badge grant happens once a minute, backed by redis
2014-07-23 11:46:07 +10:00
Neil Lalonde
939e8505a9
Remove hub username integration
2014-07-16 12:25:24 -04:00
Sam
4c25fedf70
FEATURE: Reader badge
...
Read a every post in a topic that if 50 posts or longer
2014-07-15 15:16:41 +10:00
Sam
88469721b9
FEATURE: Allow admins to disable specific badges
2014-07-14 17:40:36 +10:00
Sam
0f25bbeaf7
FEATURE: Editor badge
2014-07-07 17:55:40 +10:00
Sam
4a25c86d61
FIX: correct duplicate granting
2014-07-05 18:32:06 +10:00
Sam
650e9348f3
FIX: multiple grant not working correctly
2014-07-04 17:41:03 +10:00
Sam
9a9ad9bda8
FEATURE: Badge progress
...
- Refactor model so it stores backfill query
- Implement autobiographer
- Remove sample badge
- Correct featured badges to only include a badge once
2014-07-03 17:29:44 +10:00
Sam
bc44bfcdf2
Work in progress backfill for like badges
2014-07-01 22:01:15 +10:00
Régis Hanol
dcd0b8fecf
BUGFIX: no translation for email_error_notifications to admin users
2014-06-30 15:21:26 +02:00
Vikhyat Korrapati
23983efeea
Don't grant multiple_grant badges multiple times for the same post.
2014-06-28 00:32:09 +05:30
Vikhyat Korrapati
3ba65af19e
Add like-based system badges.
2014-06-19 17:10:43 +05:30
Vikhyat Korrapati
b5eea1d79f
Grant system badges in a background job.
2014-06-19 17:10:37 +05:30
Vikhyat Korrapati
b3f403952b
Move badge grant_count updating to the UserBadge model callbacks.
2014-06-19 16:56:19 +05:30
Vikhyat Korrapati
a68b47cb9f
Add notification_id column to user_badges.
2014-06-19 16:56:19 +05:30
Vikhyat Korrapati
41ecba1b77
Mark badge notification as read when the notification is clicked.
2014-06-19 16:56:19 +05:30
Régis Hanol
00117c18c3
FEATURE: dismissable banner topic
2014-06-18 20:05:19 +02:00
Andrew Bezzub
9ffd173873
move bio to UserProfile from User
2014-06-13 14:55:32 -04:00
Sam
03087679f0
FEATURE: Support custom preferences for users, injected by plugins
2014-06-11 15:50:37 +10:00
Régis Hanol
0781531e3c
Merge pull request #2415 from techAPJ/bulk-invite-users-5
...
FEATURE: Bulk Invite
2014-06-10 19:11:11 +02:00
Arpit Jalan
727184641e
FEATURE: Bulk Invite
2014-06-09 01:43:39 +05:30
Andrew Bezzub
7db31adf35
move website from User to UserProfile
2014-06-06 21:54:32 -07:00
Robin Ward
24cde6c604
Actually, it *should* be user_path
and not userpage_path
2014-06-04 16:51:48 -04:00
Robin Ward
66fe80c52a
FIX: The page is actually called userpage
2014-06-04 16:44:41 -04:00
Jeff Atwood
42509964da
copyedits on admin PM notifications
2014-06-04 13:39:54 -07:00
Sam
fe594f5d1e
Merge pull request #2372 from vikhyat/badge-system
...
Multiple grant badges
2014-05-30 10:18:00 +10:00
Robin Ward
7c22d738b6
FEATURE: Add a location field to a user's profile
2014-05-27 13:54:04 -04:00
Robin Ward
5284fb7cbc
New Setting: Don't jump to new posts when replying
2014-05-26 16:39:03 -04:00
Sam
e06da1821d
BUGFIX: notifications were not updated correctly live
...
- missing notifications when multiple replies in topic (till refresh)
- not cleared properly on click
2014-05-23 11:34:34 +10:00
Vikhyat Korrapati
d208e4d517
Multiple grant badges.
2014-05-21 12:54:55 +05:30
Vikhyat Korrapati
c07244a4e6
Refactor BadgeGranter.update_trust_level_badges! -> update_badges.
2014-05-14 21:01:41 +05:30
Vikhyat Korrapati
b144b75565
Add automatically assigned trust level badges.
2014-05-14 20:47:21 +05:30
Neil Lalonde
4980cff802
Add descriptions. Make all the actions buttons. Add a revert button to colors. Add a new variable: quaternary.
2014-05-14 10:19:00 -04:00
Neil Lalonde
c4d3aa3d47
Theming: a UI to choose some base colors that are applied to all the site css. CSS compiled outside of asset pipeline.
2014-05-14 10:18:12 -04:00
Louis Rose
1574485443
Perform the where(...).first to find_by(...) refactoring.
...
This refactoring was automated using the command: bundle exec "ruby refactorings/where_dot_first_to_find_by/app.rb"
2014-05-06 14:41:59 +01:00
Neil Lalonde
f61f29439e
Track the ip address where user was registered
2014-04-29 14:37:56 -04:00
Neil Lalonde
feaaf55a0c
Theming: color scheme editing. Unfinished! Doesn't have any effect on css files yet.
2014-04-24 16:49:12 -04:00
Vikhyat Korrapati
8113e8d897
Basic UI for selecting gold/silver badges as titles.
2014-04-18 09:20:51 +05:30
Vikhyat Korrapati
89f45901bc
Create notification when badge is granted.
2014-04-17 01:58:01 +05:30
Régis Hanol
2505d18aa9
FEATURE: support email attachments
2014-04-14 22:55:57 +02:00
Sam
0d114d7b17
Tweak badge granter not to try to double grant
2014-04-14 15:58:52 +10:00
Neil Lalonde
379f4a87d5
FIX: remove likes and other post actions before nuking a user
2014-03-31 14:06:35 -04:00
Vikhyat Korrapati
dcaa069bb5
Log badge grant/revoke to the staff actions log.
2014-03-21 11:10:07 +05:30
Sam
619fa50d4b
BUGFIX: twitter auth asking for a password
2014-03-20 14:49:25 +11:00
Sam
9fc31932cf
BUGFIX: don't alery myself when I link to myself
2014-03-19 12:07:48 +11:00
Sam
5c26b3dad1
FIX: broken specs after new link alerting code
2014-03-18 15:22:53 +11:00
Sam
24667cedee
FEATURE: notify users when linked
...
Extract out PostAlerter from observer
Track outgoing post links correctly
Notify users they are linked when linked
2014-03-18 15:22:53 +11:00
Sam
fe63db7953
Merge pull request #2115 from vikhyat/badge-system
...
Initial badge system implementation
2014-03-17 10:06:37 +11:00
Vikhyat Korrapati
9b26c8584e
Initial badge system implementation.
2014-03-14 21:49:26 +05:30
Neil Lalonde
9ca516e58d
Rename nickname to username in the code. Use new hub routes. (Old routes still exist as aliases for old Discourse instances.)
2014-03-12 12:39:36 -04:00
Jonathan Allard
c513725f26
Allow users to toggle interface language in their preferences
2014-02-18 14:53:59 -05:00
Sam
983c7567aa
BUGFIX: seen recently key needs to be public so mock can easily reach in to it
2014-02-18 16:09:24 +11:00
Neil Lalonde
42fb9d4fb1
Avoid calling can_delete_account twice
2014-02-14 13:06:39 -05:00
Neil Lalonde
8711762143
Users who have made no more than one post can delete their own accounts from their user preferences page.
2014-02-13 13:52:06 -05:00
Sam
227873df78
FEATURE: proper mailing list mode
...
once enable_mailing_list_mode is enabled any user can elect
to get every post via email unless they opt out of category or topic
2014-02-07 11:07:52 +11:00
Nick Borromeo
e8474bd725
Change user update to use #fetch for defaults
...
This changes the use of the || operator when setting the default of the
user attribute if the key does not exist to #fetch. This will make sure
that if false is passed in as the value it will still fail and use the
default setting.
This also adds constants to define and array and a hash of symbols which
is iterated over to set the users attributes.
2014-01-20 18:07:47 -08:00
Sam
f91163e146
FEATURE: added UI for tracking categories
2014-01-06 11:57:27 +11:00
Sam
2da5d2311b
FEATURE: Added UI for adding and removing watched and muted categories
2014-01-02 17:59:08 +11:00
Sam
db1d01d1a2
Discourse as a Mailing List improvements
...
FEATURE: context is not emailed if we previously emailed you the post
FEATURE: site setting to enable_watch_new_topics , false by default.
When enables users can elect to watch everything by default
FIX: Custom email subjects (x quoted you in [title], x replied to [title])
was removed, this broke email grouping. TBD, include info in footer somehow
FIX: topic user specs were messy, reduce side effects
2013-12-30 13:02:12 +11:00
Sam
05a3c8090f
Merge pull request #1658 from salbertson/sa-refactor-users-controller-create
...
Refactor UsersController#create
2013-12-12 22:16:50 -08:00
Neil Lalonde
561961eff6
FIX: can grant titles to regular users. Guardian initializer needs current_user, not the target user.
2013-12-10 12:46:35 -05:00
Scott Albertson
51eff92170
Refactor UsersController#create
...
* Simplify controller action
* Extract service classes
2013-12-05 10:11:16 -08:00
Neil Lalonde
69cc1dd689
FIX: don't suggest a username that's already taken, even if hub finds a match
2013-11-20 14:56:21 -05:00
Neil Lalonde
981d8f6aea
Signup form: prefill username if Discourse Hub has a match for the email address. Also, fix some bad specs in username_checker_service_spec that were passing...
2013-11-19 14:15:28 -05:00
Scott Carleton
32e414690a
Handle ugly url targets
2013-11-14 13:14:02 -05:00
Régis Hanol
7e7d951152
do not pull hotlinked images when max_image_size_kb == 0
2013-11-13 17:30:48 +01:00
Robin Ward
6e43372e7c
Merge pull request #1610 from salbertson/sa-refactor-users-update
...
Move logic for updating a user to a service class
2013-11-07 12:29:19 -08:00
Neil Lalonde
0c6f794eb0
Used the term suspended instead of banned.
2013-11-07 13:53:49 -05:00
Scott Albertson
72bfa4471f
Move logic for updating a user into a service class
2013-11-07 08:39:39 -08:00
Neil Lalonde
92a0729937
When banning a user, a reason can be provided. The user will see this reason when trying to log in. Also log bans and unbans in the staff action logs.
2013-11-01 10:47:26 -04:00
Neil Lalonde
52b0c1c45f
When logging the deletion of a user, don't store its id in the target_user_id column. It will never match a user record.
2013-11-01 10:47:26 -04:00
Robin Ward
f7d6ab579c
Merge pull request #1571 from novemberkilo/master
...
Refactor User#update_last_seen! and User#update_tracked_topics
2013-10-29 08:28:08 -07:00
Neil Lalonde
4e46d91b8d
Refactor SpamRulesEnforcer so that each spam rule is in its own class
2013-10-25 13:25:02 -04:00
Navin Keswani
6ce80fd148
Refactor User#update_last_seen! and User#update_tracked_topics
2013-10-23 23:27:30 +02:00
Neil Lalonde
8aab2253d0
Whitelisted ip addresses will not be flagged as spam by flag_sockpuppets
2013-10-23 17:11:35 -04:00
Neil Lalonde
c1008f4359
Fixes for postgresql inet columns in Rails 4. They're backed by an IPAddr class now, which breaks sql parameter marker support, and automatically sets the attribute to nil when trying to assign an invalid ip address.
2013-10-22 19:19:32 -04:00
Scott Carleton
cbef844a57
Build out a URI Adapter to allow uploading an avatar via a url
...
Currently only really accessible via the API. The UriAdapter creates a
tempfile from a url and gives a ActionDispatch::HTTP::UploadedFile back
to the controller to process as normal.
This will help a lot in being able to transfer avatar urls from another
app without monkey patching a lot of discourse code.
2013-10-21 14:53:03 -04:00
Neil Lalonde
c7aaee907b
When system flags users as sockpuppets, show a reason in the admin flags ui
2013-10-16 11:47:16 -04:00
Neil Lalonde
3c2c6ab24b
Add sockpuppet spammer detection. Automatically flag posts if they are from new users (registered less than 24 hours ago) at the same IP address and one of them started the topic.
2013-10-11 13:34:05 -04:00