Commit Graph

2515 Commits

Author SHA1 Message Date
Régis Hanol 31e8309f05 FIX: ensure we never have a string when an enum is Fixnum - Take 2 2015-09-09 14:34:44 +02:00
Robin Ward b6343b1e10 Merge pull request #3697 from riking/patch-6
FEATURE: Allow plugins to add admin dashboard warnings
2015-09-08 16:49:58 -04:00
Régis Hanol d5a2029026 FIX: category permissions weren't properly loaded when /categories is the homepage
FIX: don't scope to a specific category when creating a new topic from /categories
2015-09-07 18:52:53 +02:00
Sam 335be272ff FEATURE: implement capping of new/unread
We cap new and unread at 2/5th of SiteSetting.max_tracked_new_unread

This dynamic capping is applied under 2 conditions:

1. New capping is applied once every 15 minutes in the periodical job, this effectively ensures that usually even super active sites are capped at 200 new items

2. Unread capping is applied if a user hits max_tracked_new_unread,
  meaning if new + unread == 500, we defer a job that runs within 15 minutes that will cap user at 200 unread

This logic ensures that at worst case a user gets "bad" numbers for 15 minutes and then the system goes ahead and fixes itself up
2015-09-07 12:03:17 +10:00
Sam 87cd3a3b6a Merge pull request #3728 from tgxworld/add_trigger_post_process
FEATURE: Add a trigger for plugins to include their own post processing jobs.
2015-09-07 08:42:43 +10: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 1f31435a7b correct handling of data hash parsing 2015-09-04 13:34:21 +10:00
Sam a54e8f3c5e FEATURE: live refresh notifications as they happen 2015-09-04 13:20:33 +10:00
Régis Hanol 80041b874c FIX: don't show new topic notifications in homepag for suppressed categories 2015-09-03 19:18:46 +02:00
Régis Hanol d34f42d2f7 FIX: hide category column in topic list only when the current category has no children 2015-09-02 23:46:04 +02:00
Régis Hanol 2b9b29c8c8 FIX: ensure CategoryUser consistency 2015-09-02 22:02:31 +02:00
Régis Hanol 5984b62347 FIX: ensure we remove 'category_users' records when a user is deleted 2015-09-02 20:43:15 +02:00
Régis Hanol a501947d67 FEATURE: suppress categories from the homepage 2015-09-02 20:25:18 +02:00
Sam 262f561a87 FEATURE: relax username rules to allow - and . and leading _
This relaxes our very strict username rules to allow for some long asked for requests

- leading _ is now allowed
- . is allowed except for trailing char and confusing extensions like .gif .json
- dash (-) is now permitted
2015-09-02 12:13:44 +10:00
Neil Lalonde 1bd0f5b015 FEATURE: group can grant a trust level when a user is added 2015-09-01 16:52:12 -04:00
Kane York 65790452d8 Clean up the test checks when done 2015-09-01 13:32:35 -07:00
Arpit Jalan eb96016043 FEATURE: copy invite link for topic invites 2015-08-31 21:15:15 +05:30
Arpit Jalan 4e5228dc9e FIX: don't send notification emails to deactivated user 2015-08-31 12:35:12 +05:30
Arpit Jalan 4ad07b8c09 FEATURE: generate invite token 2015-08-28 18:29:31 +05:30
Régis Hanol d96531b163 FEATURE: bronze/silver/gold badges for popular links 2015-08-27 18:52:31 +02:00
Robin Ward f9717da28f Merge pull request #3695 from riking/patch-10
FIX: Consider reserved usernames as not 'available'
2015-08-26 10:51:50 -04:00
Sam ea9bc68ee5 PATCH: in some cases this is being turned to a string workaround for now 2015-08-26 16:19:21 +10:00
Kane York 1586886bf9 FIX: Consider reserved usernames as not 'available'
https://meta.discourse.org/t/reserved-usernames-ignored-by-invites/32490
2015-08-25 17:24:07 -07:00
Kane York 3cbfc45bf6 FEATURE: Allow plugins to add admin dashboard warnings 2015-08-25 17:20:14 -07:00
Sam 00e59bdc62 FIX: display warning when user is tracking too many topics
FEATURE: allow admins to bump up number of tracked topics if needed
using max_tracked_new_unread
2015-08-25 15:40:50 +10:00
Arpit Jalan 99edcddafb FEATURE: show pending/redeemed invite count in tabs 2015-08-25 01:12:46 +05:30
Sam 84fdc655ad correct retry logic 2015-08-24 10:28:38 +10:00
Sam 6451495ec6 FIX: only override sso name / username if it is supplied 2015-08-24 10:24:33 +10:00
Neil Lalonde d8d18ee0c3 FIX: emoji upload on subfolder install 2015-08-21 16:42:37 -04:00
Régis Hanol bef80633b1 FEATURE: global admin override of most of the user preferences 2015-08-21 20:39:21 +02:00
Robin Ward 7ffdc43091 Include the error messages so we can debug this easier 2015-08-21 12:43:10 -04:00
Robin Ward 146f2eab7f Can edit settings on the embedding page 2015-08-20 15:56:05 -04:00
Robin Ward d1c69189f3 FEATURE: Can edit category/host relationships for embedding 2015-08-20 15:56:04 -04:00
Régis Hanol 49996bcdea FIX: don't suggest name when email is empty 2015-08-20 11:59:28 +02:00
Sam dd3c685d39 Merge branch 'master' of github.com:discourse/discourse 2015-08-20 12:23:16 +10:00
Régis Hanol 9ae9aed010 FIX: change **default** notification state when a topic is recategorized within 5 days of creation 2015-08-19 22:40:20 +02:00
Sam 9364194f36 cut out an exception 2015-08-19 16:57:26 +10:00
Sam 157b118559 FIX: pointless error in log when failing to save post
rate_limit gets fired for rollback on in which case there is not post_number
2015-08-19 16:28:04 +10:00
Jonathan Brachthaeuser fc2fe5f02d Use userfield serializer in json dump
Use userfield serializer for json dump to make sure
that also the options are serialized correctly.
2015-08-17 21:44:13 +02:00
Robin Ward 2d4729782e FIX: Support quarterly on user directory 2015-08-17 13:58:40 -04:00
Régis Hanol 827ea641b0 FIX: Use File.size instead of IO.size 2015-08-17 18:57:28 +02:00
Sam f9deebefb9 FIX: include theme vars in site customizations 2015-08-17 10:59:46 +10:00
Régis Hanol b8cf797e31 FIX: ensure Badge consistency 2015-08-14 13:03:49 +02:00
Sam e82f892c2d FIX: allow global settings to include keys that have numbers in them 2015-08-14 17:01:21 +10:00
Sam e670ebb433 FEATURE: allow backup settings to be overriden by globals
FEATURE: allow backup interval of up to 30 days
FIX: if a custom file exists in backup directory look at its date
FEATURE: site setting automatic_backups_enabled default true
2015-08-14 16:28:29 +10:00
Arpit Jalan eb941475fa FIX: mark invite accepted notification as read 2015-08-13 11:11:54 +05:30
Régis Hanol 6669a2d94d FEATURE: per-topic unsubscribe option in emails 2015-08-12 23:00:16 +02:00
Régis Hanol ffbaf8c542 FEATURE: automatically downsize large images 2015-08-12 18:33:13 +02:00
Sam 75b4972682 posts with no url should return a 404 2015-08-12 07:28:54 +10:00
Robin Ward b02d624503 FIX: Okay, add support for hosts that have trailing paths 2015-08-10 15:26:58 -04:00
Robin Ward bd631e343a FEATURE: Can create stylesheets for embedded comments 2015-08-10 10:21:04 -04:00
Régis Hanol 15418f3d44 FEATURE: new 'backup_frequency' site setting 2015-08-07 17:34:58 +02:00
Sam fd63d89753 FEATURE: simpler definition of enum types 2015-08-07 11:41:48 +10:00
Neil Lalonde a4a14e6d5a add back the warning based on Sidekiq queue size, but only when the queue size is 100k or more 2015-08-06 16:46:49 -04:00
Sam 4486879fd2 select less data 2015-08-05 16:09:21 +10:00
Sam a51386a280 FEATURE: allow efficient preloading of custom fields in topic list 2015-08-05 16:09:21 +10:00
Sam a3c6cd7b38 FIX: handle link tracking correctly for cdn based urls
(usually attachments)
2015-08-05 12:15:08 +10:00
Sam 54b780439d FIX: CDN should always be whitelisted correctly 2015-08-05 11:49:11 +10:00
Sam c76cb671ad unblock early. 2015-08-05 10:49:59 +10:00
Sam 34122e06df FIX: if post creation fails, raise an exception 2015-08-05 10:47:38 +10:00
Sam 3c8ae643b2 UX: improve handling of users in queued-posts
- Display an icon on already blocked users
- Automatically unblock users that you approve
2015-08-04 12:56:37 +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 76aa0795b3 Use small actions for moving posts 2015-07-31 16:30:18 -04:00
Robin Ward cf91bca0cd FIX: Small actions should show descriptions on the user stream 2015-07-31 14:25:49 -04:00
Robin Ward 00ecec1ee4 FIX: Don't log empty bodies from moderation actions 2015-07-29 14:54:33 -04:00
Régis Hanol faf4f44776 FEATURE: make pin expiration mandatory 2015-07-29 16:34:21 +02:00
Neil Lalonde 7518918b8f FEATURE: add quarterly period to Top page 2015-07-28 12:31:42 -04:00
Robin Ward dc8a68fd29 FEATURE: New "Dropdown" user field type 2015-07-28 12:30:21 -04:00
Robin Ward bb93a345eb UX: Use smaller messages for moderator actions. 2015-07-27 10:09:21 -04:00
Sam 2876725e1b REFACTOR: remove hacky search from discovery 2015-07-27 16:47:06 +10:00
Sam 786cf6e61f format does not allow numbers 2015-07-23 15:33:38 +10:00
Sam c056c3ba7e FEATURE: allow users to specify a second hostname if needed
(very rarely needed feature, mostly for multisite and origin pull cdns)
2015-07-23 15:22:54 +10:00
Régis Hanol d456460d33 FIX: don't butcher GIFs
Use 'gifsicle' instead of 'convert' to resize & optimize GIFs

