Commit Graph

1314 Commits

Author SHA1 Message Date
Guo Xiang Tan af3dc4e537 FIX: Publish group's categories to user when adding user to group.
https://meta.discourse.org/t/joining-a-group-doesnt-take-effect-unless-the-browser-is-hard-refreshed/57357/11?u=tgxworld
2017-06-02 17:38:14 +09:00
Sam a7fc93acac FIX: post mover not clearing reply_to_user_id 2017-06-01 18:00:14 -04:00
Guo Xiang Tan bd486100c0 Remove stubs on DiscourseEvent in tests. 2017-06-01 16:21:00 +09:00
Guo Xiang Tan b0dd05fdc6 FIX: Inherit topic auto close when changing topic's category. 2017-05-31 17:40:21 +09:00
Sam 0aed2533ac Revert unread optimisation, has too many edge cases 2017-05-26 09:04:13 -04:00
Guo Xiang Tan e57d2f5cb8 FIX: Don't do anything if avatar url returns an invalid status code. 2017-05-26 13:02:40 +08: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
Guo Xiang Tan 76229535ac Remove old test case. 2017-05-22 18:23:09 +08:00
Guo Xiang Tan 08c36fa968 REFACTOR: Clean up some code associated with topic timers. 2017-05-22 18:10:29 +08:00
Neil Lalonde cbe8e05f79 disable test that fails randomly 2017-05-17 12:46:50 -04:00
Sam 763f156d91 FIX: require re-activation if SSO changes email and updates it 2017-05-16 16:18:18 -04: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 44d7fe89ed FIX: unescape emoji in pretty title
This makes emoji in title consistent, it is later escaped back when needed
2017-05-15 10:28:05 -04:00
Neil Lalonde 55b61e9bea rename topic_status_update to topic_timer 2017-05-11 18:27:53 -04:00
Régis Hanol 9641d2413d REFACTOR: upload workflow creation into UploadCreator
- Automatically convert large-ish PNG/BMP to JPEG
- Updated fast_image to latest version
2017-05-11 00:16:57 +02:00
Sam 7d9b5514ba FIX: correctly invalidate theme css cache on scheme change 2017-05-10 15:47:11 -04:00
Sam 04b5516bf2 improve upload functionality 2017-05-10 15:47:11 -04:00
Sam 27362c5a4b improve spec 2017-05-10 15:47:11 -04:00
Sam bc0b9af576 FEATURE: support uploads for themes
This allows themes to bundle various assets
2017-05-10 15:47:11 -04:00
Sam f709899a1d Allow theme field object model to support uploads 2017-05-10 15:46:42 -04:00
Robin Ward 96c59c5b82 FIX: Don't notify or return flags on system users 2017-05-08 13:13:35 -04:00
Sam 257c0dea70 Merge pull request #4852 from tgxworld/pull_the_plug_on_daily_mailing_list
Remove daily mailing mode option as it doesn't scale.
2017-05-08 09:10:46 -04:00
Guo Xiang Tan e61959e6a8 FIX: `CustomEmoji` may contain an invalid upload_id.
https://meta.discourse.org/t/white-screen-after-deleting-custom-emoji/61608
2017-05-05 14:53:38 +08:00
Guo Xiang Tan 71a266b673 Remove daily mailing mode option as it doesn't scale.
https://meta.discourse.org/t/daily-updates-option-for-mailing-list-mode/45029/14?u=tgxworld
2017-05-05 12:21:50 +08:00
Guo Xiang Tan 441e0059af Fix tests that was testing the wrong class. 2017-05-05 10:59:07 +08:00
Sam 4ebbad991e FIX: properly clean up related color schemes on delete 2017-05-04 14:03:17 -04:00
Sam 342ef5f81a FEATURE: out-of-the-box dark/light user selectable themes 2017-05-03 11:31:33 -04:00
Arpit Jalan 75300b6356 improve specs 2017-05-03 17:48:33 +05:30
Arpit Jalan 86f1cc8c92 FIX: don't apply max_emails_per_day_per_user on critical emails 2017-05-03 17:07:39 +05:30
Arpit Jalan cdce060a38 FIX: don't apply max emails per day per user to forgot password 2017-05-03 14:02:37 +05:30
Sam 946f25098f Refactor theme fields so they support custom theme defined vars
This paves the way to allowing themes to specify uploads and so on.
2017-05-02 16:02:14 -04:00
Arpit Jalan 77a8cae094 FIX: rescue specific errors on invite failure 2017-05-02 15:13:33 +05:30
Guo Xiang Tan 59b906ab0d FEATURE: Disable minimum post length check when in PM with non human users.
https://meta.discourse.org/t/discourse-narrative-bot-beta-feedback/58621/65?u=tgxworld
2017-04-27 16:00:22 +08:00
Arpit Jalan aeead60036 FIX: make TopicEmbed trashable 2017-04-25 18:40:39 +05:30
Sam aec73d4003 correct the spec again 2017-04-20 17:41:35 -04:00
Sam 47b99e0922 group is now default watched 2017-04-20 17:38:46 -04:00
Sam 5365973c0a FIX: detection of error changed, so you can clear errors 2017-04-20 16:55:18 -04:00
Sam 7a9eee1b71 FEATURE: default notification level for group messages
also fixes it so staff can amend other user's group notification level
2017-04-20 15:47:35 -04:00
Sam 7eabb90b71 FEATURE: added error messages for bad theme CSS / JS 2017-04-19 16:46:46 -04:00
cpradio 2dccaff25d FIX: Correct behavior of auto-notification state updating to exclude when the topic already has a state of normal/muted 2017-04-19 06:29:35 -04:00
Arpit Jalan f968b4e662 Fix the build 2017-04-18 16:34:58 +05:30
Arpit Jalan 1c23aedccf FIX: always send password reset email when accepting invite if password is not set 2017-04-18 14:37:06 +05:30
Arpit Jalan 8dea70d354 Revert "FIX: User website allows new TLDs" 2017-04-18 13:18:51 +05:30
Rafael dos Santos Silva 4289dbe3e5 FIX: User website allows new TLDs 2017-04-18 00:30:37 -03:00
Sam 5e3a0846f7 FEATURE: allow themes to share color schemes 2017-04-17 15:56:24 -04:00
Arpit Jalan 7389831961 Fix the build 2017-04-15 15:52:35 +05:30
Arpit Jalan 0954367bf4 FIX: send activation email when accepting invite if password is set 2017-04-15 14:59:50 +05:30
Guo Xiang Tan 04016f0dec Support Ruby 2.4. 2017-04-15 12:29:00 +08:00
cpradio e3ad50de05 Add spec for auto notification update
It should update the topic subscription so long as what is being requested is higher than what is currently set for the user and the given topic
It should not update the topic subscription if the requested subscription is less than what is currently set for the user and given topic
2017-04-14 18:30:01 -04:00
Sam def7348777 FIX: display custom sections with default theme
also cleans up mechanism for previewing themes, cleans up naming,
gets rid of old janky "preview_style", secures local theme key
2017-04-14 13:35:12 -04:00
Guo Xiang Tan bda20cc44a FIX: Don't enqueue topic status update job if topic is deleted. 2017-04-13 12:02:35 +08:00
Guo Xiang Tan 57788200ec REFACTOR: Add `User.reserved_username?`. 2017-04-13 10:44:26 +08:00
Sam a7ed8a0310 correct theme importer to support embedded.scss 2017-04-12 11:30:16 -04:00
Sam 95d095c97d test should be configuring git info 2017-04-12 11:19:47 -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
Dean Taylor 1a9afa976d FEATURE: Add AWS S3 EU (London) "eu-west-2" region 2017-04-12 10:38:17 -04:00
Guo Xiang Tan 7cb389a235 Add `DiscourseEvent` trigger when user's topic notification level changes. 2017-04-12 11:56:50 +08:00
Arpit Jalan 8fb41bf5fb FIX: update timestamp when resending invite 2017-04-11 20:02:32 +05:30
Guo Xiang Tan 73180c8a19 FIX: Private message can be set to publish in the future. 2017-04-11 20:44:25 +08:00
Robin Ward e2ff06ce02 FIX: rounding error in spec 2017-04-07 17:44:02 -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 71501feaf3 Improve validation for `TopicStatusUpdate`. 2017-04-07 15:32:00 +08:00
David Rodríguez 934bff43d9 FIX: Copy post actions when moving a topic. 2017-04-06 12:16:22 +08:00
Guo Xiang Tan ad44d2a400 Merge pull request #4790 from tgxworld/add_publish_to_topic_status_update
FEATURE: Allow admins to schedule a topic to be published in the future.
2017-04-04 11:18:53 +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
Arpit Jalan 5ff29ce321 add test case for topic status update based on last post 2017-04-03 22:35:56 +05:30
Guo Xiang Tan 5cf75c67df FIX: Callback `undefined` error when topic has been deleted. 2017-04-03 09:06:15 +08:00
Guo Xiang Tan ed577fbff8 FEATURE: Pause a topic instead of permanently closing when flag threshold is reached. 2017-03-31 14:35: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 7b6242bfbb Minor cleanup of `/users/` rename 2017-03-30 10:23:24 -04:00
Robin Ward 14410b71fb Convert server side paths to use `/u/` 2017-03-30 10:23:24 -04:00
Robin Ward 45a257815a Convert front end paths from `/users/` to `/u/` 2017-03-30 10:23:24 -04:00
Guo Xiang Tan 7cf0f39066 Require `Sidekiq::Testing` in rails helper. 2017-03-29 11:10:25 +08:00
Arpit Jalan 4812417192 FIX: do not add user to group based on email domain unless email is confirmed 2017-03-28 15:02:40 +05:30
Arpit Jalan 3378e2d49f FIX: update topic fancy title when updating category name 2017-03-26 12:29:53 +05:30
Arpit Jalan 295cf8839e FIX: better error message when invited user already exists 2017-03-22 13:55:28 +05:30
Arpit Jalan 8cbfa24ca2 Fix failing test 2017-03-20 20:14:25 +05:30
Arpit Jalan 521c88fe58 FIX: enqueue activation email for invited user that has password set 2017-03-20 17:13:21 +05:30
Guo Xiang Tan 6057e17ae7 Fix weird test failure. 2017-03-20 12:06:37 +08:00
Robin Ward fd591257a8 Merge pull request #4759 from kennym/support-ports-for-ip-addresses-in-embedding
FIX: Allow ports for embed host IPs
2017-03-16 11:23:42 -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
Erick Guan cfbfea0596 FEATURE: Allow easier customization to the web hook event serialization. 2017-03-16 10:09:05 +08:00
Kenny Meyer ae957bca25 Allow ports for embed host IPs 2017-03-15 18:16:34 -03:00
Guo Xiang Tan d173473509 Fix randomly failing specs. 2017-03-14 14:43:48 +08:00
Sam 64680286f4 correct logic, so revalidation is reset
correct test so it can run at any point
2017-03-13 10:47:43 -04:00
Sam ef24fd54ba FEATUE: automatically validate token is stored in redis
This ensures we have some handling for redis flushall

We attempt to recover our in-memory session token once every 30 seconds

Code is careful to only set the token if it is nil, to allow for manual
cycling to remain safe if needed
2017-03-13 10:19:02 -04:00
Guo Xiang Tan 4d4a1a1552 Add scope for human users. 2017-03-11 14:25:09 +08:00
Sam 99f4d5082b FIX: Improve token rotation and increase logging
- avoid access denied on bad cookie, instead just nuke it
- avoid marking a token unseen for first minute post rotation
- log path in user auth token logs
2017-03-07 13:27:43 -05:00
Robin Ward dad57fa033 FIX: More errors with non-ascii URLs 2017-03-07 11:21:41 -05:00
Guo Xiang Tan d1e587c10a Merge pull request #4737 from oblakeerickson/approve_invited_user
FIX: approve invited user
2017-03-07 21:14:34 +08:00
Guo Xiang Tan 7d82a53dfe FIX: `Group#name` is case insensitive. 2017-03-06 17:24:03 +08:00
Guo Xiang Tan 8aea3caf00 FIX: Ensure that we only move posts that belong to the original topic. 2017-03-06 15:04:10 +08:00
Blake Erickson dbb3ddc7a6 FIX: approve invited user
This commit fixes the case where invited users who typed in a password
would not be approved by default. Because we moved the user create logic
for an invited user there was a clash with the `save` in the user model
and the `save` in the invite_redeemer class.

