# -*- coding: utf-8 -*-
#
#= Authentication::ByMobileUid
# Authors:: Tetsushi Ohki
# Copyright:: Copyright (C) OrbusNeich Medical K.K.  2010.
# See also: Authentication::ByPassword 
#--
# date        name                   note
# 2010.3.31   Tetsushi Ohki          新規登録
#-------------------------------------------------------------------------------
# ByPasswordで既に定義されているものは再定義しない
#++
module Authentication
  module ByMobileUid
    # Stuff directives into including module
    def self.included(recipient)
      recipient.extend(ModelClassMethods)
      recipient.class_eval do
        include ModelInstanceMethods
        
        # Virtual attribute for the unencrypted uid
        attr_accessor :uid
        before_save :encrypt_uid
      end
    end # #included directives

   module ModelClassMethods
   end

    #
    # Instance Methods
    #
    module ModelInstanceMethods
      
      # before filter 
      def encrypt_uid
        #return if uid.blank? || self.salt.blank?
        #self.crypted_uid = encrypt(uid)
        return if uid.blank?
        self.crypted_uid = uid # とりあえず暗号化しない
      end
      
      def uid_required?
        crypted_uid.blank? || !uid.blank?
      end

      # DB に uid を記録
      def remember_uid(uid)
        self.uid = uid
        save(false)
      end

      # DB から uid を削除
      def forget_uid
        self.crypted_uid = nil
        save(false)
      end

    end # instance methods
  end
end
