Commit Graph

277 Commits

Author SHA1 Message Date
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