Merge pull request #1673 from aperrault/patch-04

Fixing neglect to determine whether a user has the permission to create ...
This commit is contained in:
Robin Ward 2013-11-19 10:50:38 -08:00
commit c9ea89bdd3
4 changed files with 17 additions and 3 deletions

View File

@ -11,6 +11,9 @@ class ListController < ApplicationController
user = list_target_user user = list_target_user
list = TopicQuery.new(user, list_opts).public_send("list_#{filter}") list = TopicQuery.new(user, list_opts).public_send("list_#{filter}")
list.more_topics_url = construct_url_with(filter, list_opts) list.more_topics_url = construct_url_with(filter, list_opts)
if list_opts.include?(:category)
list.category = Category.where(name: list_opts[:category]).first
end
if [:latest, :hot].include?(filter) if [:latest, :hot].include?(filter)
@description = SiteSetting.site_description @description = SiteSetting.site_description
@rss = filter @rss = filter
@ -51,6 +54,7 @@ class ListController < ApplicationController
query = TopicQuery.new(current_user, list_opts) query = TopicQuery.new(current_user, list_opts)
list = query.list_latest list = query.list_latest
list.more_topics_url = construct_url_with(:latest, list_opts) list.more_topics_url = construct_url_with(:latest, list_opts)
list.category = @category if @category
respond(list) respond(list)
end end

View File

@ -47,7 +47,11 @@ class TopicList
end end
def attributes def attributes
{'more_topics_url' => page} hash = {'more_topics_url' => page}
if @category.present?
hash['category'] = @category
end
hash
end end
def has_rank_details? def has_rank_details?

View File

@ -18,8 +18,12 @@ class TopicListSerializer < ApplicationSerializer
end end
def can_create_topic def can_create_topic
if object.category.present?
scope.can_create?(Topic, object.category)
else
scope.can_create?(Topic) scope.can_create?(Topic)
end end
end
def include_more_topics_url? def include_more_topics_url?
object.more_topics_url.present? && (object.topics.size == SiteSetting.topics_per_page) object.more_topics_url.present? && (object.topics.size == SiteSetting.topics_per_page)

View File

@ -244,7 +244,9 @@ class Guardian
end end
def can_create_topic?(parent) def can_create_topic?(parent)
user && user.trust_level >= SiteSetting.min_trust_to_create_topic.to_i && can_create_post?(parent) user &&
user.trust_level >= SiteSetting.min_trust_to_create_topic.to_i &&
can_create_post?(parent)
end end
def can_create_topic_on_category?(category) def can_create_topic_on_category?(category)