Sha256: f89ab777632ed092658dc5018ad53090ea63af883349704288e0ce950abaa48c

Contents?: true

Size: 1.91 KB

Versions: 51

Compression:

Stored size: 1.91 KB

Contents

class User
  include Mongoid::Document
	# https://docs.mongodb.com/mongoid/master/tutorials/mongoid-indexes/
  index({ code: 1 }, { unique: true, name: "code_index" })
  before_create {generate_token(:auth_token)}
  field :provider, :type => String
  field :uid, :type => String
  field :code, :type => String
  field :email, :type => String
  field :role, :type => String
  field :user, :type => String
  field :auth_token, :type => String
  field :password_reset_token, :type => String
  field :password_reset_sent_at,:type => DateTime
  field :image, :type => String

  belongs_to :identity, :polymorphic => true, :optional => true
  has_many :xmains, :class_name => "Jinda::Xmain"
  validates :code,
		presence: true,
		uniqueness: true

  ## Add to create forgot password
  def generate_token(column)
    begin
      self[column] = SecureRandom.urlsafe_base64
    end
    #end while User.exists?(column => self[column])
  end

  def has_role(role1)
    return role.upcase.split(',').include?(role1.upcase)
  end
  
  def self.from_omniauth(auth)
  # Rails now no longer support slice 
  # where(auth.slice(:uid, :provider, :email)).first_or_create do |user|
    where(uid: auth.uid, provider: auth.provider, email: auth.info.email).first_or_create do |user|
      case auth.provider 
        when 'identity'
          identity = Identity.find auth.uid
          user.code = identity.code
          user.email = identity.email
        else
          user.email = auth.info.email
          user.uid = auth.uid
          user.provider = auth.provider
          user.code = auth.info.name
          user.role = "M"
          user.image = auth.info.image
        end
      end
    end
         
  def ma_secured?
    role.upcase.split(',').include?(ma_secured_ROLE)
  end
  
  def send_password_reset
    generate_token(:password_reset_token)
    self.password_reset_sent_at = Time.zone.now
    save!
    UserMailer.password_reset(self).deliver
  end

end

Version data entries

51 entries across 48 versions & 4 rubygems

Version Path
jinda-0.8.0 lib/generators/jinda/templates/app/models/user.rb
jinda-0.8.0 test/dummy/app/models/user.rb
jinda-0.7.7.4 test/dummy/app/models/user.rb
jinda-0.7.7.4 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.7.3 test/dummy/app/models/user.rb
jinda-0.7.7.3 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.7.2 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.7.1 lib/generators/jinda/templates/app/models/user.rb
jinda_mind-1.0.0 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.7 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.6 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.5.5 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.5.4 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.5.3 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.5.2 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.5.0 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.3 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.2 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.1 lib/generators/jinda/templates/app/models/user.rb
jinda-0.7.0.4 lib/generators/jinda/templates/app/models/user.rb