Sha256: a6507f1e0ffc12de14d065822550e2197f4962e0ad37e5e7f48ca3914ea3d1b5

Contents?: true

Size: 774 Bytes

Versions: 14

Compression:

Stored size: 774 Bytes

Contents

class Membership

  include Locomotive::Mongoid::Document

  ## fields ##
  field :admin, :type => Boolean, :default => false

  ## associations ##
  referenced_in :account
  embedded_in :site, :inverse_of => :memberships

  ## validations ##
  validates_presence_of :account

  ## methods ##

  def email; @email; end

  def email=(email)
    @email = email
    self.account = Account.where(:email => email).first
  end

  def process!
    if @email.blank?
      self.errors.add_on_blank(:email)
      :error
    elsif self.account.blank?
      :create_account
    elsif self.site.memberships.find_all { |m| m.account_id == self.account_id }.size > 1
      self.errors.add(:base, 'Already created')
      :nothing
    else
      self.save
      :save_it
    end
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
locomotive_cms-1.0.0.beta.2 app/models/membership.rb
locomotive_cms-1.0.0.beta app/models/membership.rb
locomotive_cms-0.0.4.beta12 app/models/membership.rb
locomotive_cms-0.0.4.beta11 app/models/membership.rb
locomotive_cms-0.0.4.beta10 app/models/membership.rb
locomotive_cms-0.0.4.beta9 app/models/membership.rb
locomotive_cms-0.0.4.beta8 app/models/membership.rb
locomotive_cms-0.0.4.beta7 app/models/membership.rb
locomotive_cms-0.0.4.beta5 app/models/membership.rb
locomotive_cms-0.0.4.beta4 app/models/membership.rb
locomotive_cms-0.0.4.beta3 app/models/membership.rb
locomotive_cms-0.0.4.beta2 app/models/membership.rb
locomotive_cms-0.0.4.beta1 app/models/membership.rb
locomotive_cms-0.0.4 app/models/membership.rb