nyauth 0.0.2 → 0.0.3
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/README.md +24 -6
- data/app/controllers/concerns/nyauth/application_concern.rb +10 -0
- data/app/controllers/concerns/nyauth/client_concern.rb +31 -0
- data/app/controllers/nyauth/confirmation_requests_controller.rb +10 -8
- data/app/controllers/nyauth/confirmations_controller.rb +8 -6
- data/app/controllers/nyauth/new_password_requests_controller.rb +10 -8
- data/app/controllers/nyauth/new_passwords_controller.rb +10 -8
- data/app/controllers/nyauth/passwords_controller.rb +11 -9
- data/app/controllers/nyauth/registrations_controller.rb +10 -8
- data/app/controllers/nyauth/sessions_controller.rb +6 -4
- data/app/helpers/nyauth/application_helper.rb +38 -1
- data/app/mailers/nyauth/request_mailer.rb +15 -0
- data/app/views/nyauth/confirmation_requests/new.html.slim +1 -1
- data/app/views/nyauth/confirmations/edit.html.slim +2 -2
- data/app/views/nyauth/new_password_requests/new.html.slim +1 -1
- data/app/views/nyauth/new_passwords/edit.html.slim +3 -3
- data/app/views/nyauth/passwords/edit.html.slim +3 -3
- data/app/views/nyauth/registrations/new.html.slim +3 -3
- data/app/views/nyauth/request_mailer/request_confirmation.html.slim +2 -0
- data/app/views/nyauth/request_mailer/request_confirmation.text.erb +3 -0
- data/app/views/nyauth/request_mailer/request_new_password.html.slim +2 -0
- data/app/views/nyauth/request_mailer/request_new_password.text.erb +3 -0
- data/app/views/nyauth/sessions/new.html.slim +1 -5
- data/config/routes.rb +1 -1
- data/lib/generators/nyauth/install_generator.rb +11 -0
- data/lib/generators/nyauth/templates/nyauth_install_initializer.rb +7 -0
- data/lib/nyauth/configuration.rb +40 -0
- data/lib/nyauth/engine.rb +2 -0
- data/lib/nyauth/version.rb +1 -1
- data/lib/nyauth.rb +10 -0
- data/spec/dummy/app/controllers/pages_controller.rb +4 -0
- data/spec/dummy/app/controllers/posts_controller.rb +5 -0
- data/spec/dummy/app/models/admin.rb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +2 -1
- data/spec/dummy/config/routes.rb +7 -1
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20150317141956_create_admins.rb +12 -0
- data/spec/dummy/db/schema.rb +11 -1
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +1662 -0
- data/spec/dummy/log/test.log +36831 -0
- data/spec/dummy/tmp/capybara/capybara-201503142131285774508896.html +1 -0
- data/spec/dummy/tmp/capybara/capybara-201503142131502672526321.html +1 -0
- data/spec/dummy/tmp/capybara/capybara-201503142132597161072575.html +16 -0
- data/spec/dummy/tmp/capybara/capybara-201503142147454003977122.html +16 -0
- data/spec/dummy/tmp/capybara/capybara-201503150030597512321952.html +1 -0
- data/spec/dummy/tmp/capybara/capybara-201503172332094559831059.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172332489943616503.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172333245353296202.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172335156567049015.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172339176031196898.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172340144947026095.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172341585213923875.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172342188836603353.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172344586782457691.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172346495241516033.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-201503172354248621830336.html +15 -0
- data/spec/dummy/tmp/capybara/capybara-20150623002226753539811.html +15 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/factories/admins.rb +6 -0
- data/spec/featrues/nyauth/registrations_spec.rb +1 -0
- data/spec/featrues/nyauth/sessions_spec.rb +54 -19
- data/spec/featrues/url_helper_on_application_spec.rb +10 -0
- data/spec/helpers/nyauth/application_helper_spec.rb +145 -0
- data/spec/lib/generators/nyauth/install_generator_spec.rb +19 -0
- data/spec/lib/generators/nyauth/tmp/config/initializers/nyauth.rb +7 -0
- data/spec/lib/nyauth/configuration_spec.rb +23 -0
- data/spec/mailers/nyauth/{user_mailer_spec.rb → request_mailer_spec.rb} +3 -3
- metadata +72 -13
- data/app/controllers/nyauth/base_controller.rb +0 -5
- data/app/mailers/nyauth/user_mailer.rb +0 -15
- data/app/views/nyauth/group_requests/new.html.slim +0 -14
- data/app/views/nyauth/groups/show.html.slim +0 -0
- data/app/views/nyauth/user_mailer/request_confirmation.html.slim +0 -2
- data/app/views/nyauth/user_mailer/request_confirmation.text.erb +0 -3
- data/app/views/nyauth/user_mailer/request_new_password.html.slim +0 -2
- data/app/views/nyauth/user_mailer/request_new_password.text.erb +0 -3
- /data/{app/views/nyauth/group_requests/edit.html.slim → spec/dummy/app/views/pages/index.html.slim} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fd6e65944c1dc06e5b03ed7744365a09f3611cb5
|
|
4
|
+
data.tar.gz: 91ae82f9fd0543b01abb601a2a8f780e54dd92ad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2ac0d0c2c4a60a97a29f42a03cc71800d74a046944e3ed64e5ebb82a07d4d6f30a2b3d96228c4a3e67e5f21be4013dd5495f21ff383510322b173b4778b72627
|
|
7
|
+
data.tar.gz: 2deefd3ca405a7686c3e1a5c6eccdfc3e12f27c48bf09279fff447167f258e1968ae69ea9fd7441afca7f4404d64c14ab6f8a97c9bb50befcb908ed9998849d6
|
data/README.md
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
# Nyauth
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
### application_controller.rb
|
|
4
|
+
|
|
5
|
+
```ruby
|
|
4
6
|
class ApplicationController < ActionController::Base
|
|
5
7
|
include Nyauth::SessionConcern
|
|
6
|
-
self.responder = Nyauth::AppResponder
|
|
7
8
|
end
|
|
8
9
|
```
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
### migration
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
11
14
|
class CreateUsers < ActiveRecord::Migration
|
|
12
15
|
def change
|
|
13
16
|
create_table :users do |t|
|
|
@@ -28,7 +31,9 @@ class CreateUsers < ActiveRecord::Migration
|
|
|
28
31
|
end
|
|
29
32
|
```
|
|
30
33
|
|
|
31
|
-
|
|
34
|
+
### model
|
|
35
|
+
|
|
36
|
+
```ruby
|
|
32
37
|
class User < ActiveRecord::Base
|
|
33
38
|
include Nyauth::Authenticatable
|
|
34
39
|
include Nyauth::Confirmable
|
|
@@ -36,8 +41,16 @@ class User < ActiveRecord::Base
|
|
|
36
41
|
end
|
|
37
42
|
```
|
|
38
43
|
|
|
39
|
-
|
|
44
|
+
### config/routes.rb
|
|
45
|
+
|
|
46
|
+
```ruby
|
|
40
47
|
Rails.application.routes.draw do
|
|
48
|
+
# for admin
|
|
49
|
+
namespace :nyauth, path: :admin, as: :admin do
|
|
50
|
+
resource :session, only: %i(new create destory)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# for user
|
|
41
54
|
mount Nyauth::Engine => "/"
|
|
42
55
|
end
|
|
43
56
|
```
|
|
@@ -46,7 +59,7 @@ end
|
|
|
46
59
|
rake routes
|
|
47
60
|
```
|
|
48
61
|
|
|
49
|
-
```
|
|
62
|
+
```ruby
|
|
50
63
|
Prefix Verb URI Pattern Controller#Action
|
|
51
64
|
nyauth /nyauth Nyauth::Engine
|
|
52
65
|
|
|
@@ -69,3 +82,8 @@ new_new_password_request GET /new_password_requests/new(.:format)
|
|
|
69
82
|
PUT /new_passwords/:new_password_key(.:format) nyauth/new_passwords#update
|
|
70
83
|
root GET / nyauth/sessions#new
|
|
71
84
|
```
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
new_session_path_for(:user) # /session/new
|
|
88
|
+
new_session_path_for(:admin) # /admin/session/new
|
|
89
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module Nyauth
|
|
2
|
+
module ClientConcern
|
|
3
|
+
extend ActiveSupport::Concern
|
|
4
|
+
included do |base|
|
|
5
|
+
helper_method :client_class
|
|
6
|
+
helper_method :client_name
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
@client_classes = {}
|
|
11
|
+
super
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def mounted_path
|
|
17
|
+
request.script_name.presence || "/#{request.path.split('/').try(:second)}"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# specify client class from mounted_path
|
|
21
|
+
def client_class
|
|
22
|
+
@client_classes[mounted_path] ||= mounted_path[1..-1].classify.constantize
|
|
23
|
+
rescue
|
|
24
|
+
@client_classes[mounted_path] = User
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def client_name
|
|
28
|
+
client_class.name.underscore.to_sym
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
module Nyauth
|
|
2
|
-
class ConfirmationRequestsController <
|
|
2
|
+
class ConfirmationRequestsController < ApplicationController
|
|
3
|
+
include Nyauth::ApplicationConcern
|
|
4
|
+
include Nyauth::ClientConcern
|
|
3
5
|
allow_everyone
|
|
4
6
|
respond_to :html, :json
|
|
5
|
-
before_action :
|
|
6
|
-
after_action :send_mail, only: [:create], if: -> { @
|
|
7
|
+
before_action :set_client, only: [:create]
|
|
8
|
+
after_action :send_mail, only: [:create], if: -> { @client.confirmation_key.present? }
|
|
7
9
|
|
|
8
10
|
def new
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
def create
|
|
12
|
-
@
|
|
13
|
-
respond_with(@
|
|
14
|
+
@client.request_confirmation
|
|
15
|
+
respond_with(@client, location: Nyauth.configuration.redirect_path_after_create_request_confirmation || main_app.root_path)
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
private
|
|
17
19
|
|
|
18
|
-
def
|
|
19
|
-
@
|
|
20
|
+
def set_client
|
|
21
|
+
@client = client_class.find_by!(email: params[client_name][:email])
|
|
20
22
|
rescue ActiveRecord::RecordNotFound
|
|
21
23
|
render :new
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
def send_mail
|
|
25
|
-
Nyauth::
|
|
27
|
+
Nyauth::RequestMailer.request_confirmation(@client).deliver_now
|
|
26
28
|
end
|
|
27
29
|
end
|
|
28
30
|
end
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
module Nyauth
|
|
2
|
-
class ConfirmationsController <
|
|
2
|
+
class ConfirmationsController < ApplicationController
|
|
3
|
+
include Nyauth::ApplicationConcern
|
|
4
|
+
include Nyauth::ClientConcern
|
|
3
5
|
allow_everyone
|
|
4
6
|
self.responder = ConfirmationResponder
|
|
5
7
|
respond_to :html, :json
|
|
6
|
-
before_action :
|
|
8
|
+
before_action :set_client
|
|
7
9
|
|
|
8
10
|
def update
|
|
9
|
-
@
|
|
10
|
-
respond_with(@
|
|
11
|
+
@client.confirm
|
|
12
|
+
respond_with(@client, location: Nyauth.configuration.redirect_path_after_update_confirmation || main_app.root_path)
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
private
|
|
14
16
|
|
|
15
|
-
def
|
|
16
|
-
@
|
|
17
|
+
def set_client
|
|
18
|
+
@client = client_class.find_by!(confirmation_key: params[:confirmation_key])
|
|
17
19
|
end
|
|
18
20
|
end
|
|
19
21
|
end
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
module Nyauth
|
|
2
|
-
class NewPasswordRequestsController <
|
|
2
|
+
class NewPasswordRequestsController < ApplicationController
|
|
3
|
+
include Nyauth::ApplicationConcern
|
|
4
|
+
include Nyauth::ClientConcern
|
|
3
5
|
allow_everyone
|
|
4
6
|
respond_to :html, :json
|
|
5
|
-
before_action :
|
|
6
|
-
after_action :send_mail, only: [:create], if: -> { @
|
|
7
|
+
before_action :set_client, only: [:create]
|
|
8
|
+
after_action :send_mail, only: [:create], if: -> { @client.new_password_key.present? }
|
|
7
9
|
|
|
8
10
|
def new
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
def create
|
|
12
|
-
@
|
|
13
|
-
respond_with(@
|
|
14
|
+
@client.request_new_password
|
|
15
|
+
respond_with(@client, location: Nyauth.configuration.redirect_path_after_new_password_request || main_app.root_path)
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
private
|
|
17
19
|
|
|
18
|
-
def
|
|
19
|
-
@
|
|
20
|
+
def set_client
|
|
21
|
+
@client = client_class.find_by!(email: params[client_name][:email])
|
|
20
22
|
rescue ActiveRecord::RecordNotFound
|
|
21
23
|
render :new
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
def send_mail
|
|
25
|
-
Nyauth::
|
|
27
|
+
Nyauth::RequestMailer.request_new_password(@client).deliver_now
|
|
26
28
|
end
|
|
27
29
|
end
|
|
28
30
|
end
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
module Nyauth
|
|
2
|
-
class NewPasswordsController <
|
|
2
|
+
class NewPasswordsController < ApplicationController
|
|
3
|
+
include Nyauth::ApplicationConcern
|
|
4
|
+
include Nyauth::ClientConcern
|
|
3
5
|
allow_everyone
|
|
4
6
|
respond_to :html, :json
|
|
5
|
-
before_action :
|
|
7
|
+
before_action :set_client
|
|
6
8
|
|
|
7
9
|
def edit
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
def update
|
|
11
|
-
@
|
|
12
|
-
respond_with(@
|
|
13
|
+
@client.update_new_password(client_params)
|
|
14
|
+
respond_with(@client, location: Nyauth.configuration.redirect_path_after_update_new_password || new_session_path_for(client_name))
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
private
|
|
16
18
|
|
|
17
|
-
def
|
|
18
|
-
@
|
|
19
|
+
def set_client
|
|
20
|
+
@client = client_class.find_by!(new_password_key: params[:new_password_key])
|
|
19
21
|
end
|
|
20
22
|
|
|
21
|
-
def
|
|
22
|
-
params.fetch(
|
|
23
|
+
def client_params
|
|
24
|
+
params.fetch(client_name, {})
|
|
23
25
|
.permit(:password, :password_confirmation)
|
|
24
26
|
end
|
|
25
27
|
end
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
module Nyauth
|
|
2
|
-
class PasswordsController <
|
|
2
|
+
class PasswordsController < ApplicationController
|
|
3
|
+
include Nyauth::ApplicationConcern
|
|
4
|
+
include Nyauth::ClientConcern
|
|
3
5
|
respond_to :html, :json
|
|
4
|
-
before_action :
|
|
6
|
+
before_action :set_client
|
|
5
7
|
|
|
6
8
|
def edit
|
|
7
9
|
end
|
|
8
10
|
|
|
9
11
|
def update
|
|
10
|
-
@
|
|
11
|
-
@
|
|
12
|
-
respond_with(@
|
|
12
|
+
@client.attributes = client_params
|
|
13
|
+
@client.save(context: :update_password)
|
|
14
|
+
respond_with(@client, location: Nyauth.configuration.redirect_path_after_update_password || main_app.root_path)
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
private
|
|
16
18
|
|
|
17
|
-
def
|
|
18
|
-
@
|
|
19
|
+
def set_client
|
|
20
|
+
@client = client_class.find(current_authenticated.id)
|
|
19
21
|
end
|
|
20
22
|
|
|
21
|
-
def
|
|
22
|
-
params.fetch(
|
|
23
|
+
def client_params
|
|
24
|
+
params.fetch(client_name, {})
|
|
23
25
|
.permit(:password, :password_confirmation)
|
|
24
26
|
end
|
|
25
27
|
end
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
module Nyauth
|
|
2
|
-
class RegistrationsController <
|
|
2
|
+
class RegistrationsController < ApplicationController
|
|
3
|
+
include Nyauth::ApplicationConcern
|
|
4
|
+
include Nyauth::ClientConcern
|
|
3
5
|
allow_everyone
|
|
4
6
|
respond_to :html, :json
|
|
5
|
-
before_action :
|
|
7
|
+
before_action :set_client
|
|
6
8
|
|
|
7
9
|
def new
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
def create
|
|
11
|
-
sign_in(@
|
|
12
|
-
respond_with(@
|
|
13
|
+
sign_in(@client) if @client.save
|
|
14
|
+
respond_with(@client, location: Nyauth.configuration.redirect_path_after_registration || main_app.root_path)
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
private
|
|
16
18
|
|
|
17
|
-
def
|
|
18
|
-
@
|
|
19
|
+
def set_client
|
|
20
|
+
@client = client_class.new(client_params)
|
|
19
21
|
end
|
|
20
22
|
|
|
21
|
-
def
|
|
22
|
-
params.fetch(
|
|
23
|
+
def client_params
|
|
24
|
+
params.fetch(client_name, {})
|
|
23
25
|
.permit(:email, :password, :password_confirmation)
|
|
24
26
|
end
|
|
25
27
|
end
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
module Nyauth
|
|
2
|
-
class SessionsController <
|
|
2
|
+
class SessionsController < ApplicationController
|
|
3
|
+
include Nyauth::ApplicationConcern
|
|
4
|
+
include Nyauth::ClientConcern
|
|
3
5
|
allow_everyone only: [:new, :create]
|
|
4
6
|
respond_to :html, :json
|
|
5
7
|
before_action :set_session_service
|
|
@@ -8,13 +10,13 @@ module Nyauth
|
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
def create
|
|
11
|
-
sign_in(@session_service.client) if @session_service.save
|
|
12
|
-
respond_with @session_service, location: root_path
|
|
13
|
+
sign_in(@session_service.client) if @session_service.save(as: client_name)
|
|
14
|
+
respond_with @session_service, location: Nyauth.configuration.redirect_path_after_sign_in || main_app.root_path
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
def destroy
|
|
16
18
|
sign_out
|
|
17
|
-
respond_with @session_service, location:
|
|
19
|
+
respond_with @session_service, location: Nyauth.configuration.redirect_path_after_sign_out || new_session_path
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
private
|
|
@@ -1,11 +1,48 @@
|
|
|
1
1
|
module Nyauth
|
|
2
2
|
module ApplicationHelper
|
|
3
3
|
def method_missing method, *args, &block
|
|
4
|
-
if method =~ /(
|
|
4
|
+
if method =~ /(.+)_path_for\z/
|
|
5
|
+
detect_url_helper($1, *args)
|
|
6
|
+
elsif method =~ /(_url|_path)\z/
|
|
5
7
|
main_app.send(method, *args)
|
|
6
8
|
else
|
|
7
9
|
super
|
|
8
10
|
end
|
|
9
11
|
end
|
|
12
|
+
|
|
13
|
+
# OPTIMEZE: :(
|
|
14
|
+
def detect_url_helper(feature, client_name, *args)
|
|
15
|
+
@__methods ||= Nyauth::Engine.routes.url_helpers.instance_methods + Rails.application.routes.url_helpers.instance_methods
|
|
16
|
+
@__candidates ||= @__methods.reject{|m| m =~ /\A(:?rails_|_)/}.map(&:to_s)
|
|
17
|
+
if client_name.to_sym == :user
|
|
18
|
+
detect_url_helper_for_nyauth(feature, *args)
|
|
19
|
+
else
|
|
20
|
+
detect_url_helper_for_app(feature, client_name, *args)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def detect_url_helper_for_nyauth(feature, *args)
|
|
25
|
+
path = @__candidates.grep(/\A#{feature}_path\z/).first
|
|
26
|
+
return nil unless path
|
|
27
|
+
nyauth.__send__(path, *args)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def detect_url_helper_for_app(feature, client_name, *args)
|
|
31
|
+
if feature =~ /new_(.+)/
|
|
32
|
+
path = @__candidates.grep(/\Anew_#{client_name}_#{$1}_path\z/).first
|
|
33
|
+
else
|
|
34
|
+
path = @__candidates.grep(/\A#{client_name}_#{feature}_path\z/).first
|
|
35
|
+
end
|
|
36
|
+
return nil unless path
|
|
37
|
+
__send__(path, *args)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def root_path
|
|
41
|
+
if main_app.respond_to?(:root_path)
|
|
42
|
+
main_app.__send__(:root_path)
|
|
43
|
+
else
|
|
44
|
+
'/'
|
|
45
|
+
end
|
|
46
|
+
end
|
|
10
47
|
end
|
|
11
48
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Nyauth
|
|
2
|
+
class RequestMailer < ActionMailer::Base
|
|
3
|
+
default from: "from@example.com"
|
|
4
|
+
layout 'nyauth/mailer'
|
|
5
|
+
def request_confirmation(client)
|
|
6
|
+
@client = client
|
|
7
|
+
mail to: client.email
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def request_new_password(client)
|
|
11
|
+
@client = client
|
|
12
|
+
mail to: client.email
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
= form_for(
|
|
1
|
+
= form_for(client_class.new, url: confirmation_requests_path_for(client_name), mehotd: :post, html: { class: 'pure-form' }) do |f|
|
|
2
2
|
fieldset
|
|
3
3
|
legend= t 'nav.confirmation_requests.new'
|
|
4
4
|
= f.text_field(:email, placeholder: :email)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
= form_for(
|
|
1
|
+
= form_for(client_class.new, url: new_password_requests_path_for(client_name), mehotd: :post, html: { class: 'pure-form' }) do |f|
|
|
2
2
|
fieldset
|
|
3
3
|
legend= t 'nav.new_password_requests.new'
|
|
4
4
|
= f.text_field(:email, placeholder: :email)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
= form_for(@
|
|
1
|
+
= form_for(@client, url: new_password_path_for(client_name, params[:new_password_key]), html: { class: 'pure-form pure-form-stacked' }) do |f|
|
|
2
2
|
fieldset
|
|
3
3
|
legend
|
|
4
|
-
- if @
|
|
4
|
+
- if @client.errors.present?
|
|
5
5
|
h2 errors
|
|
6
6
|
ul.errors
|
|
7
|
-
- @
|
|
7
|
+
- @client.errors.full_messages.each do |e|
|
|
8
8
|
li #{e}
|
|
9
9
|
= f.password_field :password, placeholder: :password
|
|
10
10
|
= f.password_field :password_confirmation, placeholder: :confirmation
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
= form_for(@
|
|
1
|
+
= form_for(@client, url: password_path_for(client_name), html: { class: 'pure-form pure-form-stacked' }) do |f|
|
|
2
2
|
fieldset
|
|
3
3
|
legend
|
|
4
|
-
- if @
|
|
4
|
+
- if @client.errors.present?
|
|
5
5
|
h2 errors
|
|
6
6
|
ul.errors
|
|
7
|
-
- @
|
|
7
|
+
- @client.errors.full_messages.each do |e|
|
|
8
8
|
li #{e}
|
|
9
9
|
= f.password_field :password, placeholder: :password
|
|
10
10
|
= f.password_field :password_confirmation, placeholder: :confirmation
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
= form_for @
|
|
1
|
+
= form_for @client, url: registration_path_for(client_name), html: { class: 'pure-form pure-form-stacked' } do |f|
|
|
2
2
|
fieldset
|
|
3
3
|
legend= t 'nav.registrations.new'
|
|
4
|
-
- if @
|
|
4
|
+
- if @client.errors.present?
|
|
5
5
|
h2 errors
|
|
6
6
|
ul.errors
|
|
7
|
-
- @
|
|
7
|
+
- @client.errors.full_messages.each do |e|
|
|
8
8
|
li #{e}
|
|
9
9
|
= f.text_field :email, placeholder: :email
|
|
10
10
|
= f.password_field :password, placeholder: :password
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
= form_for @session_service, url:
|
|
1
|
+
= form_for @session_service, url: session_path_for(client_name), html: { class: 'pure-form' } do |f|
|
|
2
2
|
fieldset
|
|
3
3
|
legend= t 'nav.sessions.new'
|
|
4
4
|
- if @session_service.errors.present?
|
|
@@ -9,7 +9,3 @@
|
|
|
9
9
|
= f.email_field :email, placeholder: :email
|
|
10
10
|
= f.password_field :password, placeholder: :password
|
|
11
11
|
= f.submit 'Sign in', data: { disable_with: '...' }, class: 'pure-button pure-button-primary'
|
|
12
|
-
|
|
13
|
-
ul
|
|
14
|
-
li= link_to 'sign up', new_registration_path
|
|
15
|
-
li= link_to 'request new password', new_new_password_request_path
|
data/config/routes.rb
CHANGED
|
@@ -6,5 +6,5 @@ Nyauth::Engine.routes.draw do
|
|
|
6
6
|
get '/confirmations/:confirmation_key' => 'confirmations#update', as: :confirmation
|
|
7
7
|
resources :new_password_requests, only: %i(new create)
|
|
8
8
|
resources :new_passwords, param: :new_password_key, only: %i(edit update)
|
|
9
|
-
|
|
9
|
+
Nyauth.configuration.setup_redirect_path
|
|
10
10
|
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module Nyauth
|
|
2
|
+
class InstallGenerator < Rails::Generators::Base
|
|
3
|
+
source_root File.expand_path("../templates", __FILE__)
|
|
4
|
+
desc "Creates Nyauth initializer for your application"
|
|
5
|
+
|
|
6
|
+
def copy_initializer
|
|
7
|
+
template "nyauth_install_initializer.rb", "config/initializers/nyauth.rb"
|
|
8
|
+
puts "Install complete"
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Nyauth
|
|
2
|
+
class Configuration
|
|
3
|
+
attr_accessor :redirect_path_block,
|
|
4
|
+
:redirect_path_after_sign_in,
|
|
5
|
+
:redirect_path_after_sign_out,
|
|
6
|
+
:redirect_path_after_registration,
|
|
7
|
+
:redirect_path_after_create_request_confirmation,
|
|
8
|
+
:redirect_path_after_update_confirmation,
|
|
9
|
+
:redirect_path_after_new_password_request,
|
|
10
|
+
:redirect_path_after_update_new_password,
|
|
11
|
+
:redirect_path_after_update_password
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def initialize
|
|
15
|
+
@redirect_path_after_sign_in = nil
|
|
16
|
+
@redirect_path_after_sign_out = nil
|
|
17
|
+
@redirect_path_after_registration = nil
|
|
18
|
+
@redirect_path_after_create_request_confirmation = nil
|
|
19
|
+
@redirect_path_after_update_confirmation = nil
|
|
20
|
+
@redirect_path_after_new_password_request = nil
|
|
21
|
+
@redirect_path_after_update_new_password = nil
|
|
22
|
+
@redirect_path_after_update_password = nil
|
|
23
|
+
@redirect_path_block = Proc.new {}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def redirect_path(&block)
|
|
27
|
+
@redirect_path_block = block
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def setup_redirect_path
|
|
31
|
+
UrlHelper.class_eval do
|
|
32
|
+
include Rails.application.routes.url_helpers
|
|
33
|
+
end
|
|
34
|
+
@redirect_path_block.call(UrlHelper.new)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
class UrlHelper
|
|
39
|
+
end
|
|
40
|
+
end
|
data/lib/nyauth/engine.rb
CHANGED
|
@@ -10,6 +10,8 @@ module Nyauth
|
|
|
10
10
|
class Engine < ::Rails::Engine
|
|
11
11
|
isolate_namespace Nyauth
|
|
12
12
|
|
|
13
|
+
config.nyauth = ActiveSupport::OrderedOptions.new
|
|
14
|
+
config.nyauth.admin = 'admin'
|
|
13
15
|
config.i18n.load_path += Dir[Engine.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
|
|
14
16
|
config.generators do |g|
|
|
15
17
|
g.test_framework :rspec, fixture: false
|
data/lib/nyauth/version.rb
CHANGED
data/lib/nyauth.rb
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
require 'nyauth/engine'
|
|
2
2
|
require 'nyauth/encryptor'
|
|
3
|
+
require 'nyauth/configuration'
|
|
3
4
|
|
|
4
5
|
module Nyauth
|
|
6
|
+
class << self
|
|
7
|
+
attr_accessor :configuration
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.configure
|
|
11
|
+
self.configuration ||= Configuration.new
|
|
12
|
+
yield(configuration)
|
|
13
|
+
end
|
|
5
14
|
end
|
|
15
|
+
Nyauth.configure {}
|