Sha256: 590e4d569344e2de8b86f6d3f3fd804b344621bd1a6a532f4176074e42e2f73b

Contents?: true

Size: 954 Bytes

Versions: 17

Compression:

Stored size: 954 Bytes

Contents

class Account
  
  include Locomotive::Mongoid::Document
  
  # devise modules
  devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable

  # attr_accessible :email, :password, :password_confirmation # TODO
  
  ## attributes ##
  field :name
  field :locale, :default => 'en'
  
  ## validations ##
  validates_presence_of :name
  
  ## associations ##
  
  ## callbacks ##  
  before_destroy :remove_memberships!
  
  ## methods ##
  
  def sites
    Site.where({ 'memberships.account_id' => self._id })
  end
  
  protected
  
  def password_required?
    !persisted? || !password.blank? || !password_confirmation.blank?
  end
  
  def remove_memberships!
    self.sites.each do |site|
      site.memberships.delete_if { |m| m.account_id == self._id }
      
      if site.admin_memberships.empty?
        raise I18n.t('errors.messages.needs_admin_account') 
      else
        site.save
      end
    end
  end
  
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
locomotive_cms-0.0.3.3 app/models/account.rb
locomotive_cms-0.0.3.1 app/models/account.rb
locomotive_cms-0.0.2.9 app/models/account.rb
locomotive_cms-0.0.2.8 app/models/account.rb
locomotive_cms-0.0.2.7 app/models/account.rb
locomotive_cms-0.0.2.6 app/models/account.rb
locomotive_cms-0.0.2.5 app/models/account.rb
locomotive_cms-0.0.2.4 app/models/account.rb
locomotive_cms-0.0.2.3 app/models/account.rb
locomotive_cms-0.0.2.2 app/models/account.rb
locomotive_cms-0.0.2.1 app/models/account.rb
locomotive_cms-0.0.2 app/models/account.rb
locomotive_cms-0.0.1.4 app/models/account.rb
locomotive_cms-0.0.1.3 app/models/account.rb
locomotive_cms-0.0.1.2 app/models/account.rb
locomotive_cms-0.0.1.1 app/models/account.rb
locomotive_cms-0.0.1 app/models/account.rb