Sha256: 798536fa3034dbfc1488e758f826135546c97cae36b653398daf8ce5960d0e92

Contents?: true

Size: 794 Bytes

Versions: 62

Compression:

Stored size: 794 Bytes

Contents

module Ecom
  module Core
    class User < ApplicationRecord
      has_secure_password

      has_and_belongs_to_many :user_roles, join_table: 'ecom_core_users_user_roles'

      VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i.freeze
      validates :first_name, :last_name, presence: true
      validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false }
      validates :password, presence: true, length: { minimum: 6 }, confirmation: true, if: :password

      scope :active, -> { where(active: true) }

      def full_name
        "#{first_name} #{last_name}"
      end

      def roles_for_module(code)
        user_roles.joins(:application_module).where('ecom_core_application_modules.code = ?', code)
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
ecom_core-1.3.14 app/models/ecom/core/user.rb
ecom_core-1.3.13 app/models/ecom/core/user.rb
ecom_core-1.3.12 app/models/ecom/core/user.rb
ecom_core-1.3.11 app/models/ecom/core/user.rb
ecom_core-1.3.10 app/models/ecom/core/user.rb
ecom_core-1.3.9 app/models/ecom/core/user.rb
ecom_core-1.3.8 app/models/ecom/core/user.rb
ecom_core-1.3.7 app/models/ecom/core/user.rb
ecom_core-1.3.6 app/models/ecom/core/user.rb
ecom_core-1.3.5 app/models/ecom/core/user.rb
ecom_core-1.3.4 app/models/ecom/core/user.rb
ecom_core-1.3.3 app/models/ecom/core/user.rb
ecom_core-1.3.2 app/models/ecom/core/user.rb
ecom_core-1.3.1 app/models/ecom/core/user.rb
ecom_core-1.3.0 app/models/ecom/core/user.rb
ecom_core-1.2.36 app/models/ecom/core/user.rb
ecom_core-1.2.35 app/models/ecom/core/user.rb
ecom_core-1.2.34 app/models/ecom/core/user.rb
ecom_core-1.2.33 app/models/ecom/core/user.rb
ecom_core-1.2.32 app/models/ecom/core/user.rb