FIX: don't even try to fix GIFs orientation
FIX: use 'allow_animated_thumbnails' site setting for user profile backgrounds & user cards
2015-07-22 17:10:42 +02:00
Sam 04e9fdc610 make query less strange, no need for outer join
categories must exist for all topics
2015-07-21 22:45:20 +10:00
Sam 2847ec0af1 this join is brutal, hardcoding user id is way more efficient, but in pg 2015-07-21 22:26:51 +10:00
Sam 3b61b098ab PERF: optimise original query instead of huge rewrite
better perf for all cases
2015-07-21 21:53:54 +10:00
Sam 4491813d22 Revert "Revert "PERF: optimise query that gathers topic tracking state""
This reverts commit 909be09f1a.
2015-07-21 21:48:07 +10:00
Sam 909be09f1a Revert "PERF: optimise query that gathers topic tracking state"
This reverts commit 343e417a55.
2015-07-21 17:35:50 +10:00
Sam 343e417a55 PERF: optimise query that gathers topic tracking state
(this query runs on the front page to figure out new and unread topics)
2015-07-21 17:14:30 +10:00
Sam e3d6c476f5 Merge pull request #3593 from tgxworld/cache_results_on_about_page
Cache results on about page
2015-07-21 10:04:51 +10:00
Guo Xiang Tan b0ea6764e0 PERF: Cache About#stats. 2015-07-20 22:45:05 +08:00
Arpit Jalan 5fc7545c01 UX: include more details on Permalinks page 2015-07-17 21:39:23 +05:30
Kane York 61ea8c6f72 FIX: Allow to change ownership on deleted users' posts 2015-07-15 15:29:35 -07:00
Régis Hanol b0802abae2 FIX: crop & optimize user background profile/card images 2015-07-15 17:15:43 +02:00
Sam b772d96f7a FEATURE: permalink normalization
Optionally allow admins to apply regex based normalization
to permalinks prior to matching.

This allows us to drop query string, or cleanly ignore slugs, etc.
2015-07-15 15:34:25 +10:00
Arpit Jalan e0c9054748 FEATURE: invite page tabs 2015-07-13 09:42:51 +05:30
Sam f533276507 FIX: do not publish all categories when a category changes.
minor fixes to UI, still needs more work for live refresh of category listing
2015-07-10 12:09:43 +10:00
Neil Lalonde 782dd13e78 FEATURE: track user visits on mobile and display on admin dashboard in a new Mobile section 2015-07-07 14:06:42 -04:00
Robin Ward 2c14acac72 Merge pull request #3236 from sigginet/patch-1
FIX: Added two user badge triggers
2015-07-07 11:25:11 -04:00
Neil Lalonde 8c84e60df6 FIX: application request numbers for prev 30 day period was for current 30 day period minus today, not previous 30 days 2015-07-06 15:01:43 -04:00
Neil Lalonde 86cd1a19cc FEATURE: page view stats for mobile view 2015-07-03 17:19:33 -04:00
Robin Ward bfb4dc0055 Merge pull request #3573 from gschlager/patch-1
FIX: Disable validation during thumbnail creation
2015-07-01 15:22:02 -04:00
Rob Yurkowski 0ad4a6f036 Correct typo in Redis settings
The typo prevents authentication to passworded instances.
2015-06-30 22:19:02 -04:00
Neil Lalonde 8e76e6e4b7 topics with no reply data were strings 2015-06-30 15:42:38 -04:00
Gerhard Schlager 2e8838a0cd FIX: Disable validation during thumbnail creation 2015-06-27 01:26:16 +02:00
Robin Ward b52e5d1536 FIX: `default_avatars` wasn't being used for some server side templates 2015-06-26 13:38:09 -04:00
Neil Lalonde 93d7edb810 FIX: reports of topics with no response and time to first response should not include replies to your own topic 2015-06-25 18:45:11 -04:00
Arpit Jalan 03665e8466 FIX: mark user as approved if an invite is already present 2015-06-26 01:57:29 +05:30
Sam 1edb5919fa PERF: don't count all likes twice on like 2015-06-25 17:19:32 +10:00
Sam 8252f4e110 FEATURE: allow use of redis sentinel via redis_sentinels
Use: DISCOURSE_REDIS_SENTINELS and DISCOURSE_REDIS_HOST to configure redis
sentinel
2015-06-25 16:51:48 +10:00
Régis Hanol 18f887772d FEATURE: allow plugins to add custom admin reports 2015-06-25 02:42:08 +02:00
Robin Ward 6422d5efbd Use the same component for similar topics as search results. 2015-06-24 15:08:22 -04:00
Régis Hanol f18098fd9b FEATURE: category dropdown in admin reports 2015-06-24 15:19:39 +02:00
Régis Hanol 80f258e51c FIX: don't count mentions in oneboxes 2015-06-24 11:44:58 +02:00
Robin Ward cb94a9000d Revert "Revert "Extract logic to save external avatar url""
This reverts commit 2d20e4c692.
2015-06-23 15:59:50 -04:00
Robin Ward 2d20e4c692 Revert "Extract logic to save external avatar url"
This reverts commit 18b8df3f32.
2015-06-23 15:45:34 -04:00
Robin Ward 18b8df3f32 Extract logic to save external avatar url 2015-06-23 15:23:19 -04:00
Sam 9f88d6e252 fix regression in visible notification detection 2015-06-23 06:14:22 +10:00
Régis Hanol b25a16ee3e FEATURE: 2 new reports: time to first response, topics with no response
FIX: relativeAgeMediumSpan was off by 1
REFACTOR: extracted decimalAdjust & round functions from the poll plugin
2015-06-22 19:46:51 +02:00
Régis Hanol 5a77f62181 PERF: poor SQL performances when counting notifications 2015-06-22 14:40:03 +02:00
Sam 41e427bd2e Work in progress, full page search 2015-06-22 18:09:08 +10:00
Sam 5eabf01c29 FIX: don't allow storage of post timings batch larger than 60 secs 2015-06-19 10:35:55 +10:00
Sam f0c74d7685 PERF: batch update post timings
previously we would issue a query per row in post timings,
this batches it
2015-06-18 17:02:10 +10:00
Sam 1343d40558 PERF: deleting a post in huge topics was timing out
- add missing index to user actions for fast retrieval by post
- add missing indexes to users for fast retrieval of staff
- only refresh topic_users liked/bookmarked cache for affected users
2015-06-18 09:58:49 +10:00
Neil Lalonde 76a14cd279 FIX: user visit stats on admin dashboard should show sum of values for 7 day and 30 day columns 2015-06-15 13:16:29 -04:00
Régis Hanol 81290d7f18 UX: sort staff members by username 2015-06-15 18:53:53 +02:00
Régis Hanol 87ab1cef8e FIX: destroy optimized images that cant' be migrated to new scheme
Since we can always recompute an optimized image from the original upload, there's no need to keep optimized images that are generating errors.
2015-06-15 18:30:11 +02: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 05d343a921 EXTENSIBILITY: add point for topic loading 2015-06-15 16:25:54 +10:00
Sam 37dfb1b4b5 FEATURE: support for custom notification types
used by solved plugin
2015-06-15 14:18:03 +10:00
Régis Hanol bc9fd2c46d don't silence these errors 2015-06-12 20:11:23 +02:00
Régis Hanol 189cb3ff12 FEATURE: move migrate_to_new_scheme into a background job
- new hidden site setting 'migrate_to_new_scheme' (defaults to false)
- new rake tasks to toggle migration to new scheme
- FIX: migrate_to_new_scheme also works with CDN
- PERF: improve perf of the DbHelper.remap method
- REFACTOR: UrlHelper is now a class
2015-06-12 12:07:57 +02:00
Neil Lalonde 611b5f996e FIX: unpinned topics shouldn't remain pinned on categories page 2015-06-10 14:36:55 -04:00
Régis Hanol a52d31e25e FIX: properly handle external image download errors 2015-06-10 18:18:20 +02:00
Régis Hanol bdfdbcd217 FIX: we need the sha of the upload to create a thumbnail 2015-06-10 18:15:10 +02:00
Régis Hanol 90eca69e0a FEATURE: add a link to the topic in the banner for staff members 2015-06-09 19:31:14 +02:00
Robin Ward 7b6d6b76eb FEATURE: Multiple embeddable hosts
- Also refactors two site settings components into one, with tests
2015-06-09 13:25:43 -04:00
Arpit Jalan 545f19500d FIX: when sending private message emails do not check email_direct setting 2015-06-09 13:05:26 +05:30
Sam Saffron feeb509a97 SECURITY: expire all existing email tokens on password reset 2015-06-06 03:50:06 +10:00
Sam Saffron 4171eb758c SECURITY: expire all existing sessions if user changes passwords 2015-06-06 03:09:19 +10:00
Robin Ward c6cd1928be Simple "cook" for email imports from mailing lists 2015-06-05 11:46:36 -04:00
Régis Hanol 803083fc2e we don't care about convert output/errors 2015-06-04 19:16:52 +02:00
Arpit Jalan 725861f344 FIX: move draft cleanup to the dedicated method and add test 2015-06-03 14:35:54 +05:30
Sam Saffron 0fd1974838 FIX: leaving around useless drafts after posting 2015-06-02 20:28:33 +10:00
Sam Saffron d459cb95dc FIX: when advancing draft sequence remove old drafts 2015-06-02 20:28:33 +10:00
Régis Hanol 64e73e98fb FIX: allow the cooked_post_processor to download external uploads 2015-06-01 20:08:41 +02:00
Régis Hanol 81a699e2b0 better support for mixed content 2015-06-01 17:49:58 +02:00
Sam Saffron 83559bbf45 posts read may enter concurrently, retry 2015-06-01 11:55:07 +10:00
Sam Saffron 97f03e699d FIX: mixed local s3 store missing avatars 2015-06-01 11:17:42 +10:00
Régis Hanol acafa491b2 user avatar urls/templates refactor 2015-05-29 18:51:17 +02:00
Régis Hanol fe4f8b1519 download largest gravatar image 2015-05-29 18:11:15 +02:00
Régis Hanol 61d85206ee FIX: optimize uploaded images using lossy but very fast compression 2015-05-29 15:57:24 +02:00
Régis Hanol 14a9a98c5b FIX: need to reload the file once optimized 2015-05-29 13:02:05 +02:00
Régis Hanol 555b5cb055 FIX: optimized images were *not* optimized... (:fired:) 2015-05-29 10:58:27 +02:00
Régis Hanol e101396ea1 FEATURE: add support for device pixel ratio = 3 2015-05-28 01:48:07 +02:00
Régis Hanol 8e7bfd0f29 FIX: automatically growing uploads tree 2015-05-28 01:03:24 +02:00
Neil Lalonde ea8cf1a208 FIX: topic auto-close uses the client's time zone 2015-05-27 18:01:46 -04:00
Régis Hanol a5d93c6705 FIX: undefined method 'max_file_size_kb' 2015-05-26 16:39:41 +02:00
Régis Hanol 033c2e7140 FIX: respect the allow_animated_avatars site setting 2015-05-26 12:22:02 +02:00
Régis Hanol a797f7c664 FIX: properly handle images when using 's3_cdn_url' 2015-05-26 11:47:33 +02:00
Sam eeda367e70 FIX: should be able to serve optimized image from local if its ... local... 2015-05-26 12:32:52 +10:00
Neil Lalonde eaa1afeaf5 remove Google OpenID auth, since Google doesn't support it anymore 2015-05-25 15:13:44 -04:00
Régis Hanol bb0c2813ac FEATURE: generate (avatar) thumbnails in a background task
FIX: keep the "uploading..." indicator until the server replies via the MessageBus
FIX: text was disapearing when uploading an avatar

