Skip to content

Instantly share code, notes, and snippets.

@fresh5447
Created May 5, 2014 19:57
Show Gist options
  • Select an option

  • Save fresh5447/6da2f2646ce3bbca9a91 to your computer and use it in GitHub Desktop.

Select an option

Save fresh5447/6da2f2646ce3bbca9a91 to your computer and use it in GitHub Desktop.
wiki_policy.rb
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
@fresh5447
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment