action_auth 0.1.0 → 0.1.1
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/MIT-LICENSE +0 -0
- data/README.md +18 -11
- data/Rakefile +0 -0
- data/app/assets/config/action_auth_manifest.js +0 -0
- data/app/assets/stylesheets/action_auth/application.css +0 -0
- data/app/controllers/action_auth/application_controller.rb +0 -0
- data/app/controllers/action_auth/passwords_controller.rb +26 -0
- data/app/controllers/action_auth/registrations_controller.rb +30 -0
- data/app/controllers/action_auth/sessions_controller.rb +27 -0
- data/app/helpers/action_auth/application_helper.rb +0 -0
- data/app/jobs/action_auth/application_job.rb +0 -0
- data/app/mailers/action_auth/application_mailer.rb +0 -0
- data/app/mailers/action_auth/user_mailer.rb +17 -0
- data/app/models/action_auth/application_record.rb +0 -0
- data/app/models/action_auth/current.rb +12 -0
- data/app/models/action_auth/session.rb +10 -0
- data/app/models/action_auth/user.rb +30 -0
- data/app/views/action_auth/passwords/edit.html.erb +43 -0
- data/app/views/action_auth/registrations/new.html.erb +35 -0
- data/app/views/action_auth/sessions/index.html.erb +29 -0
- data/app/views/action_auth/sessions/new.html.erb +30 -0
- data/app/views/action_auth/user_mailer/email_verification.html.erb +11 -0
- data/app/views/action_auth/user_mailer/email_verification.text.erb +3 -0
- data/app/views/action_auth/user_mailer/password_reset.html.erb +11 -0
- data/app/views/action_auth/user_mailer/password_reset.text.erb +3 -0
- data/app/views/layouts/action_auth/application.html.erb +0 -0
- data/app/views/layouts/action_auth/mailer.html.erb +13 -0
- data/app/views/layouts/action_auth/mailer.text.erb +1 -0
- data/config/routes.rb +6 -0
- data/db/migrate/20231107165548_create_action_auth_users.rb +12 -0
- data/db/migrate/20231107170349_create_action_auth_sessions.rb +11 -0
- data/lib/action_auth/controllers/helpers.rb +29 -0
- data/lib/action_auth/engine.rb +15 -0
- data/lib/action_auth/routing/helpers.rb +21 -0
- data/lib/action_auth/version.rb +1 -1
- data/lib/action_auth.rb +2 -1
- data/lib/tasks/action_auth_tasks.rake +0 -0
- metadata +37 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45ce58405d5a45e6c9bf204378b2d187b468285401d889fe9e8323ce9649e345
|
4
|
+
data.tar.gz: 1e94b9b8e23d211d93ce96f8ff1e4ea1f6b816ca0ed9de8144b72a03273a7de7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 889f0be20c9e05507bfa12035ce2c06254b751161191bf3e1ae99eaba39643bbbb7b995a94b74dc4ba6453350e8201ae5265f938caaf50a85a149eae975e9a30
|
7
|
+
data.tar.gz: caecc465fce527d29225ab23ef7cc33c6cd992496864e5a224ab426a3a81378c2290a020b83dff6053c2f159d4bf9d8c579b9033ab48db8990b4796bacd024ab
|
data/MIT-LICENSE
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -5,21 +5,28 @@ This is a placeholder for the ActionAuth gem. It is not yet ready for use.
|
|
5
5
|
Add this line to your application's Gemfile:
|
6
6
|
|
7
7
|
```ruby
|
8
|
-
|
8
|
+
bundle add action_auth
|
9
|
+
bin/rails action_auth:install:migrations
|
9
10
|
```
|
11
|
+
## Usage
|
10
12
|
|
11
|
-
|
12
|
-
```bash
|
13
|
-
$ bundle
|
14
|
-
```
|
13
|
+
### Routes
|
15
14
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
Within your application, you'll have access to these routes. They have been styled to be consistent with Devise.
|
16
|
+
|
17
|
+
Method Verb Params Description
|
18
|
+
user_sessions_path GET Device session management
|
19
|
+
user_session_path DELETE [:id] Log Out
|
20
|
+
new_user_session_path GET Log in
|
21
|
+
new_user_registration_path GET Sign Up
|
22
|
+
|
23
|
+
### Helper Methods
|
24
|
+
|
25
|
+
Method Description
|
26
|
+
current_user Returns the currently logged in user
|
27
|
+
user_signed_in? Returns true if the user is logged in
|
28
|
+
current_session Returns the current session
|
20
29
|
|
21
|
-
## Contributing
|
22
|
-
Contribution directions go here.
|
23
30
|
|
24
31
|
## License
|
25
32
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module ActionAuth
|
2
|
+
class PasswordsController < ApplicationController
|
3
|
+
before_action :set_user
|
4
|
+
|
5
|
+
def edit
|
6
|
+
end
|
7
|
+
|
8
|
+
def update
|
9
|
+
if @user.update(user_params)
|
10
|
+
redirect_to root_path, notice: "Your password has been changed"
|
11
|
+
else
|
12
|
+
render :edit, status: :unprocessable_entity
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def set_user
|
19
|
+
@user = Current.user
|
20
|
+
end
|
21
|
+
|
22
|
+
def user_params
|
23
|
+
params.permit(:password, :password_confirmation, :password_challenge).with_defaults(password_challenge: "")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module ActionAuth
|
2
|
+
class RegistrationsController < ApplicationController
|
3
|
+
def new
|
4
|
+
@user = User.new
|
5
|
+
end
|
6
|
+
|
7
|
+
def create
|
8
|
+
@user = User.new(user_params)
|
9
|
+
|
10
|
+
if @user.save!
|
11
|
+
session_record = @user.action_auth_sessions.create!
|
12
|
+
cookies.signed.permanent[:session_token] = { value: session_record.id, httponly: true }
|
13
|
+
|
14
|
+
send_email_verification
|
15
|
+
redirect_to main_app.root_path, notice: "Welcome! You have signed up successfully"
|
16
|
+
else
|
17
|
+
render :new, status: :unprocessable_entity
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def user_params
|
23
|
+
params.permit(:email, :password, :password_confirmation)
|
24
|
+
end
|
25
|
+
|
26
|
+
def send_email_verification
|
27
|
+
UserMailer.with(user: @user).email_verification.deliver_later
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module ActionAuth
|
2
|
+
class SessionsController < ApplicationController
|
3
|
+
before_action :set_current_request_details
|
4
|
+
def index
|
5
|
+
@sessions = Current.user.action_auth_sessions.order(created_at: :desc)
|
6
|
+
end
|
7
|
+
|
8
|
+
def new
|
9
|
+
end
|
10
|
+
|
11
|
+
def create
|
12
|
+
if user = User.authenticate_by(email: params[:email], password: params[:password])
|
13
|
+
@session = user.action_auth_sessions.create
|
14
|
+
cookies.signed.permanent[:session_token] = { value: @session.id, httponly: true }
|
15
|
+
redirect_to main_app.root_path, notice: "Signed in successfully"
|
16
|
+
else
|
17
|
+
redirect_to sign_in_path(email_hint: params[:email]), alert: "That email or password is incorrect"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def destroy
|
22
|
+
session = Current.user.action_auth_sessions.find(params[:id])
|
23
|
+
session.destroy
|
24
|
+
redirect_to(main_app.root_path, notice: "That session has been logged out")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ActionAuth
|
2
|
+
class UserMailer < ApplicationMailer
|
3
|
+
def password_reset
|
4
|
+
@user = params[:user]
|
5
|
+
@signed_id = @user.generate_token_for(:password_reset)
|
6
|
+
|
7
|
+
mail to: @user.email, subject: "Reset your password"
|
8
|
+
end
|
9
|
+
|
10
|
+
def email_verification
|
11
|
+
@user = params[:user]
|
12
|
+
@signed_id = @user.generate_token_for(:email_verification)
|
13
|
+
|
14
|
+
mail to: @user.email, subject: "Verify your email"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
File without changes
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module ActionAuth
|
2
|
+
class Session < ApplicationRecord
|
3
|
+
belongs_to :action_auth_user, class_name: "ActionAuth::User", foreign_key: "action_auth_user_id"
|
4
|
+
|
5
|
+
before_create do
|
6
|
+
self.user_agent = Current.user_agent
|
7
|
+
self.ip_address = Current.ip_address
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module ActionAuth
|
2
|
+
class User < ApplicationRecord
|
3
|
+
has_secure_password
|
4
|
+
|
5
|
+
generates_token_for :email_verification, expires_in: 2.days do
|
6
|
+
email
|
7
|
+
end
|
8
|
+
|
9
|
+
generates_token_for :password_reset, expires_in: 20.minutes do
|
10
|
+
password_salt.last(10)
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
has_many :action_auth_sessions, dependent: :destroy, class_name: "ActionAuth::Session", foreign_key: "action_auth_user_id"
|
15
|
+
|
16
|
+
validates :email, presence: true, uniqueness: true, format: { with: URI::MailTo::EMAIL_REGEXP }
|
17
|
+
validates :password, allow_nil: true, length: { minimum: 12 }
|
18
|
+
|
19
|
+
normalizes :email, with: -> email { email.strip.downcase }
|
20
|
+
|
21
|
+
|
22
|
+
before_validation if: :email_changed?, on: :update do
|
23
|
+
self.verified = false
|
24
|
+
end
|
25
|
+
|
26
|
+
after_update if: :password_digest_previously_changed? do
|
27
|
+
action_auth_sessions.where.not(id: Current.session).delete_all
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<p style="color: red"><%= alert %></p>
|
2
|
+
|
3
|
+
<h1>Change your password</h1>
|
4
|
+
|
5
|
+
<%= form_with(url: password_path, method: :patch) do |form| %>
|
6
|
+
<% if @user.errors.any? %>
|
7
|
+
<div style="color: red">
|
8
|
+
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
|
9
|
+
|
10
|
+
<ul>
|
11
|
+
<% @user.errors.each do |error| %>
|
12
|
+
<li><%= error.full_message %></li>
|
13
|
+
<% end %>
|
14
|
+
</ul>
|
15
|
+
</div>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<div>
|
19
|
+
<%= form.label :password_challenge, style: "display: block" %>
|
20
|
+
<%= form.password_field :password_challenge, required: true, autofocus: true, autocomplete: "current-password" %>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<div>
|
24
|
+
<%= form.label :password, "New password", style: "display: block" %>
|
25
|
+
<%= form.password_field :password, required: true, autocomplete: "new-password" %>
|
26
|
+
<div>12 characters minimum.</div>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div>
|
30
|
+
<%= form.label :password_confirmation, "Confirm new password", style: "display: block" %>
|
31
|
+
<%= form.password_field :password_confirmation, required: true, autocomplete: "new-password" %>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<div>
|
35
|
+
<%= form.submit "Save changes" %>
|
36
|
+
</div>
|
37
|
+
<% end %>
|
38
|
+
|
39
|
+
<br>
|
40
|
+
|
41
|
+
<div>
|
42
|
+
<%= link_to "Back", root_path %>
|
43
|
+
</div>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<h1>Sign up</h1>
|
2
|
+
|
3
|
+
<%= form_with(url: sign_up_path) do |form| %>
|
4
|
+
<% if @user.errors.any? %>
|
5
|
+
<div style="color: red">
|
6
|
+
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
|
7
|
+
|
8
|
+
<ul>
|
9
|
+
<% @user.errors.each do |error| %>
|
10
|
+
<li><%= error.full_message %></li>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
13
|
+
</div>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<div>
|
17
|
+
<%= form.label :email, style: "display: block" %>
|
18
|
+
<%= form.email_field :email, value: @user.email, required: true, autofocus: true, autocomplete: "email" %>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div>
|
22
|
+
<%= form.label :password, style: "display: block" %>
|
23
|
+
<%= form.password_field :password, required: true, autocomplete: "new-password" %>
|
24
|
+
<div>12 characters minimum.</div>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<div>
|
28
|
+
<%= form.label :password_confirmation, style: "display: block" %>
|
29
|
+
<%= form.password_field :password_confirmation, required: true, autocomplete: "new-password" %>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div>
|
33
|
+
<%= form.submit "Sign up" %>
|
34
|
+
</div>
|
35
|
+
<% end %>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<p style="color: green"><%= notice %></p>
|
2
|
+
|
3
|
+
<h1>Devices & Sessions</h1>
|
4
|
+
|
5
|
+
<div id="sessions">
|
6
|
+
<% @sessions.each do |session| %>
|
7
|
+
<div id="<%= dom_id session %>">
|
8
|
+
<p>
|
9
|
+
<strong>User Agent:</strong>
|
10
|
+
<%= session.user_agent %>
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<strong>Ip Address:</strong>
|
15
|
+
<%= session.ip_address %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
<strong>Created at:</strong>
|
20
|
+
<%= session.created_at %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
</div>
|
24
|
+
<p>
|
25
|
+
<%= button_to "Log out", session, method: :delete %>
|
26
|
+
</p>
|
27
|
+
<% end %>
|
28
|
+
</div>
|
29
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<p style="color: green"><%= notice %></p>
|
2
|
+
<p style="color: red"><%= alert %></p>
|
3
|
+
|
4
|
+
<h1>Sign in</h1>
|
5
|
+
|
6
|
+
<%= form_with(url: sign_in_path) do |form| %>
|
7
|
+
<div>
|
8
|
+
<%= form.label :email, style: "display: block" %>
|
9
|
+
<%= form.email_field :email, value: params[:email_hint], required: true, autofocus: true, autocomplete: "email" %>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<div>
|
13
|
+
<%= form.label :password, style: "display: block" %>
|
14
|
+
<%= form.password_field :password, required: true, autocomplete: "current-password" %>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div>
|
18
|
+
<%= form.submit "Sign in" %>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<br>
|
23
|
+
|
24
|
+
|
25
|
+
<br>
|
26
|
+
|
27
|
+
<div>
|
28
|
+
<%= link_to "Sign up", sign_up_path %> |
|
29
|
+
<%# link_to "Forgot your password?", new_identity_password_reset_path %>
|
30
|
+
</div>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<p>Hey there,</p>
|
2
|
+
|
3
|
+
<p>This is to confirm that <%= @user.email %> is the email you want to use on your account. If you ever lose your password, that's where we'll email a reset link.</p>
|
4
|
+
|
5
|
+
<p><strong>You must hit the link below to confirm that you received this email.</strong></p>
|
6
|
+
|
7
|
+
<p><%# link_to "Yes, use this email for my account", identity_email_verification_url(sid: @signed_id) %></p>
|
8
|
+
|
9
|
+
<hr>
|
10
|
+
|
11
|
+
<p>Have questions or need help? Just reply to this email and our support team will help you sort it out.</p>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<p>Hey there,</p>
|
2
|
+
|
3
|
+
<p>Can't remember your password for <strong><%= @user.email %></strong>? That's OK, it happens. Just hit the link below to set a new one.</p>
|
4
|
+
|
5
|
+
<p><%# link_to "Reset my password", edit_identity_password_reset_url(sid: @signed_id) %></p>
|
6
|
+
|
7
|
+
<p>If you did not request a password reset you can safely ignore this email, it expires in 20 minutes. Only someone with access to this email account can reset your password.</p>
|
8
|
+
|
9
|
+
<hr>
|
10
|
+
|
11
|
+
<p>Have questions or need help? Just reply to this email and our support team will help you sort it out.</p>
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= yield %>
|
data/config/routes.rb
CHANGED
@@ -1,2 +1,8 @@
|
|
1
1
|
ActionAuth::Engine.routes.draw do
|
2
|
+
get "sign_in", to: "sessions#new"
|
3
|
+
post "sign_in", to: "sessions#create"
|
4
|
+
get "sign_up", to: "registrations#new"
|
5
|
+
post "sign_up", to: "registrations#create"
|
6
|
+
resources :sessions, only: [:index, :show, :destroy]
|
7
|
+
resource :password, only: [:edit, :update]
|
2
8
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class CreateActionAuthUsers < ActiveRecord::Migration[7.1]
|
2
|
+
def change
|
3
|
+
create_table :action_auth_users do |t|
|
4
|
+
t.string :email
|
5
|
+
t.string :password_digest
|
6
|
+
t.boolean :verified
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
add_index :action_auth_users, :email, unique: true
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class CreateActionAuthSessions < ActiveRecord::Migration[7.1]
|
2
|
+
def change
|
3
|
+
create_table :action_auth_sessions do |t|
|
4
|
+
t.references :action_auth_user, null: false, foreign_key: true
|
5
|
+
t.string :user_agent
|
6
|
+
t.string :ip_address
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module ActionAuth
|
2
|
+
module Controllers
|
3
|
+
module Helpers
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
before_action :set_current_request_details
|
8
|
+
|
9
|
+
def current_user; Current.user; end
|
10
|
+
helper_method :current_user
|
11
|
+
|
12
|
+
def current_session; Current.session; end
|
13
|
+
helper_method :current_session
|
14
|
+
|
15
|
+
def user_signed_in?; Current.user.present?; end
|
16
|
+
helper_method :user_signed_in?
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def set_current_request_details
|
23
|
+
Current.session = Session.find_by(id: cookies.signed[:session_token])
|
24
|
+
Current.user_agent = request.user_agent
|
25
|
+
Current.ip_address = request.ip
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/action_auth/engine.rb
CHANGED
@@ -1,5 +1,20 @@
|
|
1
|
+
require 'action_auth/controllers/helpers'
|
2
|
+
require 'action_auth/routing/helpers'
|
3
|
+
|
1
4
|
module ActionAuth
|
2
5
|
class Engine < ::Rails::Engine
|
3
6
|
isolate_namespace ActionAuth
|
7
|
+
|
8
|
+
ActiveSupport.on_load(:action_controller_base) do
|
9
|
+
include ActionAuth::Controllers::Helpers
|
10
|
+
include ActionAuth::Routing::Helpers
|
11
|
+
end
|
12
|
+
|
13
|
+
initializer 'action_auth.add_helpers' do |app|
|
14
|
+
ActiveSupport.on_load :action_controller_base do
|
15
|
+
helper_method :user_sessions_path, :user_session_path, :new_user_session_path
|
16
|
+
helper_method :new_user_registration_path
|
17
|
+
end
|
18
|
+
end
|
4
19
|
end
|
5
20
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module ActionAuth
|
2
|
+
module Routing
|
3
|
+
module Helpers
|
4
|
+
def user_sessions_path
|
5
|
+
action_auth.sessions_path
|
6
|
+
end
|
7
|
+
|
8
|
+
def user_session_path(session_id)
|
9
|
+
action_auth.session_path(session_id)
|
10
|
+
end
|
11
|
+
|
12
|
+
def new_user_session_path
|
13
|
+
action_auth.sign_in_path
|
14
|
+
end
|
15
|
+
|
16
|
+
def new_user_registration_path
|
17
|
+
action_auth.sign_up_path
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/action_auth/version.rb
CHANGED
data/lib/action_auth.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: action_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Kimura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '7.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bcrypt
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.1.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.1.0
|
27
41
|
description: Using the built in features of Rails, ActionAuth provides a simple way
|
28
42
|
to authorize users to perform actions on your application.
|
29
43
|
email:
|
@@ -38,14 +52,35 @@ files:
|
|
38
52
|
- app/assets/config/action_auth_manifest.js
|
39
53
|
- app/assets/stylesheets/action_auth/application.css
|
40
54
|
- app/controllers/action_auth/application_controller.rb
|
55
|
+
- app/controllers/action_auth/passwords_controller.rb
|
56
|
+
- app/controllers/action_auth/registrations_controller.rb
|
57
|
+
- app/controllers/action_auth/sessions_controller.rb
|
41
58
|
- app/helpers/action_auth/application_helper.rb
|
42
59
|
- app/jobs/action_auth/application_job.rb
|
43
60
|
- app/mailers/action_auth/application_mailer.rb
|
61
|
+
- app/mailers/action_auth/user_mailer.rb
|
44
62
|
- app/models/action_auth/application_record.rb
|
63
|
+
- app/models/action_auth/current.rb
|
64
|
+
- app/models/action_auth/session.rb
|
65
|
+
- app/models/action_auth/user.rb
|
66
|
+
- app/views/action_auth/passwords/edit.html.erb
|
67
|
+
- app/views/action_auth/registrations/new.html.erb
|
68
|
+
- app/views/action_auth/sessions/index.html.erb
|
69
|
+
- app/views/action_auth/sessions/new.html.erb
|
70
|
+
- app/views/action_auth/user_mailer/email_verification.html.erb
|
71
|
+
- app/views/action_auth/user_mailer/email_verification.text.erb
|
72
|
+
- app/views/action_auth/user_mailer/password_reset.html.erb
|
73
|
+
- app/views/action_auth/user_mailer/password_reset.text.erb
|
45
74
|
- app/views/layouts/action_auth/application.html.erb
|
75
|
+
- app/views/layouts/action_auth/mailer.html.erb
|
76
|
+
- app/views/layouts/action_auth/mailer.text.erb
|
46
77
|
- config/routes.rb
|
78
|
+
- db/migrate/20231107165548_create_action_auth_users.rb
|
79
|
+
- db/migrate/20231107170349_create_action_auth_sessions.rb
|
47
80
|
- lib/action_auth.rb
|
81
|
+
- lib/action_auth/controllers/helpers.rb
|
48
82
|
- lib/action_auth/engine.rb
|
83
|
+
- lib/action_auth/routing/helpers.rb
|
49
84
|
- lib/action_auth/version.rb
|
50
85
|
- lib/tasks/action_auth_tasks.rake
|
51
86
|
homepage: https://www.github.com/kobaltz/action_auth
|