Commit Graph

1759 Commits

Author SHA1 Message Date
Chris Hunt e94e9b7621 Set UTF-8 charset for plain text email part 2013-05-29 09:54:36 -07:00
Robin Ward e1781240a6 Merge branch 'refactoring' of git://github.com/mattvanhorn/discourse
Conflicts:
	lib/text_sentinel.rb
2013-05-27 10:42:20 -04:00
Chris Hunt 13c4266c74 Allow Chinese characters in Topic titles 2013-05-26 13:56:42 -07:00
Matt Van Horn d5958f8779 Sliding window rate limiting
Switched the algorithm to use a circular buffer
based on a redis list
2013-05-25 12:37:28 -07:00
Robin Ward 1313c0f094 FIX: When using a search context, *prefer* the context's results, don't restrict to only them. 2013-05-24 16:17:09 -04:00
Robin Ward bd779834e5 Use search context for filtering search results by current category or user 2013-05-24 14:04:26 -04:00
Konrad Borowski 8bc4264c98 Thread title fixer should ignore special cases like iLetter 2013-05-23 21:31:08 +02:00
Robin Ward 8e8d9af2bf Use classes instead of a complicated nested hash for search results 2013-05-23 12:44:47 -04:00
Robin Ward 0bd61df34c Merge pull request #884 from mattvanhorn/refactor_topic
Refactor topic
2013-05-23 07:26:22 -07:00
Matt Van Horn 806255b3c4 refactor Topic validation
introduce a couple of custom validators
fix minor discrepancies in tests
copy I18n error message keys to default location
clean up validation invocation
move some responsibilities out of validator into class
2013-05-22 22:31:52 -07:00
Sam fcc7192fd2 User tracking state implementation progress for live unread / new counts 2013-05-23 15:22:06 +10:00
Robin Ward 7a31630837 Search Refactor: Remove some manual SQL, make search data tables more idomatic Rails/AR 2013-05-22 16:31:13 -04:00
Robin Ward b9a310f4b1 Search Refactor: Let's use a class to keep track of our state rather
than passing params everywhere. Also make the private API private.
2013-05-22 15:22:06 -04:00
Matt Van Horn 872995db57 refactor guardian class for clarity & correctness
introduce NullUser to avoid type-checking
DRY up code
reduce number of multiple returns
remove some redundant/impossible logic branches
add pending test for possible bug
add test & fix for ability to flag archived posts
add #secure_category? method to topic class
Fix bug that prevented flagging of archived topics
Rename NullUser to AnonymousUser
DRY up can_<action>? methods
Fix some ownership logic, and a test, for Guardian
2013-05-22 01:09:34 -07:00
Sam da6a88634b improve best filter so it properly excludes all admin messages from count as well 2013-05-22 15:14:47 +10:00
Sam c4d8085fc5 remove moderator status posts from best feed 2013-05-22 15:04:53 +10:00
Jason Kriss c22435562d fix small typo in search_spec 2013-05-21 05:56:04 -03:00
Sam b5eff93a9d update message bus to support per client filtering
start work on user_tracking_state
fix can_ban? in guardian
expose protected scopes on topic_query we need
move guardian spec to use build as opposed to creating topics / posts / users
start work on user tracking spec
2013-05-21 16:39:51 +10:00
Sam 80fb20816c get rid of nonsense 404.html
correct 404 handling for invalid pages
2013-05-20 10:29:49 +10:00
Sam 24c997966e Merge pull request #861 from sanderdatema/post_creator
Set created_at manually through PostCreator
2013-05-19 16:34:45 -07:00
Chris Hunt fb4e5973db Fix spelling mistake in spec doc 2013-05-18 13:11:34 -07:00
Chris Hunt c2a4f16f24 Show posts for last page when page out of range 2013-05-18 13:11:01 -07:00
Sander Datema 286a06bd4e Set created_at manually through PostCreator 2013-05-18 21:24:29 +02:00
Neil Lalonde f3282e33a3 Add tabs to category create/edit modal. Categories can have a default auto-close setting that applies to all new topics created in the category. Add rspec-given and write some integration tests. Tests for topic auto-close with category default 2013-05-17 11:05:35 -04:00
Robin Ward d554a59102 Support for a new site setting: `newuser_spam_host_threshold`. If a new user posts a link
to the same host enough tiles, they will not be able to post the same link again.

Additionally, the site will flag all their previous posts with links as spam and they will
be instantly hidden via the auto hide workflow.
2013-05-16 12:19:50 -04:00
Sam e9ebadb414 Nuke message_bus_observer move to service class and classes
Secure all messages triggered by post creation and all user actions so they don't leak
(meaning, if you have a browser open and secure topics are created you will only get them if you are allowed to see them)
2013-05-16 15:03:16 +10:00
Sam ef98b60184 disable observers in tests, enable as needed, tests are 20% faster 2013-05-14 11:59:55 +10:00
Robin Ward fff46cf5aa Can search by URL or ID 2013-05-13 17:07:58 -04:00
Neil Lalonde 9828c87525 Topic Auto-Close: admins and mods can set a topic to automatically close after a number of days 2013-05-13 12:53:52 -04:00
Sam b6bf95e741 speed up startup (avoid loading some gems on startup)
correct group permission leaks
add Discourse.cache for richer caching support
2013-05-13 18:04:03 +10:00
Sam 30501e943c fix search 2013-05-13 11:07:21 +10:00
Régis Hanol 297680c28d FIX: pinned topic excerpt is not properly truncated 2013-05-10 12:28:17 +02:00
Sam 942f168ab6 UI still a tad rough, but we have a first pass of secure categories 2013-05-10 16:47:47 +10:00
Sam 4f328e3e45 +x on files makes no sense unless they really are executable
rails in the script dir makes no sense, use binstubs or bundler instead
2013-05-09 17:35:15 +10:00
Neil Lalonde f9a82f3aa0 Add a spec for category list with empty category 2013-05-07 15:52:45 -04:00
Neil Lalonde 8e24a608b0 Show empty categories on categories page to people people who can edit and delete categories 2013-05-07 15:31:56 -04:00
Sam e9fc272db7 remove acts_as_paranoid, use .trash! , .recover! and .with_deleted as needed
makes upgrading to rails 4 possible
2013-05-07 14:39:01 +10:00
Sam 3eab0be4a8 deleting posts as an admin was bust 2013-05-03 17:56:23 +10:00
Sam 65cd00cf25 moderators now have teeth, more at http://meta.discourse.org/t/moderator-permission-set/6307/5
allow pms to be targetted at groups
2013-05-02 15:15:53 +10:00
David Celis 6be26f5316 Update to Imgur API v3
Version 2 of Imgur's API is deprecated. Their documentation for v2 is no
longer online, and applications can only be registered under version 3.
Version 3 of their API has a slightly different endpoint but, more
importantly, uses a Client ID/Secret pair instead of an API Key.

This PR updates Discourse to use the new version of Imgur's API.

