Sha256: 461356e631f43abfc96c87fa2f8100877be5a5377485ab3e56cac51b5c9fe522

Contents?: true

Size: 1.3 KB

Versions: 3

Compression:

Stored size: 1.3 KB

Contents

class Power
  include Consul::Power

  def initialize(user = nil)
    @user = user
  end

  power :clients do
    Client.active unless guest?
  end

  power :all_clients do
    Client
  end

  power :client_notes do |client|
    client.notes
  end

  power :notes do
    Note.scoped(:joins => :client)
  end

  power :always_true do
    true
  end

  power :always_false do
    false
  end

  power :always_nil do
    nil
  end

  power :cakes do
    :cakes
  end

  power :updatable_cakes do
    :updatable_cakes
  end

  power :creatable_cakes do
    :creatable_cakes
  end

  power :destroyable_cakes do
    :destroyable_cakes
  end

  def assignable_user_roles
    %w[guest admin]
  end

  power :key_figures do
    %w[amount working_costs] unless guest?
  end

  power :api_key do
    'secret-api-key' unless guest?
  end

  power :shorthand1, :shorthand2, :shorthand3 do
    'shorthand'
  end

  power :songs do
    Song
  end

  power :recent_songs do
    Song.recent
  end

  power :deals do
    'deals power' unless guest?
  end

  power :updatable_deals do
    'updatable_deals power' unless guest?
  end

  power :deal_items do
    'deal_items power'
  end

  private

  attr_accessor :user

  def role
    user.role
  end

  def admin?
    user.role == 'admin'
  end

  def guest?
    user.role == 'guest'
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
consul-0.8.0 spec/shared/app_root/app/models/power.rb
consul-0.7.0 spec/shared/app_root/app/models/power.rb
consul-0.6.1 spec/shared/app_root/app/models/power.rb