Guo Xiang Tan
5012d46cbd
Add rubocop to our build. ( #5004 )
2017-07-28 10:20:09 +09:00
Sam Saffron
045a2abcec
FEATURE: remove the timecop gem
...
We should only have one way of mocking time, misuse of timecop
was causing build stability issues
2017-07-24 12:11:10 -04:00
Guo Xiang Tan
fa09a02201
Fix specs.
2017-07-24 15:56:08 +09:00
Arpit Jalan
7cffbc8ba8
FEATURE: new site setting to limit message recipients
...
New site setting `max_allowed_message_recipients` to limit message
recipients
https://meta.discourse.org/t/one-of-my-users-just-group-messaged-100-other-user-with-a-spam-offer/65612/7?u=techapj
2017-07-06 22:52:49 +05:30
Guo Xiang Tan
e888369f51
UX: Don't send emails for discobot notifications.
2017-06-12 17:00:27 +09:00
Guo Xiang Tan
bd486100c0
Remove stubs on DiscourseEvent in tests.
2017-06-01 16:21:00 +09:00
Sam
0aed2533ac
Revert unread optimisation, has too many edge cases
2017-05-26 09:04:13 -04:00
Sam
29fac1ac18
PERF: improve performance of unread queries
...
Figuring out what unread topics a user has is a very expensive
operation over time.
Users can easily accumulate 10s of thousands of tracking state rows
(1 for every topic they ever visit)
When figuring out what a user has that is unread we need to join
the tracking state records to the topic table. This can very quickly
lead to cases where you need to scan through the entire topic table.
This commit optimises it so we always keep track of the "first" date
a user has unread topics. Then we can easily filter out all earlier
topics from the join.
We use pg functions, instead of nested queries here to assist the
planner.
2017-05-25 15:07:30 -04:00
Neil Lalonde
55b61e9bea
rename topic_status_update to topic_timer
2017-05-11 18:27:53 -04:00
cpradio
20c2c66dd4
FEATURE: Add normal as a preference for topic subscription state when replying to a topic
2017-04-20 22:33:10 -04:00
Guo Xiang Tan
04016f0dec
Support Ruby 2.4.
2017-04-15 12:29:00 +08:00
Guo Xiang Tan
f322f3a6cf
Fix the build.
2017-04-12 16:32:39 +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
Robin Ward
14410b71fb
Convert server side paths to use `/u/`
2017-03-30 10:23:24 -04:00
Guo Xiang Tan
5169ef8814
Fix broken specs.
2017-03-16 15:05:28 +08:00
Robin Ward
cf7774bdd9
FEATURE: Block muted users from sending you PMs
2017-01-03 14:51:53 -05: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
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
Joe Buhlig
87251fded7
FEATURE: Category setting to make all topics wikis
...
FEATURE: Category setting to make all topics wikis
2016-12-19 06:42:18 -06:00
Neil Lalonde
fb2633366a
FIX: featured link topics shouldn't require the same min post length
2016-12-09 15:46:26 -05:00
Neil Lalonde
a4c4f13901
Remove the topic_featured_link_onebox setting. We will always try to onebox a link and add it to the body if topic_featured_link_enabled is enabled.
2016-12-09 13:28:12 -05:00
Erick Guan
52763f5115
FEATURE: Allow posting a link with topics
2016-12-05 17:20:54 +01:00
Sam
c04d4171ff
FIX: whisper no longer experimental
...
- Regular users are not notified of whispers
- Regular users no longer have "stuck" topics in unread
- Additional tracking for staff highest post number
- Remove a bunch of unused columns in topics table
2016-12-02 17:03:31 +11:00
cpradio
6f1c31d777
Add notification level user preference when replying to a topic
2016-09-30 14:58:07 -04:00
Erick Guan
c463cf63d4
FEATURE: Webhook for user creation and approval
2016-09-19 10:12:55 +08:00
Guo Xiang Tan
5fe4837e28
Add `PostCreator#create!`.
2016-07-15 11:36:06 +08:00
Neil Lalonde
f13470b96b
Use db schema for tags instead of plugin store and custom fields
2016-05-26 14:29:48 -04:00
Robin Ward
1ffa448154
FIX: Broken spec which was brittle
2016-04-12 16:09:47 -04:00
Sam
0113fce420
FEATURE: automatically close topics with 10k+ posts
...
FEATURE: automatically close messages with 2k+ posts
Both configurable via `auto_close_messages_post_count`
and `auto_close_topics_post_count`
2016-04-12 13:29:48 +10:00
Sam
22b2f5285c
FIX: extract links in post processor
...
when oneboxes are not cached or are refreshed they can introduce new
links, these links must be extracted otherwise you can not follow them
2016-04-12 12:28:18 +10:00
Sam Saffron
bc75010b20
FEATURE: suggested messages for messages
...
FEATURE: clicking envelope takes you to inbox
Suggested messages works somewhat like suggested topics.
- New show up first (in either group inbox or inbox)
- Then unread (in either group inbox or inbox)
- Finally "related" which are messages with same participants as the current pm.
2016-02-03 18:50:05 +11:00
Guo Xiang Tan
28ac5fb17c
FEATURE: DiscourseEvent hook for server side markdown context.
2016-01-29 22:59:15 +08:00
Sam
d0ee32f3ce
FIX: correct counts on user summary
2016-01-24 16:39:01 +11:00
Sam
4ec409f705
FEATURE: don't add admins to topic allowed users if already in group
2016-01-12 13:57:45 +11:00
Régis Hanol
cf4cb2126a
FIX: word_count wasn't working with non-latin sentences
2016-01-11 11:16:23 +01:00
Sam
03ea0bfe22
FEATURE: allow users to archive messages
...
Messages are now in 3 buckets
- Inbox for all new messages
- Sent for all sent messages
- Archive for all messages you are done with
You can select messages from your Inbox or Sent and move them to your Archive,
you can move messages out of your Archive similarly
Similar concept applied to group messages, except that archiving and unarchiving
will apply to all group members
2015-12-23 11:09:30 +11:00
Sam
9899e8d4a5
FEATURE: First class messages to groups, you can select a group as a target of a message
2015-12-02 15:49:43 +11:00
Andy Waite
3e50313fdc
Prepare for separation of RSpec helper files
...
Since rspec-rails 3, the default installation creates two helper files:
* `spec_helper.rb`
* `rails_helper.rb`
`spec_helper.rb` is intended as a way of running specs that do not
require Rails, whereas `rails_helper.rb` loads Rails (as Discourse's
current `spec_helper.rb` does).
For more information:
https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files
In this commit, I've simply replaced all instances of `spec_helper` with
`rails_helper`, and renamed the original `spec_helper.rb`.
This brings the Discourse project closer to the standard usage of RSpec
in a Rails app.
At present, every spec relies on loading Rails, but there are likely
many that don't need to. In a future pull request, I hope to introduce a
separate, minimal `spec_helper.rb` which can be used in tests which
don't rely on Rails.
2015-12-01 20:39:42 +00:00
Régis Hanol
31a54377be
staged users automatically watches all topics they participates in
2015-11-18 22:24:46 +01:00
Régis Hanol
54d6d24cbf
FIX: timing issue with edits and cook post processing
2015-09-29 18:51:26 +02:00
Robin Ward
c4b1b848bc
More extension points for login buttons, used by OAuth2 plugin
2015-09-25 11:29:40 -04:00
Robin Ward
64598ceaba
FIX: Replies to whispers *must* be whispers
2015-09-25 11:29:40 -04:00
Robin Ward
79beb9f409
FIX: You could set `reply_to_post_number` when replying as a new topic
2015-09-22 13:32:19 -04:00
Guo Xiang Tan
cbb86f9bf6
FEATURE: Add a trigger for plugins to include their own jobs.
2015-09-04 22:59:39 +08:00
Sam
714f841f0a
FIX: null bytes in user input should not cause post creation to fail
2015-08-19 12:15:38 +10:00
Sam
56f12cd9f1
missing specs for 2 new events
2015-08-11 16:01:28 +10:00
Sam
7b8b96446e
FEATURE: track statistics around post creation
...
- how long were people typing?
- how long was composer open?
- how many drafts were created?
- correct, draft saved to go away after you continue typing
store in Post.find(xyz).post_stat
2015-08-03 14:29:15 +10:00
Robin Ward
fb8ba5e137
FIX: `PG::UniqueViolation` when trying to use the same embed code
...
Previously providing an embed code already in use would result in
a logged server error. After this commit the error is gracefully
bubbled up from the `PostCreator`
2015-06-15 12:09:59 -04:00
Sam
803feefd54
MessageBus handles readonly redis now, no need to wrap it
2015-05-04 12:21:00 +10: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
19a9a8b408
`NewPostManager` determines whether to queue a post or not
2015-04-15 14:54:36 -04:00
Robin Ward
a5ee45ccbe
`PostEnqueuer` object to handle validation of enqueued posts
2015-04-15 14:54:36 -04: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
Arpit Jalan
484ae8b6b7
FIX: return proper error message when replying to a closed or deleted topic
2015-03-16 16:43:22 +05:30
Luciano Sousa
0fd98b56d8
few components with rspec3 syntax
2015-01-09 13:34:37 -03:00
Sam
2251877332
FIX: "Dismiss Posts" corrupting read state
...
REFACTOR: seen_post_count was a bad name, renamed to highest_seen_post_number
2014-10-31 09:40:35 +11:00
Régis Hanol
5754e8dd0f
FEATURE: auto-close topics based on last post
2014-10-10 18:21:44 +02:00
Régis Hanol
de76b512c1
fix most deprecations in the specs (still some left)
2014-09-25 17:44:48 +02:00
Robin Ward
4f6b9815ae
FEATURE: List moderator warnings on admin dashboard
2014-09-08 13:25:02 -04:00
Robin Ward
334e21a03a
Revert "Revert "FEATURE: Can create warnings for users via PM""
...
This reverts commit 1c7559380c
.
2014-09-08 11:11:56 -04:00
Robin Ward
1c7559380c
Revert "FEATURE: Can create warnings for users via PM"
...
This reverts commit b0bfc1f93f
.
2014-09-08 10:38:59 -04:00
Robin Ward
b0bfc1f93f
FEATURE: Can create warnings for users via PM
2014-09-08 10:27:06 -04:00
Régis Hanol
61db6c95d2
FIX: couldn't start a 4-spaces block on the first line of a post
2014-09-02 01:18:06 +02:00
Sam
e145e34ebe
fix specs
2014-08-05 13:40:44 +10:00
Sam
138d013e56
FIX: Suspended users should not be allowed to post
2014-07-31 13:15:16 +10:00
Sam
6618358586
FIX: dupe protection is API only now
...
make optional later on (was introduced for wordpress plugin)
2014-07-14 15:59:58 +10:00
Sam
c87ed6b02a
Correct broken specs
2014-06-25 10:55:50 +10:00
Sam
c6c412fd45
BUGFIX: no reading credit for posts you create
2014-06-04 14:10:54 +10:00
Neil Lalonde
e68e97d986
FIX: moderators can't see private topics that they aren't invited to see.
2014-05-12 15:26:46 -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
Robin Ward
dbab628e16
Support for creating embedded topics via API
2014-04-03 14:42:44 -04:00
Neil Lalonde
0b1550f9d4
Add excerpt column to topics table to remove N+1 query in ListableTopicSerializer
2014-03-18 15:24:29 -04:00
Sam
73ef91cf27
junk code removed
2014-03-07 19:00:36 +11:00
Sam
edf86a207b
fix build
2014-03-05 14:26:42 +11:00
Régis Hanol
245bc19379
BUGFIX: PMs could be created with a category
...
BUGFIX: hide category column when displaying the list of private messages
2014-01-24 12:57:48 +01:00
Robin Ward
6853f37bee
Show estimated reading time near summarize button.
2013-12-10 13:47:36 -05:00
Neil Lalonde
1cc72d564f
Add specs for topic create with auto_close_time. Just ignore auto_close_time from users who are not authorized to use it instead of raising an error.
2013-11-28 11:06:04 -05:00
Neil Lalonde
a9ab98ef9e
Auto-close time can be entered in 3 ways, so a topic can close at any time
2013-11-27 09:52:35 -05:00
Brian Alexander
e2a5415aca
fix #1567 ; nil reference in spam_rules_enforcer.rb
2013-10-22 19:14:31 -06:00
Sam
5bf26ec34e
large refactor, ship a few columns from the user table into user_stats
2013-10-07 15:04:59 +11:00
Viktor Palmkvist
37673e3412
Make the composer and TopicCreator use category id instead of category name
...
Also fixes #1171
Includes backwards compatibility for topic creation
2013-09-17 12:13:19 +02:00
Robin Ward
c8ad977c8a
Revert "Merge pull request #1215 from Elegios/composer_use_category_id"
...
This reverts commit 763859d439
, reversing
changes made to b62caf80fb
.
2013-09-06 18:00:57 -04:00
Robin Ward
763859d439
Merge pull request #1215 from Elegios/composer_use_category_id
...
Make the composer and TopicCreator use category id instead of category name
2013-09-06 11:55:27 -07:00
Sam
41a1b6942d
notify moderators now goes to the "community" user, that saves our poor mods from a flood of pms
...
if any staff respond to a pm they are automatically added to the list of recipients and will start
getting email notifications
2013-09-06 14:07:23 +10:00
Viktor Palmkvist
f8129c4e43
Make the composer and TopicCreator use category id instead of category name
...
Also fixes #1171
2013-08-19 11:57:35 +02:00
Sam
58e7c3e1f3
push some work out of AR callbacks into PostCreator, add a couple of helpers for post and topic creation in test
...
fix it so the auto_track false marks topics as new
2013-07-22 15:07:20 +10:00
Sam
31bb08bcdd
added an option to bypass auto tracking of topics on post creation
2013-07-22 15:07:20 +10:00
Sam
ecf17cfebb
work in progress, add fidelity to category group permissions (full, create posts, readonly)
2013-07-16 15:46:11 +10:00
Sam
f6a8f6cfe5
don't notify on moderator actions, they just cause noise,
...
also filter out pms properly while at it
2013-07-08 12:44:55 +10:00
Sam
f6b850e7a4
allow skipping the validations on creation if its an api call AND skip_validations is specified
...
this allows wordpress plugin to post very very short titles or titles that would otherwise be disallowed
2013-07-02 12:23:19 +10:00
Robin Ward
bb908d5913
Email parsing uses Traditional Markdown Linebreaks by default. Added JS tests for line breaks.
2013-06-21 11:37:26 -04:00
Neil Lalonde
9b1d0baf45
Send a message to moderators when a newuser_spam_host_threshold is exceeded. Send it no more than once per day per user.
2013-06-10 13:17:32 -04:00
Robin Ward
1b5ec42173
FIX: Regression where a topic rollback would not properly report errors to the client.
2013-06-07 12:36:37 -04:00
Ian Christian Myers
b61e10f9ad
All parameters for #create in PostsController pass through strong_parameters.
...
We are now explicitly whitelisting all parameters for Post creation. A nice side-effect is that it cleans up the #create action in PostsController. We can now trust that all parameters entering PostCreator are of a safe scalar type.
2013-06-07 01:29:25 -07:00
Sam
ef976ba891
fix pending tests
2013-06-03 17:07:44 +10:00
Sam
73834370a5
work in progress, live unread and new counts
2013-05-30 16:49:57 +10:00