PERF: always use a region for S3 (defaults to 'us-east-1')
FEATURE: ApplyCDN middleware when using S3
FIX: use the same pattern to store files on S3 and locally
PERF: keep a local cache of uploads when generating thumbnails
FEATURE: migrate_to_s3 rake task
2015-05-25 17:59:00 +02:00
Sam 96dbeb8608 fix stylesheet cache to recover if file is on disk 2015-05-22 11:22:12 +10:00
Sam d1d703718a Merge pull request #3476 from paulkaplan/sso-distrust-email
Add SSO setting to not trust emails automatically
2015-05-20 12:07:14 +10:00
Sam bd63699d63 FIX: rescue even more errors in case avatar has issues downloading 2015-05-20 10:43:53 +10:00
Paul Kaplan 1c34341f31 Replace site setting with a payload attribute 2015-05-19 11:16:02 -05:00
Paul Kaplan 4c26c4d9bc Add a SiteSetting to not trust sso emails by default 2015-05-15 12:15:06 -05:00
Régis Hanol d40d308e45 Merge pull request #3445 from lukegb/bug/anonymous-emails
Don't send emails to anonymous users
2015-05-15 14:28:37 +02:00
Sam fdbcc31a9c Merge pull request #3461 from fantasticfears/slug
FIX: category custom slug can't be set when generation method is none
2015-05-15 14:59:35 +10:00
Sam 2955507a57 FEATURE: badges for inviting users
First invite = Promoter
3 TL2 = Campaigner
10 TL3 = Champion
2015-05-15 12:04:41 +10:00
Neil Lalonde 4451c8802a FIX: post gutter links are broken when using a subfolder 2015-05-14 14:26:18 -04:00
Sam 4a48f983fd PERF: hit all index conditions to speed up anon ip tracking 2015-05-14 17:21:02 +10:00
Sam e074651fdc PERF: refactor user search so works more efficiently
Stop scanning entire user table
2015-05-14 14:38:47 +10:00
Sam e6f73a1c80 PERF: optimise front page category security lookup query 2015-05-14 12:19:22 +10:00
Arpit Jalan 4324a157e0 FIX: rate limit topic invitations 2015-05-13 14:44:37 +05:30
Erick Guan 4c00eef8b5 FIX: category custom slug can't be set when generation method is none 2015-05-13 16:54:19 +08:00
Robin Ward 7a6aab24f1 Merge pull request #3453 from techAPJ/patch-1
UX: show lock icon in user stream if topic is closed/archived
2015-05-12 10:53:49 -04:00
Régis Hanol 6ae9bcab56 add DistributedMutex around uploads/optimized_images creation 2015-05-12 16:45:33 +02:00
Sam 5ef641126f remove s3 deprecation warning, we will continue to support it 2015-05-12 08:27:25 +10:00
Arpit Jalan 6b816f445d UX: show lock icon in user stream if topic is closed/archived 2015-05-11 23:09:53 +05:30
Robin Ward a7e6148d40 FIX: Some low activity users were being restricted from the directory. 2015-05-11 11:24:34 -04:00
Luke Granger-Brown 9f9825bb6b FIX: don't send emails to anonymous users
Also changes behaviour of real to not return anonymous users.

