devise_phone 0.0.1667 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c176b0ae9dd33d8529a09c7f6285450068286b23
4
- data.tar.gz: 08739ec130d4aec423abc3156c2a358f5e462cf3
3
+ metadata.gz: 61c65710b5aad79d543060e435f11260bd150c8f
4
+ data.tar.gz: c98c335e7d5eb587f60afb86555ad5394081b993
5
5
  SHA512:
6
- metadata.gz: dba66214746d0b4e0dff898fa2618265593e556a4eb427a41c7eb1c5d82607dcf9697d426522caf85487575cfda97ef3fed5d1f379f1398b61bddc2b2e931d25
7
- data.tar.gz: e80d5a8319edcbd207389c8cce248ac20261a454e1084bea047ebdf4dbd55c306f7353ef0c0ff38c8cc1c038cc92a91e07979a60a5d344d4e974100ff6103b1f
6
+ metadata.gz: ca18ab1f037adda6f1d5c38bce90bc0bdd423a8006256c8b826553c26e3b19c3b7d963d52a0f787edea818bc07f15c3e6b667930adf4777f1bfce909d837d6ef
7
+ data.tar.gz: b60f0b555fdc1cbdfb9bd5fb6646495ae1cb6dee3ceecabbd236d0b57bb77d1371ab75ea42bc8daedd01df509c08cb0fe0e3c715bf552b4333d026cb47eb3e7b
@@ -27,15 +27,21 @@ When you are done, you are ready to add DevisePhone to any of your Devise models
27
27
 
28
28
  Replace MODEL by the class name you want to add DevisePhone, like User, Admin, etc. This will add the :phone flag to your model's Devise modules. The generator will also create a migration file (if your ORM support them). Continue reading this file to understand exactly what the generator produces and how to use it.
29
29
 
