app/models/mtwarden/account.rb
module Mtwarden
class Account < ActiveRecord::Base
belongs_to :owner, :class_name => "Mtwarden::User"
accepts_nested_attributes_for :owner
belongs_to :plan, :class_name => "Mtwarden::Plan"
validates :subdomain, :presence => true, :uniqueness => true
validates :name, presence: true
has_many :members, :class_name => "Mtwarden::Member"
has_many :users, :through => :members
EXCLUDED_SUBDOMAINS = %w(admin)
validates_exclusion_of :subdomain, :in => EXCLUDED_SUBDOMAINS,
:message => "is not allowed. Please choose another subdomain."
validates_format_of :subdomain, :with => /\A[\w\-]+\Z/i,
:message => "is not allowed. Please choose another subdomain."
before_validation do
self.subdomain = subdomain.to_s.downcase
end
def self.create_with_owner(params={})
account = new(params)
if account.save
account.users << account.owner
end
account
end
def owner?(user)
owner == user
end
end
end