docbrown/app/policies/article_policy.rb
rhymes 7f2045b250 Pro Analytics: stats for a single article (#3120)
* Add /stats endpoint for articles, opened only to Pro users

* Add analytics to article stats page

* Add stats button to the article page and test stats page
2019-06-13 19:02:09 -04:00

50 lines
897 B
Ruby

class ArticlePolicy < ApplicationPolicy
def update?
user_is_author? || user_admin? || user_org_admin? || minimal_admin?
end
def new?
true
end
def create?
!user_is_banned?
end
def delete_confirm?
update?
end
def destroy?
update?
end
def preview?
true
end
def stats?
user_is_author? || user_admin?
end
def permitted_attributes
%i[title body_html body_markdown main_image published canonical_url
description allow_small_edits allow_big_edits tag_list publish_under_org
video video_code video_source_url video_thumbnail_url receive_notifications
archived]
end
private
def user_is_author?
if record.instance_of?(Article)
record.user_id == user.id
else
record.pluck(:user_id).uniq == [user.id]
end
end
def user_org_admin?
user.org_admin?(record.organization_id)
end
end