- added approve logic into invite_redeemer class.
- added tests to verify that the user is approved
- added a check to see if must_approve_users is on
- added a check to see if the inviter is staff
- go ahead and approve the user if must_approve_users is off
- keep existing User.approve workflow if user exists
- improve if/else logic to remove duplicate code
- use `Time.zone.now`
2017-03-05 06:58:23 -07:00
Guo Xiang Tan bcf634ca85 Merge pull request #4728 from nbianca/username-regex
Add support for username regex.
2017-03-03 22:59:23 +08:00
Bianca Nenciu 30909ec54e Add support for username regex. 2017-03-02 13:53:45 +02:00
Neil Lalonde 262016604d FEATURE: each category can control how many topics to show on categories page 2017-03-01 15:12:57 -05:00
Sam 3ac4709903 FIX: on initial token issue stop unmarking token as unseen
prev and current are the same so we need special logic to bypass
2017-02-28 10:38:22 -05:00
Robin Ward bf9626d031 FIX: Embedding was broken with non-english URLs and ports 2017-02-27 12:17:52 -05:00
Sam Saffron 7e8f0dc967 FIX: attempt to handle ios edge case where token is seen but unsaved
This relaxes our security in the following way

- prev auth token is always accepted as long as rotation
date is within our window of SiteSetting.maximum_session_age.hours
(previously old token expired within a minute of new one being seen)

- new auth token is marked unseen if we are presented with an old token
after we already saw new one

This attempts to fix an issue where ios webkit is not committing new cookies
2017-02-26 17:09:57 -05:00
Neil Lalonde c94fdcea38 FIX: admin dashboard posts count should not include system posts and whispers 2017-02-21 14:45:41 -05:00