30
- In your config/environments, please specify your twilio_sid, twilio_token, and twilio_phone_number, and twilio_message_body (use #{verification_code} to include the phone verification code of the user) :
30
+ In your config/environments, please specify your twilio_sid, twilio_token, and twilio_phone_number:
31
31
 
32
- dconfig.twilio = {
32
+ config.twilio = {
33
33
  sid: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
34
34
  token: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
35
35
  phone_number: '123455678',
36
- message_body: "Hi! This is from company u asked for. Your verification code is #{verification_code}"
37
36
  }
38
37
 
38
+ To specify the message body, in devise.en.yml add:
39
+
40
+ en:
41
+ devise:
42
+ phone:
43
+ message_body: "Hi! This is Company Name. Your verification code is %{verification_code}."
44
+
39
45
  == Configuring views
40
46
 
41
47
  All the views are packaged inside the gem. If you'd like to customize the views, invoke the following generator and it will copy all the views to your application:
@@ -1,5 +1,7 @@
1
1
  class Devise::PhoneVerificationsController < DeviseController
2
2
 
3
+ before_action :authenticate_user!
4
+
3
5
  # GET /resource/phone_verification/new
4
6
  # def new
5
7
  # build_resource({})
@@ -12,27 +14,30 @@ class Devise::PhoneVerificationsController < DeviseController
12
14
 
13
15
  # GET /resource/phone_verification/send_code
14
16
  def send_code
15
- current_user.generate_verification_code_and_send_sms
16
- # render nothing: true
17
- respond_to do |format|
18
- msg = { :status => "ok", :message => "SMS sent!" }
19
- format.json { render :json => msg } # don't do msg.to_json
20
- end
17
+ current_user.generate_verification_code_and_send_sms(phone_number_params[:phone_number])
18
+
19
+ render nothing: true
20
+ # respond_to do |format|
21
+ # msg = { :status => "ok", :message => "SMS sent!" }
22
+ # format.json { render :json => msg } # don't do msg.to_json
23
+ # format.html { render nothing: true }
24
+ # end
21
25
  end
22
26
 
23
27
  # GET or POST /resource/phone_verification/verify_code
24
28
  def verify_code
25
- verify_success = current_user.verify_phone_number_with_code_entered(params[:code_entered])
26
- # render nothing: true
27
- respond_to do |format|
28
- if verify_success
29
- message_response = "verification successful"
30
- else
31
- message_response = "verification fail"
32
- end
33
- msg = { :status => "ok", :message => message_response }
34
- format.json { render :json => msg } # don't do msg.to_json
35
- end
29
+ verify_success = current_user.verify_phone_number_with_code_entered(code_entered_params[:code_entered])
30
+ render nothing: true
31
+ # respond_to do |format|
32
+ # if verify_success
33
+ # message_response = "verification successful"
34
+ # else
35
+ # message_response = "verification fail"
36
+ # end
37
+ # msg = { :status => "ok", :message => message_response }
38
+ # format.json { render :json => msg } # don't do msg.to_json
39
+ # format.html { render nothing: true }
40
+ # end
36
41
  end
37
42
 
38
43
  protected
@@ -41,4 +46,14 @@ class Devise::PhoneVerificationsController < DeviseController
41
46
  self.resource = resource_class.new
42
47
  end
43
48
 
49
+
50
+ private
51
+ def phone_number_params
52
+ params.permit(:phone_number)
53
+ end
54
+
55
+ def code_entered_params
56
+ params.permit(:code_entered)
57
+ end
58
+
44
59
  end
@@ -3,7 +3,7 @@ require "twilio-ruby"
3
3
 
4
4
  $: << File.expand_path("..", __FILE__)
5
5
 
6
- require "devise_phone/routes"
6
+ # require "devise_phone/routes"
7
7
  require "devise_phone/schema"
8
8
  require 'devise_phone/controllers/url_helpers'
9
9
  require 'devise_phone/controllers/helpers'
@@ -2,12 +2,12 @@ module ActionDispatch::Routing
2
2
  class Mapper
3
3
 
4
4
  protected
5
- def devise_phone_verification(mapping, controllers)
6
- resource :phone_verification, :only => [:new, :create], :path => mapping.path_names[:phone_verification], :controller => controllers[:phone_verifications] do
7
- post :verify_code, :path => mapping.path_names[:verify_code], :as => :verify_code
8
- get :send_code, :path => mapping.path_names[:send_code], :as => :send_code
9
- end
10
- end
5
+ # def devise_phone_verification(mapping, controllers)
6
+ # resource :phone_verification, :only => [:new, :create], :path => mapping.path_names[:phone_verification], :controller => controllers[:phone_verifications] do
7
+ # post :verify_code, :path => mapping.path_names[:verify_code], :as => :verify_code
8
+ # post :send_code, :path => mapping.path_names[:send_code], :as => :send_code
9
+ # end
10
+ # end
11
11
 
12
12
  end
13
13
  end
@@ -1,3 +1,3 @@
1
1
  module DevisePhone
2
- VERSION = "0.0.1667".freeze
2
+ VERSION = "0.1.0".freeze
3
3
  end
@@ -5,23 +5,23 @@ module Devise
5
5
  module Phone
6
6
  extend ActiveSupport::Concern
7
7
 
8
- included do
9
- before_create :set_unverified_phone_attributes, :if => :phone_verification_needed?
10
- # after_create :private_generate_verification_code_and_send_sms, :if => :phone_verification_needed?
11
- # before_save :remember_old_phone_number
12
- after_save :private_generate_verification_code_and_send_sms, :if => :regenerate_phone_verification_needed?
13
- end
14
-
15
- def generate_verification_code_and_send_sms
8
+ # included do
9
+ # before_create :set_unverified_phone_attributes, :if => :phone_verification_needed?
10
+ # # after_create :private_generate_verification_code_and_send_sms, :if => :phone_verification_needed?
11
+ # # before_save :remember_old_phone_number
12
+ # after_save :private_generate_verification_code_and_send_sms, :if => :regenerate_phone_verification_needed?
13
+ # end
14
+
15
+ def generate_verification_code_and_send_sms(phone_number)
16
16
  if(phone_verification_needed?)
17
- private_generate_verification_code_and_send_sms
17
+ private_generate_verification_code_and_send_sms(phone_number)
18
18
  end
19
- self.save!
19
+ # self.save!
20
20
  end
21
21
 
22
22
  def verify_phone_number_with_code_entered(code_entered)
23
23
  if phone_verification_needed? && (code_entered == self.phone_verification_code)
24
- mark_phone_as_verified!
24
+ mark_phone_as_verified
25
25
  true
26
26
  else
27
27
  false
@@ -30,28 +30,29 @@ module Devise
30
30
 
31
31
  private
32
32
 
33
- def private_generate_verification_code_and_send_sms
33
+ def private_generate_verification_code_and_send_sms(phone_number)
34
34
  self.phone_verification_code = generate_phone_verification_code
35
35
  set_unverified_phone_attributes
36
- if phone_number.present?
37
- send_sms_verification_code
38
- end
36
+ # if phone_number.present?
37
+ send_sms_verification_code(phone_number)
38
+ # end
39
39
  end
40
40
 
41
41
 
42
- def mark_phone_as_verified!
43
- update!(phone_number_verified: true,
44
- phone_verification_code: nil,
45
- phone_verification_code_sent_at: nil,
46
- phone_verified_at: DateTime.now)
42
+ def mark_phone_as_verified
43
+ self.phone_number_verified = true
44
+ self.phone_verification_code = nil
45
+ self.phone_verification_code_sent_at = nil
46
+ self.phone_verified_at = DateTime.now
47
47
  end
48
48
 
49
49
  # check if phone verification is needed and set errors here
50
50
  def phone_verification_needed?
51
- if phone_number.blank?
52
- self.errors.add(:phone_verification_code, :empty_phone_number_field)
53
- false
54
- elsif phone_number_verified
51
+ # if phone_number.blank?
52
+ # self.errors.add(:phone_verification_code, :empty_phone_number_field)
53
+ # false
54
+ # els
55
+ if phone_number_verified
55
56
  self.errors.add(:phone_verification_code, :phone_verification_not_needed)
56
57
  false
57
58
  else
@@ -79,20 +80,20 @@ module Devise
79
80
  self.phone_verification_code_sent_at = DateTime.now
80
81
  self.phone_verified_at = nil
81
82
  # removes all white spaces, hyphens, and parenthesis
82
- if self.phone_number
83
- self.phone_number.gsub!(/[\s\-\(\)]+/, '')
84
- end
83
+ # if self.phone_number
84
+ # self.phone_number.gsub!(/[\s\-\(\)]+/, '')
85
+ # end
85
86
  end
86
87
 
87
- # return 6 digits random code a-z,0-9
88
+ # return 4 digits random code 0-9
88
89
  def generate_phone_verification_code
89
- verification_code = SecureRandom.hex(3)
90
+ verification_code = SecureRandom.random_number(10 ** 4).to_s.rjust(4,'0')
90
91
  verification_code
91
92
  end
92
93
 
93
94
  # sends a message to number indicated in the secrets.yml
94
- def send_sms_verification_code
95
- number_to_send_to = self.phone_number
95
+ def send_sms_verification_code(phone_number)
96
+ number_to_send_to = phone_number.gsub!(/[\s\-\(\)]+/, '')
96
97
  verification_code = self.phone_verification_code
97
98
 
98
99
  twilio_sid = Rails.application.config.twilio[:sid]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_phone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1667
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hubert Theodore
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-25 00:00:00.000000000 Z
11
+ date: 2015-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler