diff --git a/app/models/ability.rb b/app/models/ability.rb index 416a8db..4434f9b 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -4,24 +4,32 @@ class Ability def initialize(user) return unless user - can :read, Barcode + initialize_admin if user.admin? + initialize_koelkast if user.koelkast? + initialize_user - if user.admin? - can :manage, :all - elsif user.koelkast? - can :manage, Order do |order| - !order.try(:user).try(:private) - end - can :quickpay, User - else - can :read, :all - can :manage, User, id: user.id - can :create, Order do |order| - order.try(:user) == user - end - can :destroy, Order do |order| - order.try(:user) == user && order.deletable - end + can :read, Barcode + end + + def initialize_admin + can :manage, :all + end + + def initialize_koelkast + can :manage, Order do |order| + !order.try(:user).try(:private) + end + can :quickpay, User + end + + def initialize_user + can :read, :all + can :manage, User, id: user.id + can :create, Order do |order| + order.try(:user) == user + end + can :destroy, Order do |order| + order.try(:user) == user && order.deletable end end end