This means user counts will no longer include them, and the
mailing list system will ignore them even if they somehow end up
with the feature turned on.
2015-05-11 00:56:34 +01:00
Sam b7897d24b1 keep working even if username is blank 2015-05-07 13:52:26 +10:00
Sam 0b3ad8a3fd Merge branch 'master' of github.com:discourse/discourse 2015-05-07 11:51:09 +10:00
Sam d676bbc349 handle invalid param gracefully 2015-05-07 11:06:42 +10:00
Régis Hanol 9a96cd9f3b CRUSHED: duplicate key value violates unique constraint 'index_uploads_on_sha1' 2015-05-07 01:00:13 +02:00
Régis Hanol 033761d2f6 FIX: reset all votes when the # of options changes 2015-05-06 18:52:09 +02:00
Robin Ward edae9d7ad9 FIX: Sometimes `contents` is nil, don't break in that case. 2015-05-06 12:40:24 -04:00
Sam 8dd4aa145c FIX: don't fail if dupe timings are sent in 2015-05-06 17:33:03 +10:00
Sam 0bbf6354eb FIX: in some cases link was not followable due to click tracker 2015-05-06 11:22:53 +10:00
Sam 0f53fc8328 correct emergency regeneration in the controller 2015-05-06 07:33:32 +10:00
Sam 2625c3bb9a avoid work if nothing there 2015-05-06 07:12:38 +10:00
Sam ea670118c1 Add better error handling, correct the location on disk of stylesheet 2015-05-05 23:28:40 +10:00
Erick Guan a48dd1cc28 store the slug as the title is, only sanitize the slug
and prettify code
2015-05-05 18:33:16 +08:00
Erick Guan b772ff6e13 FEATURE: add slug geneartion options 2015-05-05 18:08:30 +08:00
Sam f58d85edea FEATURE: move stylesheet cache out of the uploads directory 2015-05-05 15:50:13 +10:00
Neil Lalonde 963ebf5963 FIX: if approving a user when must_approve_users is false, don't send an email 2015-05-04 15:30:25 -04:00
Robin Ward 4745eca4ad FIX: Don't abort PurgeInactive if they have posts. Just skip. 2015-05-04 11:37:49 -04:00
Sam 803feefd54 MessageBus handles readonly redis now, no need to wrap it 2015-05-04 12:21:00 +10:00
Neil Lalonde 1b250f1e01 FIX: crawler pages and RSS had broken links for sites deployed to a subfolder with relative_url_root 2015-04-30 12:46:26 -04:00
Neil Lalonde b2fd69a675 FIX: avatar_template when using relative_url_root 2015-04-28 20:58:46 -04:00
Robin Ward 8c930c97e0 If there are pending posts in a topic, display a message at the bottom 2015-04-27 15:55:10 -04:00
Robin Ward 19a89bb501 Small hooks for Queued Post version of discourse-akismet 2015-04-27 11:56:07 -04:00
Régis Hanol 151dea4088 FIX: editing a poll/post with a poll wasn't working properly 2015-04-26 00:12:19 +02: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 15dbce5886 Show pending posts count in modal when your posts are enqueued 2015-04-24 15:44:59 -04:00
Robin Ward 3660fe4f60 FIX: When approving/rejecting a post it should delete the user action 2015-04-24 15:25:47 -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 80b2935e11 FIX: prevent DOS when fixing avatar in quotes 2015-04-24 11:14:10 +02: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
Will Jordan bbfa5c7df1 Fix `NoMethodError` in TopicEmbed#find_remote
Stop TopicEmbed#find_remote from generating `NoMethodError: undefined method `empty?' for nil:NilClass` exceptions
2015-04-22 16:52:02 -07:00
Sam Saffron 40b22bf367 PERF: improve performance for featured user calculation 2015-04-22 23:54:54 +10:00
Robin Ward 5bf8c31af4 Users can see their pending posts 2015-04-21 16:44:47 -04:00
Robin Ward f600ead587 FIX: Don't validate approved posts.
A moderator has already validated them. Otherwise we hit things like
rate limits.
2015-04-21 11:59:35 -04:00
Robin Ward 2cdd967188 Adds support for invisible approval queues, which we'll need for Akismet 2015-04-20 17:19:05 -04:00
Robin Ward 6ae58d41a7 PERF: Only refresh the Daily stats hourly, do the others daily. 2015-04-20 12:11:36 -04:00
Sam Saffron 296add56e6 correct letter avatar template 2015-04-20 13:07:12 +10:00
Tan Le 9fbc763902 Replace Hash#keys.each with Hash#each_key for some perf boost 2015-04-18 21:53:53 +10:00
Sam 51b747346e PREF: speed up grabbing unread counts 2015-04-17 16:01:20 +10:00
Sam 832cb9fdc3 FIX: admin check missing from topic tracking state
FIX: handle muted categories correctly
2015-04-17 14:03:08 +10:00
Robin Ward 2459f52c71 Merge pull request #3375 from techAPJ/patch-2
FEATURE: invite existing users to private topic
2015-04-16 11:13:42 -04:00
Sam 4387e05162 PERF: speed up query 2015-04-16 17:29:37 +10:00
Sam a5b25ad2af FEATURE: scale up likes per day as users increase trust level
tl2 = 1.5 times the likes
tl3 = 2 times the likes
tl4 = 3 times the likes

configurable via tl[234]_additional_likes_per_day_multiplier site setting
2015-04-16 09:44:30 +10:00
Neil Lalonde dcb9d6e16a remove queue_size_check 2015-04-15 15:52:39 -04:00
Robin Ward d2ed64751e UX: Show category badge on enqueued posts 2015-04-15 15:29:37 -04:00
Arpit Jalan d491d4f997 FEATURE: invite existing users to private topic 2015-04-16 00:52:54 +05:30
Robin Ward 9ffec28076 Allow posts in any queue to support topic/post attributes 2015-04-15 14:54:37 -04:00
Robin Ward 96d2c5069b Interface for reviewing queued posts 2015-04-15 14:54:37 -04:00
Robin Ward f1ede42569 Add the posts that need to be reviewed to the hamburger 2015-04-15 14:54:37 -04:00
Robin Ward a5ee45ccbe `PostEnqueuer` object to handle validation of enqueued posts 2015-04-15 14:54:36 -04:00
Robin Ward 8ba6a45cd7 Post Queue model to enqueue creation of posts 2015-04-15 14:54:35 -04:00
Robin Ward eaf5d21c41 Don't store post timings that are greater than the account lifetime 2015-04-14 11:49:44 -04:00
Ed Gibbs 5650428052 FIX: Sort page views report records
Adding a sort ascending by date to the page views report.
2015-04-12 10:46:13 -07:00
Sam 75890aed26 FEATURE: allow admins to choose a group as a primary group
FEATURE: allow admins to set a default title for a group
2015-04-10 12:17:28 +10: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
Régis Hanol babbbc06d1 FIX: add support for .tgz and .gz backup files 2015-04-07 15:26:47 +02:00
Sam f909233ed5 Merge pull request #3338 from Qasem-h/RTL-Support-For-Persian
add rtl support for persian language
2015-04-07 09:39:50 +10:00
Qasem Hajizadeh 768d170d12 add persian language to rtl support 2015-04-07 00:36:46 +04:30
Régis Hanol 50edad5fb2 Merge pull request #3336 from techAPJ/patch-1
FEATURE: support inviting existing users to topic and message when SSO is enabled
2015-04-06 11:11:42 +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
Arpit Jalan e8dd5592c6 FEATURE: support inviting existing users to topic and message when SSO is enabled 2015-04-05 14:31:35 +05:30
Jeff Atwood 6182af5e37 Revert "Allowing poll feed with UTF-8 title"
This reverts commit 63704c5cee.
2015-04-03 23:33:01 -07:00
Thomas Schmit 63704c5cee Allowing poll feed with UTF-8 title 2015-04-03 17:20:20 +02:00
Régis Hanol 0e1c4a0a44 Merge pull request #3313 from techAPJ/patch-1
FEATURE: invite existing user to a topic
2015-04-03 11:41:10 +02:00
Arpit Jalan 8c2d7dcaac FEATURE: invite existing user to a topic 2015-04-03 15:00:04 +05:30
Régis Hanol d845dd2225 FIX: actually optimize the image! 2015-04-03 11:22:48 +02:00
Neil Lalonde 30b063c08b FEATURE: make full names a required field of user profiles with the full_name_required setting 2015-04-02 17:08:04 -04:00
Régis Hanol 682656fa6c FIX: only redirect to whitelisted hostnames 2015-04-01 22:59:25 +02:00
Régis Hanol 0f4a4651a9 FIX: youtube preview video title link doesn't work 2015-04-01 18:23:27 +02:00
Régis Hanol eec1921ba9 FIX: notifications inconsistencies + never notify system user 2015-04-01 11:55:59 +02:00
Régis Hanol 10b8eca9a6 fix the build 2015-03-30 12:48:20 +02:00
Régis Hanol 588667b1e4 FEATURE: fix avatar in quotes when changing avatars 2015-03-30 12:31:10 +02:00
Sam 05737effef FIX: stop stripping dots from SSO names
This could upset Louis C.K.
2015-03-27 10:25:51 +11:00
Sam d80ed94608 more username cycling avoidance 2015-03-27 10:10:53 +11:00
Sam 0c287d7d6b ensure usernames do not keep cycling 2015-03-27 10:04:16 +11:00
Sam 4566a1e30a FIX: sso override code not triggered when attaching to existing user 2015-03-27 09:39:35 +11:00
Régis Hanol a87083fa76 FIX: use 'resize' option instead of 'thumbnail' when downsizing emojis 2015-03-26 18:16:15 +01:00
Robin Ward 2cc5858163 Add site setting to disable User Directory, include restricted info 2015-03-26 11:26:19 -04:00
Sam 5aa1272f05 clean up first day user definition and object model 2015-03-26 16:48:36 +11:00
Sam 9834d11503 Staff and TL2 up are immune to newuser checks and not considered new users 2015-03-26 16:04:46 +11:00
Sam cfa511e35d FIX: correctly mute likers
FEATURE: disallow all muting of staff
2015-03-26 12:08:04 +11:00
Arpit Jalan fb0e7dc0b2 FIX: do not delete already redeemed invite 2015-03-25 23:30:09 +05:30
Régis Hanol 90de61ee3d S3 deprecation warning 2015-03-25 18:34:07 +01:00
Arpit Jalan 4862a93804 FIX: delete duplicate invites 2015-03-25 22:43:41 +05:30
Robin Ward 1e3e4135a3 Add Posts Read + Visits to User Directory 2015-03-24 15:31:54 -04: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 853c91d7d0 Merge pull request #3289 from fullfatthings/suppress_sso_welcome_emails
Add an sso option to suppress welcome emails
2015-03-23 10:36:58 +11:00
Robin Ward 3c0fee1786 Fixes broken spec 2015-03-20 13:24:03 -04:00
Dan Singerman e8648350eb Add an sso option to suppress welcome emails
As discussed here: https://meta.discourse.org/t/create-new-sso-users-without-sending-welcome-emails/24894
2015-03-20 17:04:52 +00:00
Robin Ward 605fe4b11d Don't count moderator actions in the user directory stats 2015-03-20 12:14:14 -04:00
Robin Ward 9f22be2865 Restrict User Directory results more based on privacy 2015-03-20 11:42:39 -04:00
Régis Hanol 5084e2bdf1 Merge pull request #3284 from techAPJ/patch-1
FEATURE: new site setting min_first_post_length
2015-03-19 19:55:27 +01:00
Arpit Jalan b706307ac7 FEATURE: new site setting min_first_post_length 2015-03-20 00:20:38 +05:30
Robin Ward 7ef306cd3b A bunch of tweaks to the Users directory
- Move user directory from `/directory` to `/users/`
- Defaults to 'weekly' time period
- Don't include deleted topics/posts in the results
- Move heart icon to header instead of on each row
- "Users" instead of "Users found"
2015-03-19 12:29:38 -04:00
Robin Ward 3d2d224312 FEATURE: User Directory, with sorting and time period filter 2015-03-18 15:20:34 -04:00
Sam 948617cb0b FIX: ruby 2.2 using new parsing library which is way too lax 2015-03-18 16:25:24 +11:00
Régis Hanol 4ff1e19712 FIX: emoji aliases were not recognised 2015-03-16 18:28:11 +01:00
Régis Hanol df7c38dd51 FIX: don't add an automated message when *a* moderator already replied (as opposed to *the* moderator) 2015-03-16 12:02:34 +01:00
Régis Hanol 3a40875e0b Merge pull request #3247 from jmay/group-manager-invites
group manager can issue invitations from restricted topics
2015-03-16 09:53:04 +01:00
Régis Hanol afd2417945 FEATURE: new 'auto_respond_to_flag_actions' site setting 2015-03-11 19:29:09 +01:00
Régis Hanol c8631a7a8b FIX: auto-message shouldn't generate notifications 2015-03-11 19:07:17 +01:00
Régis Hanol 6cd4330335 FIX: show all deleted posts 2015-03-11 18:07:47 +01: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
Robin Ward 0db89d20ee FEATURE: email digest frequency of every 3 days 2015-03-10 11:21:15 -04:00
Robin Ward 6ea20018c5 FIX: site cusomizations didn't respect subdirectories 2015-03-09 16:38:25 -04:00
Régis Hanol fc962eb378 FEATURE: automatic daily roll-up for screened IP addresses 2015-03-09 18:55:17 +01:00
Kris Aubuchon 6c9eeb0792 adding a new "bullet" category style 2015-03-09 12:25:27 -04:00
Sam da5446a438 FIX: Don't use discourse.conf in test 2015-03-09 13:14:29 +11:00
Sam 79a17d5c22 FIX: discourse.conf not parsing out comments correctly 2015-03-09 13:14:29 +11:00
Sam 2a586d59e9 FEATURE: top topics all time
tweak top algorithm (we will continue next week)
2015-03-06 18:00:29 +11:00
Sam 09e470c98a FEATURE: start counting repeat topic views (default is one per 8 hours)
configurable with topic_view_duration_hours site setting
2015-03-05 15:25:05 +11:00
Robin Ward c4fa75918b FIX: If a category of a topic changed, watching/tracking didn't kick in 2015-03-04 13:39:50 -05:00
Jason W. May 0f36774246 group manager can invite members into the group from any restricted topic 2015-03-03 12:18:42 -08:00
Neil Lalonde a5584f1978 FIX: trying to deleting post with nil topic was failing 2015-03-03 11:52:46 -05:00
Neil Lalonde 7c14db44cc UX: improve message when admin login is blocked because of admin ip address whitelisting 2015-03-02 12:13:22 -05:00
Robin Ward 17d07a8b9a Adds a new `plugin_changed` notification reason for plugins to use 2015-02-27 11:58:52 -05:00
Sam 9981257880 FIX: only add user to invited groups once 2015-02-26 14:05:44 +11:00
Sigurður Guðbrandsson bee3bbdc05 FIX: the badge triggers broke
Needed to add self. for the badge trigger variables, otherwise it breaks everything ;)
2015-02-26 00:50:58 +00:00
Régis Hanol 1a070b16e4 FIX: use the 'post edit time limit' for topics too 2015-02-25 20:53:21 +01:00
Robin Ward 005b8bf7c3 FIX: When creating a SSO user via sync, do not user the IP address. 2015-02-25 14:41:23 -05:00
Sigurður Guðbrandsson 15e54c715f FIX: Added two user badge triggers
Created two triggers that trigger events when a badge is granted or removed.

Trigger 1:
user_badge_granted
 Variable - badge_id
 Variable - user_id

Trigger 2:
user_badge_removed
 Variable - badge_id
 Variable - user_id
2015-02-25 17:23:57 +00:00
Régis Hanol d5828d3743 FIX: don't use 'convert' to optimize GIF + refactor 2015-02-25 15:08:33 +01:00
riking f1b606bf08 FEATURE: Use `git describe` for dashboard version 2015-02-23 16:07:08 -08:00
Robin Ward ca5730018a FIX: SSO code should respect IP address filters 2015-02-23 16:01:46 -05:00
Robin Ward 8186d86f38 FIX: Enforce max length for custom user fields 2015-02-23 13:02:30 -05:00
Sam 47aa8f3f97 Merge pull request #3197 from riking/rate-limiter
FIX: Don't expire ratelimits at midnight server time
2015-02-23 16:52:25 +11:00
Sam 8370b26cba PERF: optimise pinned handling on home page
Old query used to scan the full topics table, on home page

Instead we now perform 2 queries, one for pinned and one for unpinned and merge
results in a 10x improvement on a 1 million topic DB
2015-02-23 16:51:21 +11:00
Sam 6960639c58 Merge pull request #3190 from riking/thrown_logging
Delete old ErrorLog, use Logster for 500 errors
2015-02-23 14:19:16 +11:00
Régis Hanol 20c9a312c7 FIX: clicks counter on attachments wasn't always working 2015-02-22 20:47:18 +01:00
Régis Hanol 92e6446f0f FEATURE: new site setting 2015-02-21 18:37:37 +01:00
Régis Hanol 3bcaaf6960 also update changed attributes 2015-02-20 18:33:55 +01:00
Régis Hanol 82157418eb FIX: we only want to downsize emojis 2015-02-20 17:24:37 +01:00
Sam bd61cdf21c FIX: when allow uncategorized was off we were still showing uncat for admins/mods 2015-02-20 17:40:59 +11:00
Régis Hanol e74b9ee5da FIX: should not count disagreed flags 2015-02-19 18:11:07 +01:00
Régis Hanol e09e8e0b76 FIX: error when re-bookmarking a topic/post 2015-02-19 16:43:12 +01:00
Sam 103d42a9d9 FIX: emoji cache could get corrupt
FEATURE: enforce 1 day expiry by default on discourse cache