Signed-off-by: David Celis <me@davidcel.is>
2013-05-01 21:39:10 -07:00
Sam e4a76812a6 this is a slightly round about way of making our self oneboxes sane
shrunk avatar to 60px, added global whitelisting
2013-05-01 16:38:13 +10:00
Sam b25a5a20bb option to strip links from excerpts 2013-04-30 13:25:55 +10:00
Neil Lalonde eb151d440b Don't call discourse hub during user destroy if hub integration is disabled 2013-04-29 11:39:05 -04:00
Sam 5cfcdc7ef0 backend for secure categories mostly done (todo pm groups) 2013-04-29 16:33:43 +10:00
Ryan Boland 9bc8faeaf2 added rottentomatoes.com onebox 2013-04-28 16:24:03 -04:00
Sam eb085beea8 attempt to fix the UTF-8 warn in the log, turns out this runs really deep, when you hit deliver in test it clones the mail not setting charset properly, leaving as is for today but fixing prod at least 2013-04-26 16:18:54 +10:00
Jeff Atwood b64a4100fa change "visitor" trust level to "new user"
I blame me for this mistake.. visitor means other stuff in practice. New
User is correct meaning.
2013-04-17 16:11:24 -07:00
Régis Hanol e76f629df8 Text Cleaner now removes all periods from the end of the title 2013-04-18 00:19:42 +02:00
Sam 437142424c speed up tests, fix notification of mentioned users in pms 2013-04-17 17:39:18 +10:00
Neil Lalonde 3b6aeb14c7 Add subtype to topics to classify private messages 2013-04-16 16:56:18 -04:00
Régis Hanol c2e58b61c9 automatically resizes images 2013-04-15 23:32:26 +02:00
Régis Hanol b24c1a1ad9 better consistency around email case sensitivity 2013-04-15 02:20:33 +02:00
Neil Lalonde c6ab9fec9d Unregister forum membership at Discourse Hub when deleting a user 2013-04-15 14:52:07 -04:00
Neil Lalonde 651cfba93f Add ability to destroy a user with 0 posts 2013-04-12 16:53:00 -04:00
Régis Hanol c5cf8be864 auto replace rules in titles 2013-04-10 11:00:50 +02:00
Sam 33e3ad1603 clean up onebox application so it uses a single code path
use fragments for oneboxes
strip parent <p> if <div> is in it
clean some tests
2013-04-10 17:52:38 +10:00
Michael Scott Shappe 2fb673dd72 Create and use new rspec matcher 'match_html'
This introduces match_html, which converts actual and expected HTML strings into "canonical" HTML using Nokogiri with NOBLANKS and COMPACT, and then does a simple equality comparison.

This eliminates whitespace differences introduced by library changes (e.g. the libxml2 2.9.0 change).

