class Ability include CanCan::Ability def initialize(user) user ||= Employee.new if user.role == "administrator" can :manage, :all elsif user.role == "manager" can :manage, Menu can :manage, MenuCategory can :manage, MenuItemAttribute can :manage, MenuItemInstance can :manage, MenuItemOption can :manage, SetMenuItem can :manage, OrderQueueStation can :manage, Zone can :manage, CashierTerminal can :manage, Employee can :manage, MembershipSetting can :manage, MembershipAction can :manage, PaymentMethodSetting can :manage, TaxProfile can :manage, PrintSetting can :manage, Account can :manage, Order can :manage, Sale can :index, :dailysale can :index, :saleitem elsif user.role == "cashier" can :read, Order can :update, Order can :read, Sale can :update, Sale can :add_customer, Customer can :update_sale_by_customer, Customer can :index, :discount can :create, :discount can :show, :payment can :create, :payment can :reprint, :payment can :move_dining, :movetable can :moving, :movetable can :move_dining, :moveroom elsif user.role == "accountant" can :index, :dailysale can :index, :saleitem can :index, :receiptno can :show, :dailysale can :show, :saleitem can :show, :receiptno end end end