simply_auth 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/simply_auth/registrations_controller.rb +5 -7
- data/app/controllers/simply_auth/sessions_controller.rb +3 -3
- data/app/models/simply_auth/api_key.rb +28 -0
- data/app/models/simply_auth/model.rb +55 -6
- data/app/models/simply_auth/user.rb +5 -1
- data/lib/simply_auth/controller_helpers.rb +10 -2
- data/lib/simply_auth/engine.rb +8 -0
- data/lib/simply_auth/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a571fc9014ad945181c6bdf7be79bd56b3f9b340
|
4
|
+
data.tar.gz: 1176b358d6a9c819c7f8398f09757048c34c4688
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97ebeecba79b67a5bc90991884a9acaf2dab4860c8471e727fa452c002046c1778b106aa0985d5aa56a514f653adf50fff5230781b1561e4e02a29f51e3dfc1c
|
7
|
+
data.tar.gz: a76810f18f67fa8a72e65dc1ac78451b1045f6b57986b42d3ffb7bfc7c3ea11a37585444265d373e99822a848e52639f1ed5992db2266754047c862c673860f0
|
@@ -4,19 +4,17 @@ module SimplyAuth
|
|
4
4
|
@user = SimplyAuth::User.new
|
5
5
|
end
|
6
6
|
|
7
|
+
def after_registration(user); end
|
8
|
+
|
7
9
|
def create
|
8
10
|
@user = SimplyAuth::User.new(user_params)
|
9
11
|
if @user.save
|
10
|
-
|
11
|
-
# account_name = @user.name if account_name.blank?
|
12
|
-
# account = Account.create(name: account_name)
|
13
|
-
# @user.data.account_id = account.id
|
14
|
-
# @user.save
|
12
|
+
after_registration(@user)
|
15
13
|
|
16
14
|
@session = SimplyAuth::Session.new(email: user_params[:email], password: user_params[:password])
|
17
15
|
@session.save
|
18
16
|
session[:simply_auth_session_id] = @session.id
|
19
|
-
redirect_to
|
17
|
+
redirect_to "/"
|
20
18
|
else
|
21
19
|
render :new
|
22
20
|
end
|
@@ -25,7 +23,7 @@ module SimplyAuth
|
|
25
23
|
private
|
26
24
|
|
27
25
|
def user_params
|
28
|
-
params.require(:
|
26
|
+
params.require(:user).permit(:name, :email, :password, data: params[:user][:data].try(:keys))
|
29
27
|
end
|
30
28
|
end
|
31
29
|
end
|
@@ -8,7 +8,7 @@ module SimplyAuth
|
|
8
8
|
@session = SimplyAuth::Session.new(session_params)
|
9
9
|
if @session.save
|
10
10
|
session[:simply_auth_session_id] = @session.id
|
11
|
-
redirect_to
|
11
|
+
redirect_to main_app.root_path
|
12
12
|
else
|
13
13
|
render :new
|
14
14
|
end
|
@@ -17,13 +17,13 @@ module SimplyAuth
|
|
17
17
|
def destroy
|
18
18
|
current_session.destroy
|
19
19
|
session.destroy
|
20
|
-
redirect_to
|
20
|
+
redirect_to main_app.root_path
|
21
21
|
end
|
22
22
|
|
23
23
|
private
|
24
24
|
|
25
25
|
def session_params
|
26
|
-
params.require(:
|
26
|
+
params.require(:session).permit(:email, :password)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module SimplyAuth
|
2
|
+
class ApiKey < Model
|
3
|
+
attr_accessor :name, :id, :secret
|
4
|
+
|
5
|
+
def attributes
|
6
|
+
super.merge(name: name, id: id, secret: secret)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.all
|
10
|
+
response = RestClient.get(
|
11
|
+
"https://api.simplyauth.com#{collection_path}",
|
12
|
+
accept: :json
|
13
|
+
)
|
14
|
+
body = JSON.parse(response.body)
|
15
|
+
body.map do |data|
|
16
|
+
data = data.deep_transform_keys { |key| key.to_s.underscore }
|
17
|
+
new(data)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def destroy
|
22
|
+
RestClient.delete(
|
23
|
+
"https://api.simplyauth.com#{instance_path}",
|
24
|
+
accept: :json
|
25
|
+
)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -5,6 +5,19 @@ module SimplyAuth
|
|
5
5
|
include ActiveModel::Conversion
|
6
6
|
attr_accessor :id
|
7
7
|
|
8
|
+
def initialize(*args)
|
9
|
+
super(*args)
|
10
|
+
@persisted = false
|
11
|
+
end
|
12
|
+
|
13
|
+
def persisted?
|
14
|
+
@persisted
|
15
|
+
end
|
16
|
+
|
17
|
+
def persisted=(val)
|
18
|
+
@persisted = val
|
19
|
+
end
|
20
|
+
|
8
21
|
def data
|
9
22
|
@data ||= OpenStruct.new
|
10
23
|
end
|
@@ -20,24 +33,36 @@ module SimplyAuth
|
|
20
33
|
end
|
21
34
|
|
22
35
|
def attributes
|
23
|
-
{id: id, data: data}
|
36
|
+
{id: id, data: data.to_h}
|
24
37
|
end
|
25
38
|
|
26
39
|
def save
|
27
40
|
if valid?
|
41
|
+
Rails.logger.error([
|
42
|
+
persisted? ? :patch : :post,
|
43
|
+
"https://api.simplyauth.com#{persisted? ? instance_path : collection_path}",
|
44
|
+
attributes.to_json,
|
45
|
+
{accept: :json,
|
46
|
+
content_type: :json}
|
47
|
+
].inspect)
|
28
48
|
response = RestClient.send(
|
29
49
|
persisted? ? :patch : :post,
|
30
|
-
"https://api.simplyauth.com#{instance_path}",
|
50
|
+
"https://api.simplyauth.com#{persisted? ? instance_path : collection_path}",
|
31
51
|
attributes.to_json,
|
32
52
|
accept: :json,
|
33
53
|
content_type: :json
|
34
54
|
)
|
55
|
+
Rails.logger.error("3")
|
35
56
|
body = JSON.parse(response.body)
|
36
57
|
body = body.deep_transform_keys { |key| key.to_s.underscore }
|
58
|
+
Rails.logger.error("4")
|
37
59
|
self.attributes = body
|
38
60
|
changes_applied
|
61
|
+
self.persisted = true
|
62
|
+
Rails.logger.error("5")
|
39
63
|
true
|
40
64
|
else
|
65
|
+
Rails.logger.error("6")
|
41
66
|
false
|
42
67
|
end
|
43
68
|
end
|
@@ -57,6 +82,10 @@ module SimplyAuth
|
|
57
82
|
nil
|
58
83
|
end
|
59
84
|
|
85
|
+
def owner_id
|
86
|
+
nil
|
87
|
+
end
|
88
|
+
|
60
89
|
def self.collection_path(owner_ids = [])
|
61
90
|
ids = [ids].flatten
|
62
91
|
if self.owner_class
|
@@ -66,16 +95,28 @@ module SimplyAuth
|
|
66
95
|
end
|
67
96
|
end
|
68
97
|
|
98
|
+
def collection_path
|
99
|
+
if owner_id
|
100
|
+
self.class.collection_path(owner_id)
|
101
|
+
else
|
102
|
+
self.class.collection_path
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
69
106
|
def instance_path
|
70
|
-
|
107
|
+
if owner_id
|
108
|
+
self.class.instance_path([owner_id, id])
|
109
|
+
else
|
110
|
+
self.class.instance_path(id)
|
111
|
+
end
|
71
112
|
end
|
72
113
|
|
73
114
|
def self.instance_path(ids = [])
|
74
115
|
ids = [ids].flatten
|
75
116
|
if self.owner_class
|
76
|
-
"#{self.owner_class.instance_path(ids.first(ids.length - 1))}/#{path_component}/#{ids.last}"
|
117
|
+
"#{self.owner_class.instance_path(ids.first(ids.length - 1))}/#{path_component}/#{ERB::Util.url_encode(ids.last)}"
|
77
118
|
else
|
78
|
-
"/#{path_component}/#{ids.last}"
|
119
|
+
"/#{path_component}/#{ERB::Util.url_encode(ids.last)}"
|
79
120
|
end
|
80
121
|
end
|
81
122
|
|
@@ -86,7 +127,15 @@ module SimplyAuth
|
|
86
127
|
)
|
87
128
|
body = JSON.parse(response.body)
|
88
129
|
body = body.deep_transform_keys { |key| key.to_s.underscore }
|
89
|
-
new(body)
|
130
|
+
new(body).tap do |r|
|
131
|
+
r.persisted = true
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def self.create(attributes={})
|
136
|
+
r = new(attributes)
|
137
|
+
r.save()
|
138
|
+
r
|
90
139
|
end
|
91
140
|
end
|
92
141
|
end
|
@@ -3,11 +3,15 @@ module SimplyAuth
|
|
3
3
|
attr_accessor :name, :email, :password, :user_pool_id
|
4
4
|
validates :name, presence: true
|
5
5
|
validates :email, format: /[^@]+@[^@]+/
|
6
|
-
validates :password, length: 6..72
|
6
|
+
validates :password, length: 6..72, if: :password
|
7
7
|
def attributes
|
8
8
|
super.merge(name: name, email: email, password: password)
|
9
9
|
end
|
10
10
|
|
11
|
+
def owner_id
|
12
|
+
self.user_pool_id
|
13
|
+
end
|
14
|
+
|
11
15
|
def self.owner_class_name
|
12
16
|
"UserPool"
|
13
17
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module SimplyAuth
|
2
2
|
module ControllerHelpers
|
3
3
|
def current_session
|
4
|
-
|
4
|
+
Thread.current[:simply_auth_session] ||= find_session
|
5
5
|
end
|
6
6
|
|
7
7
|
def user_logged_in?
|
@@ -16,9 +16,17 @@ module SimplyAuth
|
|
16
16
|
if user_logged_in?
|
17
17
|
true
|
18
18
|
else
|
19
|
-
redirect_to new_session_path
|
19
|
+
redirect_to simply_auth.new_session_path
|
20
20
|
false
|
21
21
|
end
|
22
22
|
end
|
23
|
+
|
24
|
+
def find_session
|
25
|
+
begin
|
26
|
+
SimplyAuth::Session.find(session[:simply_auth_session_id]) if session[:simply_auth_session_id]
|
27
|
+
rescue RestClient::NotFound
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
end
|
23
31
|
end
|
24
32
|
end
|
data/lib/simply_auth/engine.rb
CHANGED
@@ -6,6 +6,14 @@ module SimplyAuth
|
|
6
6
|
ActiveSupport.on_load(:action_controller) do
|
7
7
|
include SimplyAuth::ControllerHelpers
|
8
8
|
helper_method :user_logged_in?, :current_user
|
9
|
+
|
10
|
+
|
11
|
+
before_action do
|
12
|
+
Thread.current[:simply_auth_session] = nil
|
13
|
+
end
|
14
|
+
after_action do
|
15
|
+
Thread.current[:simply_auth_session] = nil
|
16
|
+
end
|
9
17
|
end
|
10
18
|
end
|
11
19
|
end
|
data/lib/simply_auth/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simply_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Fogle
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -57,6 +57,7 @@ files:
|
|
57
57
|
- app/helpers/simply_auth/application_helper.rb
|
58
58
|
- app/jobs/simply_auth/application_job.rb
|
59
59
|
- app/mailers/simply_auth/application_mailer.rb
|
60
|
+
- app/models/simply_auth/api_key.rb
|
60
61
|
- app/models/simply_auth/config.rb
|
61
62
|
- app/models/simply_auth/model.rb
|
62
63
|
- app/models/simply_auth/session.rb
|