backend for secure categories mostly done (todo pm groups)

This commit is contained in:
Sam
2013-04-29 16:33:24 +10:00
parent a99efecb39
commit 5cfcdc7ef0
16 changed files with 353 additions and 238 deletions

View File

@@ -12,7 +12,11 @@ class Guardian
end
def is_admin?
!@user.nil? && @user.admin?
@user && @user.admin?
end
def is_moderator?
@user && @user.moderator?
end
# Can the user see the object?
@@ -329,6 +333,15 @@ class Guardian
end
def can_see_topic?(topic)
return false unless topic
return true if @user && @user.moderator?
return false if topic.deleted_at.present?
if topic.category && topic.category.secure
return false unless @user && can_see_category?(topic.category)
end
if topic.private_message?
return false if @user.blank?
return true if topic.allowed_users.include?(@user)
@@ -337,6 +350,22 @@ class Guardian
true
end
def can_see_post?(post)
return false unless post
return true if @user && @user.moderator?
return false if post.deleted_at.present?
can_see_topic?(post.topic)
end
def can_see_category?(category)
return true unless category.secure
return false unless @user
@user.secure_category_ids.include?(category.id)
end
def can_vote?(post, opts={})
post_can_act?(post,:vote, opts)
end
@@ -371,4 +400,7 @@ class Guardian
return true
end
def secure_category_ids
@user ? @user.secure_category_ids : []
end
end