Created
May 5, 2014 19:57
-
-
Save fresh5447/6da2f2646ce3bbca9a91 to your computer and use it in GitHub Desktop.
wiki_policy.rb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class WikiPolicy < Struct.new(:user, :wiki) | |
| def update? | |
| if user.role?(:admin) | |
| scope.all | |
| elsif user.role?(:premium) | |
| wiki.user == user || wiki.collaborators.map{|collab| collab.user}.include?(user) || !wiki.private? | |
| else | |
| scope.where(:private => false) | |
| end | |
| end | |
| def edit? | |
| update? | |
| end | |
| def create? | |
| user.present? | |
| end | |
| def show? | |
| wiki.private? ? update? : true | |
| end | |
| the show? | |
| def destroy? | |
| update? | |
| end | |
| end |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
def index?
if user.role?(:admin)
scope.all
elsif user.role?(:premium)
wiki.user == user || wiki.collaborators.map{|collab| collab.user}.include?(user) || !wiki.private?
else
scope.where(:private => false)
end
end