pretty_text_spec.rb has been changed to use match_html where appropriate. and all tests pass under libxml2 2.7.6, 2.8.0 or 2.9.0
2013-04-09 22:30:10 -05:00
Robin Ward 00f9e628e0 Don't apply markdown to content of [quote] -- it messes up spacing. 2013-04-09 17:32:50 -04:00
Régis Hanol d080ae4d2d don't track links in oneboxes 2013-04-08 02:24:12 +02:00
Robin Ward a14f62766e Replace MultisiteI18n hack with SiteContent and admin editing. 2013-04-05 16:48:15 -04:00
Robin Ward cecdafd4e8 Fixes broken spec 2013-04-05 16:27:25 -04:00
Robin Ward af9b27358c If an admin or moderator edits a visitor's post, the restrictions should be based
on the *editors* access rights, not the original poster.
2013-04-05 13:59:00 -04:00
Sam 4fbf017272 get regular trust level going, self heal inconsistent topic timings 2013-04-05 15:30:28 +11:00
Robin Ward 738789f336 Admins can't lock themselves out of a site by setting approval. 2013-04-03 12:23:28 -04:00
Régis Hanol cf3eb98321 add GitHub commit onebox 2013-04-03 03:36:38 +02:00
Robin Ward 473a64d39d Add score, percent_rank to topics. Adds `HotTopic` model and consolidated job to calculate
hotness. Note: People on Heroku will have to update their jobs to the new structure
in Heroku.md
2013-03-28 15:39:54 -04:00
Sam 2295290383 added best=N option to get N best comment on a post 2013-03-27 22:53:11 -07:00
Robin Ward 36269cfbaa Rename 'popular' to 'latest'. First stab at 'Hot' tab. 2013-03-27 16:21:23 -04:00
Robin Ward f1e2923a91 Display correct post counts, even with a filter active 2013-03-26 15:06:23 -04:00
Robin Ward 5dc47c2d82 Rename `posts_count` in topic view to `post_counts_by_user` which makes much more sense 2013-03-26 14:06:24 -04:00
Robin Ward 2efd3e61c7 TopicView respects `sort_order` and better specs 2013-03-26 13:27:11 -04:00
Robin Ward 90443dac30 Don't email about posts if the user deleted it. 2013-03-25 13:40:48 -04:00
Karan Misra 5dfb04e4b3 Convert a lot of :a => b to a: b and bring peace to the world 2013-03-25 05:07:36 +05:30
Robin Ward 9c38c13ac5 The "Best Of" mode uses a percentage ranking of posts. 2013-03-22 15:44:39 -04:00
Neil Lalonde 6f8d13d47e Dashboard warning when sidekiq is not running 2013-03-22 11:35:51 -04:00
Régis Hanol 2ab08ef21d FIX: OpenGraph tags not fully sanitized 2013-03-22 12:32:56 +01:00
Neil Lalonde 8cc7f3c20b Dashboard warning when clockwork doesn't seem to be running 2013-03-21 16:51:50 -04:00
Robin Ward babcfe6234 Cache oneboxes in Redis now instead of postgres. 2013-03-21 13:11:54 -04:00
Sam 62c60540be pull moderator into own column, rename trust levels 2013-03-19 21:06:11 -07:00
Robin Ward 49c66037b1 Moved deleting tests to post_destroyer_spec 2013-03-19 14:15:08 -04:00
Robin Ward 59fc3bfac4 PostDestroyer to replace callbacks for destroying 2013-03-18 17:55:11 -04:00
Robin Ward 897d48b145 Moved more `Post` callbacks into service classes 2013-03-18 17:54:55 -04:00
Robin Ward aea848f164 Move MessageBus observer into PostCreator 2013-03-18 17:54:39 -04:00
Robin Ward b6224b014c Move a bunch of callbacks into PostCreator 2013-03-18 13:56:26 -04:00
Sandy Vanderbleek 204dcc43a4 Use Diffy as DiffEngine implementation 2013-03-15 17:31:51 -07:00
Regis Hanol 2039c0f704 fix the specs errors due to a change to the min topic title's length 2013-03-11 14:51:24 +01:00
Robin Ward d1d4530efd User Profile enhancements:
- Added PreloadStore support to avoid duplicate requests
- preliminary SEO
- Support for opengraph/twitter cards
2013-03-08 15:04:37 -05:00
Robin Ward fb573b917f Merge pull request #390 from ZogStriP/min-search-term-length-site-setting
added the min-search-term-length site setting
2013-03-08 06:58:45 -08:00
Robin Ward d848a9fedc Add opengraph and twitter card support to topics 2013-03-07 17:46:43 -05:00
Robin Ward 052887c296 Category Topics are no longer invisible, they are pinned. 2013-03-07 12:46:23 -05:00
Robin Ward 5349e1b163 Merge pull request #387 from ZogStriP/g10n-wikipedia-oneboxer
globalized wikipedia onebox
2013-03-07 09:23:19 -08:00
Robin Ward f8d8272406 Cleaned up TopicUserSpec, introduces clearing of pinned topics 2013-03-07 12:19:25 -05:00
Regis Hanol 5703d6c730 added the min-search-term-length site setting 2013-03-07 16:52:01 +01:00
Régis Hanol 621995f35a globalized wikipedia onebox 2013-03-07 03:30:40 +01:00
Sam Saffron 8f56a09e82 PBKDF2 gem is trouble, removing and hand coding for now 2013-03-06 23:12:16 +11:00
Régis Hanol 239cbd2d58 enforce coding convention
replaced every `and` by `&&` and every `or` by `||`
2013-03-05 01:42:44 +01:00
Robin Ward 35d5c899dd Merge pull request #321 from tijmenb/fix-hosts-in-oneboxer
Fix display hosts in oneboxer
2013-03-04 11:04:02 -08:00
Robin Ward 59b0299a27 Merge pull request #331 from goshakkk/enum-spec-valid
Make Enum#valid? specs test the right thing
2013-03-02 08:00:46 -08:00
Michael Berg 50dcaa0205 Removed Strange Test-Output 2013-03-02 12:23:40 +01:00
Gosha Arinich 28bc5a6c89 make Enum#valid? specs test the right thing 2013-03-02 10:40:32 +03:00
Tijmen Brommet ba04e72a99 Fix weirdly indented code 2013-03-02 00:48:49 +01:00
Tijmen Brommet eaef66a423 Fix display host for onebox 2013-03-02 00:46:55 +01:00
Robin Ward 5cf69baf56 Add specs for Enum class 2013-03-01 17:05:39 -05:00
Robin Ward d410f043a9 Merge pull request #290 from alxndr/category-rss
RSS for topics in a category
2013-03-01 12:01:26 -08:00
Gosha Arinich 0c99dea153 introduce Enum 2013-03-01 21:16:36 +03:00
Alexander fd240c1967 RSS for topics in a category
Creates a new route for category RSS
2013-03-01 09:52:59 -08:00
Kirill Pimenov f639397aff Correct stripping of non BasicLatin characters 2013-02-28 23:52:35 +04:00
Alexander 8855a0bfbe RSS of a topic via new route
Adds TopicView#recent_posts; Post#by_newest, #with_user, #author_readable; User#readable_name
Autodiscovery tag in topic show HTML.
2013-02-26 14:54:17 -08:00
Gosha Arinich cafc75b238 remove trailing whitespaces ❤️ 2013-02-26 07:31:35 +03:00
Sam Saffron 430a397cde comment out missing test 2013-02-24 22:59:09 +11:00
Sam Saffron b66db4153d refactor and organise current_user better 2013-02-24 21:42:04 +11:00
Robin Ward 532b1f5450 Can edit category descriptions, they show up in a `title` attribute 2013-02-22 13:43:47 -05:00
Robin Ward 42d996aae1 Show empty categories to those who can create them (admins/mods) 2013-02-21 10:43:10 -05:00
Robin Ward 13b0b874fb Merge branch 'onebox-safety' of git://github.com/tms/discourse 2013-02-19 16:15:35 -05:00
Neil Lalonde c0371ff427 Add version checking that shows on the admin dashboard 2013-02-19 15:20:49 -05:00
tms e951eff5bb Allow oneboxers to specify their simple_onebox text is unsafe 2013-02-19 14:51:44 -05:00
Robin Ward bb1156cee1 filter out closed/archived/invisible topics from suggested 2013-02-19 14:38:59 -05:00
Robin Ward ae9bee2a91 Merge pull request #172 from jeremybanks/master
Do not strip leading and trailing whitespace from raw posts
2013-02-19 08:15:39 -08:00
Sam Saffron d9531d94d5 basic lightbox support 2013-02-19 17:57:14 +11:00
Jeremy Banks eb2a5e4654 Merge branch 'origin/master'
Conflicts:
	lib/text_sentinel.rb
2013-02-18 21:41:20 -05:00
Jeremy Banks 6af69f7e77 Do not strip leading and trailing whitespace from raw posts. 2013-02-15 20:58:33 -05:00
Alexander 6c4ae05454 Removes iconv dependency
Fixes #100
2013-02-15 13:36:19 -08:00
Sam Saffron a8085f15c4 grab highest post number from the raw data, so deletions at the end of a topic work 2013-02-15 13:08:37 +11:00
Dan Neumann 44642d4d0c slug should replace underscores 2013-02-14 17:04:30 -06:00
Robin Ward d740d7b25f Fix for foreign language titles: Only enforce upper case rule on english alphabet. 2013-02-14 16:09:57 -05:00
Neil Lalonde 39eab7c425 Replace mentions of mothership with discourse_hub 2013-02-14 12:57:26 -05:00
Robin Ward cba4c9051a Merge pull request #160 from jaimeiniesta/replace_hpricot_with_nokogiri
Replace hpricot with nokogiri
2013-02-14 07:55:19 -08:00
Robin Ward b94b9d2383 Merge pull request #146 from ismaelga/moderators-buttons
Create moderators
2013-02-14 07:26:50 -08:00
Jaime Iniesta e4c1b9702b Use FakeWeb to fake web requests on specs 2013-02-14 11:35:50 +01:00
Jaime Iniesta 6995e75d41 Replace Hpricot with Nokogiri 2013-02-14 11:35:50 +01:00
Jaime Iniesta 84a167725d Add specs for oneboxer components: amazon, android, apple, flickr and wikipedia 2013-02-14 11:34:33 +01:00
Sam Saffron 87d83802b9 added option that allows users to decide when they consider topics new (default 2 days old or newer)
added site_setting to control the default new_topic_duration_minutes
added 10 minutes option for auto_track_topics_after_msecs, default bumped up to 5 mins
2013-02-14 17:36:14 +11:00
Ismael Abreu 80bec6efc9 Adds grant and revoke moderation buttons so admins can make users moderators 2013-02-14 01:12:23 +00:00
Robin Ward dee9e9a51f Fix bug where links to posts weren't being tracked 2013-02-13 15:23:09 -05:00
Robin Ward a9da9c5fde Merge pull request #148 from danneu/slug-simplify
replace reinvention of #parameterize
2013-02-13 07:23:26 -08:00
Robin Ward 27a07054d7 We never want to filter TopicView to just one post. 2013-02-12 19:02:16 -05:00
Dan Neumann 4a390bc562 remove reinvention of #parameterize 2013-02-12 17:53:06 -06:00
Robin Ward 924ad1dae0 Merge pull request #106 from gammons/master
Refactored TopicsController#show into something that is much more maintainable
2013-02-12 08:36:20 -08:00
Neil Lalonde 4636b354b4 Use the new mothership change_nickname API 2013-02-12 10:19:02 -05:00
Sam 6e74b4fb0c Merge pull request #130 from danneu/slug-refactoring
Lean on Inflector for slug transliteration.
2013-02-11 19:31:16 -08:00
Sam Saffron ad88487a32 Merge branch 'master' of github.com:discourse/discourse 2013-02-12 13:45:24 +11:00
Sam Saffron 2b276bc2c8 gist oneboxer issues 2013-02-12 13:45:08 +11:00
Dan Neumann 50cf8cd4d5 Set up slug.rb for obvious method extractions. 2013-02-11 20:36:54 -06:00
Dan Neumann 9daf53df73 lean on Inflector transliteration 2013-02-11 20:34:38 -06:00
Grant Ammons f3dc93a0db WIP, a very nice refactoring of TopicsController#show 2013-02-11 17:54:56 -05:00
Robin Ward e033213f84 Merge pull request #94 from danneu/plugin-registry-patch
Extracted default value initializers.
2013-02-11 14:50:09 -08:00
Sam Saffron f68f59c24f setting to exclude rel nofollow from particular domains 2013-02-11 18:58:19 +11:00
Sam Saffron 543845c673 rel nofollow, on by default to protect forums from spam etc. we should consider lifting it at high trust by default. 2013-02-11 11:43:07 +11:00
Sam Saffron af810f38dd UserSearch refactor
Added .sql_builder to all AR models
2013-02-10 23:37:24 +11:00
Grant Ammons 701ecddac2 factor out @post.revise into its own class. clean up PostRevisor class to be more readable 2013-02-09 10:33:25 -05:00
Robin Ward 03a798b202 Can clear flags on deleted posts if you're a moderator 2013-02-08 19:07:29 -05:00
Dan Neumann 0cf68e2714 Extracted default value initializers. 2013-02-08 01:56:12 -06:00
Robin Ward 084a873b91 Give regular users a delete button. If they click it, their post will be revised to
say it was deleted.
2013-02-07 15:14:23 -05:00
Robin Ward d49cf88c35 Merge pull request #51 from danneu/slug-patch
Strip leading and trailing slug punctuation.
2013-02-07 07:02:58 -08:00
Robin Ward 40da901e5d Introduction of TextSentinel to enforce title and body quality. 2013-02-06 20:53:34 -05:00
Dan Neumann ee8d68842e Strip leading and trailing slug punctuation. 2013-02-06 19:52:14 -06:00
Robin Ward f1a3e76d2b Support for replacing Site Message content with keys specific to a multisite. 2013-02-06 15:29:03 -05:00
Sam Saffron 0f88947279 fix onebox for your own site 2013-02-06 16:22:11 +11:00
Robin Ward 21b5628528 Initial release of Discourse 2013-02-05 14:16:51 -05:00