remove family expiry concept as the implementation was fragile
2015-02-19 16:58:22 +11:00
Sam 67f404d281 FIX: remove notifications on deleted topics from the stream 2015-02-19 12:40:00 +11:00
Régis Hanol 0fca0e9758 FEATURE: 1 year anniversary badge 2015-02-18 19:30:07 +01:00
Sam fff55e0ee3 FEATURE: allow users to specify if prepared statements are allowed
(they need to be disabled for pgpool based setups)
2015-02-18 11:16:53 +11:00
Robin Ward 2104c08fb7 FIX: About user count was off by 1 2015-02-17 15:32:06 -05:00
Régis Hanol 3cad4824d7 FEATURE: allow moderators to see flagged private messages 2015-02-16 13:03:04 +01:00
Robin Ward 3ce2077aa8 Migrate unsubscribe keys to the database.
This should reduce a lot of the keys in redis.
2015-02-13 14:24:15 -05:00
Régis Hanol 86c7071559 remove all calls to the distributed mutex in emojis 2015-02-13 19:34:24 +01:00
Régis Hanol 324a3da723 remove distributed mutex for emojis (not working) 2015-02-13 19:26:26 +01:00
Régis Hanol 7b8c7ff3ef FIX: sub-categories with the same name had the same background image 2015-02-12 18:21:07 +01:00
Robin Ward e207ca36ee Easier helper for filtering secured categories 2015-02-12 11:52:59 -05:00
Sam a5f46c98c1 PERF: only load locale files we are using
We used to load up all translations in all languages
2015-02-12 12:08:14 +11:00
Neil Lalonde fcae399481 fix my totally broken ApplicationRequest.stats method 2015-02-11 17:41:35 -05:00
riking 3c035dce7c FIX: Don't expire ratelimits at midnight server time 2015-02-10 22:45:46 -08:00
Sam 577f7446b4 FIX: only load S3 stuff when we need it 2015-02-11 10:55:04 +11:00
Robin Ward c0856daf13 Merge pull request #3192 from riking/patch-xss
SECURITY: missed html escaping
2015-02-10 15:24:09 -05:00
Régis Hanol c4e427cf73 FEATURE: filter screened IP addresses 2015-02-10 19:38:59 +01:00
riking 83b51875bb Use html_escape method instead of gsub 2015-02-09 15:03:17 -08:00
riking 68ccd2d664 FEATURE: All 500 errors now show up in Logster
Added Discourse.handle_request_exception()
2015-02-09 12:48:33 -08:00
Régis Hanol 1e6f886886 FIX: use distributed mutex to prevent errors when uploading emojis in batches 2015-02-09 18:54:57 +01:00
Régis Hanol e0703dbbc7 FIX: broken gravatar link when using S3
Don't break the optimized image workflow when there was an issue downloading a copy of the original image
2015-02-09 17:00:58 +01:00
Sam e8323fa534 FIX: removing a group from a user was not removing primary group 2015-02-09 16:03:09 +11:00
Neil Lalonde 96b15cbba6 FIX: dashboard report date range calculations include time zone, and application request data too 2015-02-06 17:20:11 -05:00
Régis Hanol 8e2d84ee27 Merge pull request #3174 from riking/patch-poll
FIX: Allow closing polls in multi-locale sites
2015-02-06 09:44:44 +01:00
riking 06f02ce9fc FIX: 🈂️ Allow closing polls in multi-locale sites 2015-02-05 19:55:03 -08:00
Sam 820ce8765e refactor traffic report
split traffic report in 2, page view vs raw traffic
hide raw traffic report by default
improve flushing logic for application reqs
2015-02-06 14:39:16 +11: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
Sam 08b790b3c2 improve metrics gathered using in our traffic section
this also pulls out the middleware into its own home and inserts in front
2015-02-05 16:08:52 +11:00
Sam c9adfa65a0 FEATURE: dashboard stats for application traffic 2015-02-05 11:18:21 +11:00
Neil Lalonde 27557b8402 ApplicationRequest can return a report 2015-02-04 15:05:22 -05:00
Sam 21402d9d9e annotations 2015-02-04 16:34:25 +11:00
Sam e105f0965c infrustructure for tracking application web requests 2015-02-04 16:15:16 +11:00
Sam 06edfb85a9 annotations 2015-02-04 16:15:16 +11:00
Régis Hanol 0e5c9b2590 small upload code refactor 2015-02-03 18:44:18 +01:00
Sam 7e259375e9 PERF: properly pass topic_id to post action cache to avoid excessive query
in the past auto closing was forcing a consistency check on topic, which in
turn was triggering a full post action cache rebuild
2015-02-03 15:59:26 +11:00
Régis Hanol 20308ecfd9 fix typo (stupid 🇫🇷) 2015-02-02 21:55:44 +01:00
Robin Ward 06279b5c6a Add a new event for when a post is confirmed as spam 2015-02-02 15:52:21 -05:00
Robin Ward f15b0d205f FIX: The "too similar" check happened when trying to make a post a wiki 2015-02-02 12:44:56 -05:00
Neil Lalonde b56999e984 show last 30 days on about page 2015-02-02 12:27:49 -05:00
Jeff Atwood e45b3c15c3 Revert "FIX: auto orientation code causing grey images to appear blackish"
This reverts commit f680374820.
2015-02-02 01:27:52 -08:00
Sam f680374820 FIX: auto orientation code causing grey images to appear blackish 2015-01-31 18:05:50 +11:00
Neil Lalonde 750b27f973 FEATURE: show number of active users in the last 7 days on about page 2015-01-30 17:23:52 -05:00
Dan Singerman 64c4bd5dbf Fix force_avatar_update.to_i error as force_avatar_update is a boolean
If force_avatar_update is passed in sso attributes it errors on
force_avatar_update.to_i. The SingleSignOn class forces avatar_force_update
to a boolean, so it should be treated as such.
2015-01-30 09:51:38 +00:00
Sam 52bc03b5e6 FIX: summary mode was broken and missing a bunch of posts 2015-01-30 17:19:42 +11:00
Sam 8264dbd971 Merge pull request #3140 from fullfatthings/fix_missing_sso_avatar_bug
Fix bug when sso_overrides_avatar is true but no avatar_url is passed
2015-01-30 10:45:25 +11:00
Robin Ward d1ec1e2681 Allow code to save custom fields without saving the attached object 2015-01-29 17:17:52 -05:00
Arpit Jalan 6c410ed093 FIX: strip whitespaces from user email 2015-01-30 01:44:24 +05:30
Régis Hanol 2507f99135 FEATURE: background job to make sure emoticons aren't too big 2015-01-29 18:36:35 +01:00
Arpit Jalan 21e94859a9 Do not allow TL0 users topics in email digest 2015-01-29 21:10:26 +05:30
Sam 844467015d FEATURE: allow simple selection for category badge styles
clean up category badge styling
2015-01-29 17:49:14 +11:00
Régis Hanol cd2c9edb46 FIX: 🐛 upload on IE9 wasn't working :'(
- FIX: make sure we set a default name to a pasted image only on Chrome (the only browser that supports it)
- FIX: use ".json" extension to uploads endpoints since IE9 doesn't pass the correct header
- FIX: pass the CSRF token in a query parameter since IE9 doesn't pass it in the headers
- FIX: display error messages comming from the server when there is one over the default error message
- FIX: HACK around IE9 security issue when clicking a file input via JavaScript (use a label and set `visibility:hidden` on the input)
- FIX: hide the "cancel" upload on IE9 since it's not supported
- FIX: return "text/plain" content-type when uploading a file for IE9 in order to prevent it from displaying the save dialog
- FIX: check the maximum file size on the server 💥
- update jQuery File Upload Plugin to v. 5.42.2
- update JQuery IFram Transport Plugin to v. 1.8.5
- update jQuery UI Widget to v. 1.11.1
2015-01-28 19:43:20 +01:00
Robin Ward d43944b3ed Extensibility for tracking changes to a topic 2015-01-28 13:37:06 -05:00
Dan Singerman dbf2f4efec Fix bug when sso_overrides_avatar is true but no avatar_url is passed
If a user has a current avatar, and sso_overrides_avatar is true, but no avatar_url is
passed in the sso attributes, the current code errors, as it tries to parse a nil
as a URL. It seems to me valid that a third party system may not pass an avatar_url in
some cases (e.g. avatars may not be mandatory, so not all users may have them)

This might warrant a discussion about what should happen in this case; maybe the current
avatar in discourse should be removed? This branch merely stops the login process erroring.
2015-01-28 16:01:39 +00:00
Régis Hanol efd65dcc8c hard match domains for automatic group membership 2015-01-26 23:17:29 +01:00
Gerhard Schlager 361b3fb07a FIX: Loading of Emoji files depended on working directory
The importer scripts could not be used unless the working directory was
the Discourse root directory.
2015-01-24 00:07:39 +01:00
Régis Hanol 256519dddf FEATURE: automatic group membership based on email address 2015-01-23 18:25:43 +01:00
Robin Ward f3c9310e12 Merge pull request #3117 from techAPJ/patch-1
FEATURE: rate limit invites for non-staff users
2015-01-20 10:45:00 -05:00
Neil Lalonde 4c0129ccdd PERF: slow user pages in admin. add an index for trust level 3 calculations, and memoize query results 2015-01-19 15:30:16 -05:00
Arpit Jalan 5e751ce90a FEATURE: 🎁 rate limit invites for non-staff users 2015-01-20 01:12:24 +05:30
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 7a86abd105 Merge pull request #3084 from jmay/group-managers
table & model changes for group managers with permission to edit members
2015-01-16 12:02:38 +01:00
Robin Ward dc801bb442 Merge pull request #3102 from techAPJ/patch-2
Add username and date-time in exported file name
2015-01-15 15:35:06 -05:00
Robin Ward 505fa9f1cf FIX: 🐛 Saving the same custom field array twice would raise an error 2015-01-15 15:31:50 -05:00
Arpit Jalan c619aed8f9 💄 add username and date-time in exported file name 2015-01-16 01:39:46 +05:30
Jason W. May a2b284a0a4 table & model changes for group managers with permission to edit membership 2015-01-15 11:44:42 -08:00
Arpit Jalan c4da9ce62f FIX: old csv's were not getting deleted 2015-01-15 00:00:39 +05:30
Régis Hanol 6734a51b6a move SiteText.{head,top,bottom} to SiteCustomization 2015-01-14 12:15:53 +01:00
Robin Ward f3b72f5d96 Revert "move SiteText.{head,bottom} to SiteCustomization and remove redundant SiteText.top"
This reverts commit 6ee2849df6.
2015-01-12 20:21:22 -05:00
Régis Hanol 6ee2849df6 move SiteText.{head,bottom} to SiteCustomization and remove redundant SiteText.top 2015-01-12 19:59:43 +01:00
Régis Hanol c681b353f2 FEATURE: bookmark topic button 2015-01-12 12:10:15 +01:00
Sam 1358ed2aad FEATURE: show bookmarked topics in topic list 2015-01-09 11:41:10 +11:00
Sam 3347a48275 FEATURE: add liked and bookmarked classes to topic list item rows 2015-01-08 14:35:56 +11:00
Sam df7def6628 annotate 2015-01-08 11:18:43 +11:00
Régis Hanol 2b3e311e8e FIX: emoji rebuild when changing emoji set for the 1st time 2015-01-07 17:54:09 +01:00
Robin Ward 114cc1c851 FIX: We missed some references to `/category/xyz` in the ruby code base. 2015-01-07 11:47:01 -05:00
Sam ea87f5fd8a FEATURE: support for filter=bookmarked and filter=liked in topic list 2015-01-07 18:20:10 +11:00
Sam efc717c14a FEATURE: remove star concept from Discourse 2015-01-07 13:43:27 +11:00
Régis Hanol e20078a9dc PERF: fix performance issue when displaying the user card for admins 2015-01-05 19:49:32 +01:00
Neil Lalonde 4975fc2890 Remove old access_password_removal cruft from 1.5 years ago 2015-01-05 12:04:27 -05:00
Neil Lalonde 024b88e9c2 FIX: dashboard should be warning about invalid notification_email site setting 2015-01-05 12:04:27 -05:00
Sam 0396fd66f6 FEATURE: sorting by op likes shows the op likes count 2015-01-05 17:39:49 +11:00
Régis Hanol c57a1b393f clean up 'checked_for_custom_avatars' user history entries 2015-01-02 12:37:17 +01:00
Régis Hanol 9fcaf090ec Merge pull request #3068 from fantasticfears/category_slug
support setting category slug
2015-01-02 11:55:27 +01:00
Sam 43c3e6b47f FIX: multisite CDN support for site customizations 2014-12-31 09:12:35 +11:00
Robin Ward a33461d1c7 Temp fix: Don't use CDN for customizations 2014-12-30 14:54:50 -05:00
Erick Guan 97b3914b70 FIX: use utc time when generate reports; set boundary 2014-12-30 22:43:03 +08:00
Régis Hanol a04f44d65a Merge pull request #3065 from fantasticfears/fix-visits-report
FIX: today visits not shown
2014-12-29 21:23:47 +01:00
Erick Guan 1e166d89ff support setting category slug 2014-12-30 03:14:54 +08:00
Erick Guan fe7f2c6979 FIX: today visits not shown 2014-12-30 03:09:22 +08:00
Régis Hanol 7ca092da17 Merge pull request #3057 from jaanus/s3-frankfurt-bucket
Add eu-central-1 to list of S3 buckets.
2014-12-29 18:02:14 +01:00
jaanus f6026ad1d0 Added eu-central-1 S3 bucket. 2014-12-29 18:31:21 +02:00
Robin Ward 1055fc0919 Merge pull request #3021 from jmay/custom-category-slug
optional custom value for category slug (create and update)
2014-12-29 10:34:23 -05:00
Arpit Jalan 68e66f3a25 Rename CsvExportLog to UserExport 2014-12-28 22:31:12 +05:30
Arpit Jalan 7c7474aa10 create a new table to maintain csv export log 2014-12-24 16:25:36 +05:30
Sam e959e7c9df FIX: no way to remove site text 2014-12-23 13:15:54 +11:00
Sam f6f50ffc72 correct live reload code 2014-12-23 13:03:48 +11:00
Sam 5b844f5320 FEATURE: more than 1 site customization can be enabled at once
FIX: more robust site customizations

Rewrote site customization to use distributed cache and a much cleaner
css delivery mechanism
2014-12-23 13:03:48 +11:00
Sam f23eb475a4 FEATURE: remove override stylesheet option, too confusing 2014-12-23 13:03:48 +11:00
Régis Hanol 23aede6eb5 FIX: use cache to store custom emoji 2014-12-23 01:55:13 +01:00
Régis Hanol 45dbdb6896 FEATURE: custom emojis 2014-12-23 01:12:26 +01:00
Régis Hanol c5a7bce557 FIX: only create animated thumbnails for GIFs 2014-12-22 12:56:19 +01:00
Jason W. May 18a00d2dd7 remove commented-out code 2014-12-17 08:59:05 -08:00
Robin Ward 768027f0e3 Merge pull request #3046 from gdpelican/feature/insensitive-group-names
Remove group name validation case sensitivity
2014-12-17 10:52:45 -05:00
James Kiesel 84bed4f9ce Remove group name validation case sensitivity 2014-12-17 18:44:30 +13:00
Régis Hanol 521226f4c9 FIX: registration fails with timeout on gravatar 2014-12-15 22:10:27 +01:00
Robin Ward b1bc4741b1 FEATURE: Load fewer topics in the topic list on slow platforms (Android) 2014-12-15 11:54:26 -05:00
Régis Hanol 1353557575 FIX: custom flags not possible on very long topic titles 2014-12-11 19:34:52 +01:00
Régis Hanol e6e7948617 FEATURE: support for emoji sets
Added following emoji sets
  - Apple/International
  - Emoji One (default)
  - Android/Google
  - Twitter

FIX: translations from plugins weren't properly merged with default translations
FEATURE: new 'site_setting_changed' event
2014-12-11 17:08:47 +01:00
Régis Hanol fe007d08b3 FIX: remove links and html 'hellips' from topic/post summaries 2014-12-08 00:23:53 +01:00
Régis Hanol 929ff00741 FIX: use excerpt instead of the summary 2014-12-06 18:48:39 +01:00
Régis Hanol 86c4c947a3 FIX: drastically simplify auto-close topic logic
Get rid of this nonsensical maximum-flow algorithm :fired:
2014-12-06 16:29:54 +01:00
Régis Hanol cd170ca548 FEATURE: auto-close topics based on community flags 2014-12-05 19:37:43 +01:00
Jason W. May efa872e426 optional custom value for category slug (create and update) 2014-12-03 16:23:59 -08:00
Régis Hanol 7edb88a5a8 FIX: change top score formula
Adds more weight to `likes` (it's now the same weight as `post_count`)
2014-12-03 11:51:49 +01:00
Jeff Atwood ea269ccfb2 rename purge_inactive to purge_unactivated 2014-12-02 21:36:25 -08:00
Robin Ward cb0e7a5724 For performance reasons, use `delete_all` when removing a user's email logs 2014-11-28 14:20:43 -05:00
Sam 013f1a6dd0 FEATURE: allow creating admin and moderator accounts via SSO 2014-11-27 12:39:00 +11:00
Régis Hanol 10b5032188 FIX: auto-closing attribution when a TL4 user auto-closes a topic 2014-11-26 19:51:07 +01:00
Sam c10e3df012 FEATURE: implement SSO provider on Discourse so Auth can be farmed to it
FEATURE: pass return_sso_url to SSO endpoints, for easier return
2014-11-26 17:26:27 +11:00
Robin Ward 4c9f55d1e1 FIX: Suspended users should have links stripped from their profiles. 2014-11-25 16:14:39 -05:00
Régis Hanol 05727e89e0 Merge pull request #3003 from techAPJ/patch-2
upload bulk invite csv file to /public/uploads/csv
2014-11-25 18:10:09 +01:00
Arpit Jalan c5229a0268 upload bulk invite csv file to /public/uploads/csv 2014-11-25 22:25:09 +05:30
Régis Hanol 0588292dcf Merge pull request #2999 from riking/fix_top_referrers_topic_count
FIX: Topic referrals by user were wrong
2014-11-25 17:46:44 +01:00
riking 728e8a262c FIX: Admin panel referral stats not counting topics correctly
Due to what seems to be a bug in ActiveRecord, the distinct: true option
is not recognized on counts with string column names. This commit fixes
that by moving the DISTINCT into the count string.

For robustness, the integration spec for IncomingLinksReport was
rewritten to be an actual integration spec, running the actual interface
on actual fake data.
2014-11-24 12:16:52 -08: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
Sam 0111cb4cc2 FEATURE: serialize the fact we are https in about 2014-11-24 17:54:17 +11:00
Sam 490cd6f539 Merge pull request #2989 from jmay/group-admin-incremental
API addition: HTTP PATCH support for /groups/xxx: incremental membership changes
2014-11-24 11:50:51 +11:00
Sam 7e3df4287f Add more logging for blank posts to detect culprit 2014-11-24 10:34:29 +11:00
Jason W. May 6f8119ebb8 Merge branch 'master' into group-admin-incremental 2014-11-21 10:04:05 -08: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
Sam 034967328c FIX: sso with avatar override may fail on first account creation 2014-11-21 11:36:14 +11:00
Sam 4a7e0416d1 FIX: expire stylesheet cache on save 2014-11-21 08:32:32 +11:00
Robin Ward dd1ebb535b FIX: Could not download exported data on some sites 2014-11-20 14:02:10 -05:00
Jason W. May 50de22801f API addition: HTTP PATCH support for /groups/xxx: incremental membership changes 2014-11-20 09:29:56 -08:00
Sam 73041c0e14 uniqueness constraint is not correct scoping on hidden is not fully correct
simpler just to handle it in the DB
2014-11-20 16:48:45 +11:00
Sam e1be1e5fd9 FIX: don't crash from observer if user record is bad 2014-11-20 16:08:06 +11:00
Sam 6b10c4dc54 add support for hidden api keys, used in hosting scenarios 2014-11-20 15:38:20 +11:00
Sam 6bed4e1bf0 add allowed_ips to api_keys
update annotations
2014-11-20 14:53:15 +11:00
Régis Hanol ada8e6eb23 Merge pull request #2984 from cpradio/pr-tl4-flag-spam-post-hidden
FIX: TL4 flag on TL0 post as spam, hides the post
2014-11-19 17:41:02 +01:00
cpradio 626da65339 FIX: TL4 flag on TL0 post as spam, hides the post 2014-11-19 11:26:57 -05:00
Sam b4844d4477 FIX: correct old username index
(in some cases search was not finding accounts)
2014-11-18 14:32:23 +11:00
Robin Ward 0b0cee4e07 Merge pull request #2969 from cpradio/pr-add-category-to-group-posts
FEATURE: Add category to Group Post Listing
2014-11-17 16:02:15 -05:00
cpradio cca78f1031 Remove n+1 query on Categories 2014-11-17 15:43:22 -05:00
Sam 6f7a89dcaa PERF: use preloader trick to load topic categories 2014-11-17 18:03:11 +11:00
cpradio bf7be0c130 FIX: Change is_staff to is_admin to match other places where guardian.allowed_category_ids is used
https://meta.discourse.org/t/security-permissions-and-messages-displayed-on-group-url/22169/17
2014-11-16 20:31:16 -05:00
Sam c7bc692f40 PERF: stop querying banner topic on every page hit 2014-11-14 15:39:17 +11:00
Régis Hanol bf666f8553 FEATURE: allow animated thumbnails 2014-11-13 23:30:34 +01:00
Régis Hanol a8a0be0b34 FIX: change the unlisted/invisible topic state only when unhiding the first post 2014-11-12 16:34:30 +01:00
Sam c98d0a8eb6 Revert "Revert "PERF: use distributed cache for site text and category slugs""
This reverts commit 65e7cd1d1d.
2014-11-12 10:01:41 +11:00
Sam 65e7cd1d1d Revert "PERF: use distributed cache for site text and category slugs"
This reverts commit a97f2eee05.
2014-11-12 10:01:07 +11:00
Sam a97f2eee05 PERF: use distributed cache for site text and category slugs 2014-11-12 09:44:44 +11:00
Sam 4e85fc9dae PERF: cache all site_text in memory 2014-11-11 16:28:59 +11:00
Sam b2af49251d PERF: remove superflous queries from initial page loads
stop doing expensive work to figure out discourse style sheet
2014-11-11 15:32:44 +11:00
Sam 1a775aa784 Merge pull request #2784 from chancancode/upgrade-to-rails-master-4-2
[WIP] Upgrade to rails master/4.2
2014-11-11 09:46:02 +11:00
Régis Hanol ec76be964e UX: better footer handling 2014-11-10 21:51:55 +01:00
Sam d77f218122 Don't try to publish messages on broken posts 2014-11-10 21:24:54 +11:00
Godfrey Chan 7351917ee4 Boolean -> String quoting has changed on Rails master
CustomField.create(name: 'zomg', value: true).reload.value # => 't' on Rails 4.1, '1' on 4.2

rails/rails@42be84ba
2014-11-10 01:05:46 -08:00
Régis Hanol bb2d538194 FEATURE: log impersonations 2014-11-06 10:58:47 +01:00
Robin Ward 068d22e9b3 Add API support for querying admin reports by date range 2014-11-05 13:11:37 -05:00
Robin Ward fde5e739c9 Work in progress (up till about?) 2014-11-05 12:39:25 -05:00
Régis Hanol 862c8a19a3 FEATURE: use img's title attribute in overlay information when provided 2014-11-03 22:03:06 +01:00
Régis Hanol 2c7b47fc40 fix the build 2014-11-03 20:42:13 +01:00
Régis Hanol bdb78ce76a FEATURE: consider SVG as an image when authorized 2014-11-03 19:54:10 +01:00
Régis Hanol fd5677808c SPEC: make sure digest doesn't pick any topics in categories that are muted 2014-11-03 16:57:50 +01: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 7e94f9d6f9 FIX: insert different message when auto-closing a topic based on the last post 2014-10-29 21:26:32 +01:00
Robin Ward f47ab30b04 Use a site setting for maximum summary results 2014-10-28 16:03:43 -04:00
Robin Ward 3eb020c466 Max out summary filter at 100 posts. 2014-10-28 15:58:04 -04: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
Sam 1cc37e32b9 FEATURE: add max_reply_history to limit number of replies
that can be expanded, when clicking "in-reply-to"
2014-10-27 09:44:42 +11:00
Sam e20e6b4524 PERF: stop using jQuery to sanitize strings 2014-10-22 15:48:18 +11:00
Robin Ward 71f211f0b3 FEATURE: Allow users to select a badge with an image to appear on their
user card
2014-10-20 16:35:38 -04:00
Robin Ward 1cf4a0d604 Rename "User Expansion" to the much clearer "User Card" 2014-10-20 12:11:59 -04:00
Arpit Jalan 2131a37811 FEATURE: show raw email for replies/topics created via email 2014-10-17 22:22:19 +05:30
Sam cb044bb219 Merge pull request #2851 from VickMellon/title_encoding_cast
FIX: force encoding for title field
2014-10-17 15:01:40 +11:00
Robin Ward f3a67a48a3 Merge pull request #2874 from cpradio/clear-notifications
FEATURE: Mark All as Read button for Notifications page
2014-10-16 15:57:19 -04:00
Michael Verdi 1f95cfedc3 [patch] When a post is split out to be a new topic
the topic's last_post_user_id is set to the user who split out
the post.  But, this should really be the user_id of the last post
of the split out posts.
2014-10-16 12:38:26 -07:00
Robin Ward 4d465362b5 FEATURE: Allow a user to upload an image for their expansion background. 2014-10-16 15:05:36 -04:00
Robin Ward 2c989f3eb3 FIX: ActiveRecord error when calling `find` for the topic list key. 2014-10-15 15:29:45 -04:00
Régis Hanol bb59798066 FEATURE: ensure consistency of post revisions 2014-10-15 21:09:08 +02:00
cpradio 8f390c979b FEATURE: Mark All as Read button for Notifications page
Added a Mark All as Read button to the top/bottom of the notifications user page
https://meta.discourse.org/t/possibility-to-selectively-or-completely-mark-notifications-as-read/20227

Remove notifications property (no longer used)
2014-10-13 06:31:27 -04:00
Robin Ward 366d7e892c Merge pull request #2867 from techAPJ/patch-1
FEATURE: send `set password` instructions after invite redemption
2014-10-14 11:01:07 -04:00
Régis Hanol 1f42e85e0d Merge pull request #2873 from mcwumbly/hide-post-revisions
FEATURE: ability to hide/show specific post revisions
2014-10-14 16:45:17 +02:00
David McClure 19d5362c6b FEATURE: ability to hide or show specific post revisions 2014-10-14 07:19:45 -07:00
Godfrey Chan 7ddf1df3e0 FIX: honor `email_token_grace_period_hours` setting correctly
The documentation said that the unit for this setting is in *hours*, but the
code is treating it as *seconds*. Also, `Numeric#ago` has been deprecated since
Rails 4.1 (precisely to help prevent these kind of bugs) and will go away in
Rails 4.2.
2014-10-11 15:02:15 -07:00
Arpit Jalan 861f321263 FEATURE: send set password instructions after invite redemption 2014-10-11 14:13:05 +05:30
Régis Hanol 5754e8dd0f FEATURE: auto-close topics based on last post 2014-10-10 18:21:44 +02:00
Arpit Jalan 430967c354 FIX: invite email should be verified against email_domains_blacklist 2014-10-09 20:21:01 +05:30
Robin Ward f9a8f6d6ce FEATURE: Support for a `required` setting on user fields. 2014-10-08 15:10:19 -04:00
Régis Hanol 9f2be41710 this method isn't private
cc @akshaymohite
2014-10-08 20:11:28 +02:00
Robin Ward 1f26a79899 FIX: Category latest pages were not preloading properly, causing weird
refreshes when clicking the home logo.
2014-10-08 12:45:18 -04:00
Neil Lalonde 8a88e71b3c FEATURE: permalinks lookup table can redirect to any arbitrary url 2014-10-08 11:51:24 -04:00
Sam 0e7be81e60 FIX: badge granted titles were not being revoked when badge was revoked 2014-10-08 10:26:18 +11:00