completed SMS gateway project
This commit is contained in:
38
app/controllers/admin/sessions_controller.rb
Normal file
38
app/controllers/admin/sessions_controller.rb
Normal file
@@ -0,0 +1,38 @@
|
||||
module Admin
|
||||
class SessionsController < ActionController::Base
|
||||
layout "admin"
|
||||
|
||||
# CSRF protection is enabled by default in ActionController::Base
|
||||
# We need it for the create action but not for the new (GET) action
|
||||
protect_from_forgery with: :exception
|
||||
|
||||
def new
|
||||
redirect_to admin_dashboard_path if current_admin
|
||||
end
|
||||
|
||||
def create
|
||||
admin = AdminUser.find_by(email: params[:email]&.downcase)
|
||||
|
||||
if admin&.authenticate(params[:password])
|
||||
session[:admin_id] = admin.id
|
||||
admin.update_last_login!
|
||||
redirect_to admin_dashboard_path, notice: "Welcome back, #{admin.name}!"
|
||||
else
|
||||
flash.now[:alert] = "Invalid email or password"
|
||||
render :new, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
session.delete(:admin_id)
|
||||
redirect_to admin_login_path, notice: "You have been logged out"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def current_admin
|
||||
@current_admin ||= AdminUser.find_by(id: session[:admin_id]) if session[:admin_id]
|
||||
end
|
||||
helper_method :current_admin
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user