mirror of https://github.com/fspc/BikeShed-1.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
684 B
29 lines
684 B
12 years ago
|
class Ability
|
||
|
include CanCan::Ability
|
||
|
|
||
|
def initialize(current_user)
|
||
|
@current_user = current_user
|
||
|
self.send(current_user.role.to_sym)
|
||
|
end
|
||
|
|
||
|
def admin
|
||
|
can :manage, :all
|
||
|
end
|
||
|
|
||
|
def staff
|
||
|
can :manage, :all
|
||
|
end
|
||
|
|
||
|
def bike_admin
|
||
|
can :manage, Bike
|
||
|
can :manage, ::ActsAsLoggable::Log, :loggable_type => "Bike"
|
||
|
end
|
||
|
|
||
|
def user
|
||
|
can :read, :all
|
||
|
can :update, Bike, :id => @current_user.bike_id unless @current_user.bike.nil?
|
||
|
can :manage, ::ActsAsLoggable::Log, { :loggable_type => "Bike", :loggable_id => @current_user.bike_id }
|
||
|
can :manage, ::ActsAsLoggable::Log, { :loggable_type => "User", :loggable_id => @current_user.id }
|
||
|
end
|
||
|
end
|