Skip to content

Instantly share code, notes, and snippets.

@jesjos
Created May 7, 2013 20:09
Show Gist options
  • Save jesjos/5535696 to your computer and use it in GitHub Desktop.
Save jesjos/5535696 to your computer and use it in GitHub Desktop.
# user.rb
class User < ActiveRecord::Base
scope :regular_users, where(:admin => false, :can_admin_project => false)
belongs_to :project
has_many :uploaded_files
has_many :vehicles
after_create :send_registration_email
after_create :set_vehicle_relation
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
# devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :username
attr_accessible :project_id, :can_admin_project
validates_presence_of :email, :username
validates_uniqueness_of :username
# Returns true if the user is admin or is a project admin
def has_admin_rights
return self.admin || self.can_admin_project
end
private
def set_vehicle_relation
Vehicle.where(registration: self.username).update_attributes(user_id: self.id)
end
def send_registration_email
UserMailer.mail_to_new(user, name || "ny user", pass).deliver
UserMailer.mail_to_peter(user, name || "ny user", pass).deliver
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment