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
         
     |