app/models/custom/ability.rb
require_dependency Rails.root.join('app', 'models', 'ability').to_s
class Ability
include CanCan::Ability
def initialize(user)
# If someone can hide something, he can also hide it
# from the moderation screen
alias_action :hide_in_moderation_screen, to: :hide
if user # logged-in users
merge Abilities::Valuator.new(user) if user.valuator?
if user.administrator?
merge Abilities::Administrator.new(user)
elsif user.moderator?
merge Abilities::Moderator.new(user)
elsif user.animator?
merge Abilities::Animator.new(user)
else
merge Abilities::Common.new(user)
end
else
merge Abilities::Everyone.new(user)
end
end
end