Sha256: 89bafad11bc47d2184630a2958341d74b11c2e54e00269dbcf37c39782d227c1
Contents?: true
Size: 1.92 KB
Versions: 2
Compression:
Stored size: 1.92 KB
Contents
# frozen_string_literal: true module Aikotoba class SessionsController < ApplicationController include Authenticatable def new return redirect_to after_sign_in_path if aikotoba_current_account @account = build_account({email: "", password: ""}) end def create @account = authenticate_account(session_params.to_h.symbolize_keys) if @account before_sign_in_process aikotoba_sign_in(@account) after_sign_in_process redirect_to after_sign_in_path, notice: successed_message else failed_sign_in_process @account = build_account({email: "", password: ""}) flash[:alert] = failed_message render :new, status: :unprocessable_entity end end def destroy aikotoba_sign_out if aikotoba_current_account redirect_to after_sign_out_path, notice: signed_out_message end private def session_params params.require(:account).permit(:email, :password) end def build_account(params) Account.build_by(attributes: params) end def authenticate_account(params) Account.authenticate_by(attributes: params) end def after_sign_in_path Aikotoba.after_sign_in_path end def after_sign_out_path Aikotoba.after_sign_out_path end def successed_message I18n.t(".aikotoba.messages.authentication.success") end def failed_message I18n.t(".aikotoba.messages.authentication.failed") end def signed_out_message I18n.t(".aikotoba.messages.authentication.sign_out") end # NOTE: Methods to override if you want to do something before sign in. def before_sign_in_process end # NOTE: Methods to override if you want to do something after sign in. def after_sign_in_process end # NOTE: Methods to override if you want to do something failed sign in. def failed_sign_in_process(e = nil) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
aikotoba-0.1.1 | app/controllers/aikotoba/sessions_controller.rb |
aikotoba-0.1.0 | app/controllers/aikotoba/sessions_controller.rb |