77 lines
2.2 KiB
Ruby
77 lines
2.2 KiB
Ruby
class SessionsController < ApplicationController
|
|
skip_before_action :authenticate, only: [:index, :show, :update, :create, :destroy]
|
|
# Special check for only dashboard
|
|
|
|
def index
|
|
# @employees = Employee.all_emp_except_waiter.order("name asc")
|
|
@employees = Employee.all.where("is_active = true").order("name asc")
|
|
@roles = Employee.distinct.pluck(:role)
|
|
# byebug
|
|
# @roles = Lookup.collection_of("employee_roles")
|
|
@login_form = LoginForm.new()
|
|
render "layouts/login_dashboard", layout: false
|
|
end
|
|
|
|
def show
|
|
@login_form = LoginForm.new()
|
|
@login_form.emp_id = params[:emp_id]
|
|
render "layouts/login", layout: false
|
|
end
|
|
|
|
def update
|
|
@login_form = LoginForm.new()
|
|
@login_form.emp_id = params[:emp_id]
|
|
@login_form.password = params[:login_form][:password]
|
|
@employee = Employee.login(@login_form.emp_id, @login_form.password)
|
|
|
|
if @employee != nil
|
|
session[:session_token] = @employee.token_session
|
|
redirect_to root_path
|
|
else
|
|
flash[:notice] = "Invalid PIN for Employee. Please try again!"
|
|
render :show
|
|
end
|
|
end
|
|
|
|
def create
|
|
@login_form = LoginForm.new(settings_home_params)
|
|
@employee = Employee.login(@login_form.emp_id, @login_form.password)
|
|
|
|
if @employee
|
|
if @employee.is_active
|
|
session[:session_token] = @employee.token_session
|
|
redirect_to root_path
|
|
else
|
|
redirect_to login_path, :notice => "This Employee is not active"
|
|
end
|
|
else
|
|
redirect_to login_path, :notice => "Username and Password doesn't match!"
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
# clear in employee session
|
|
Employee.logout(session[:session_token])
|
|
session[:session_token] = nil
|
|
# redirect_to root_path
|
|
render :json => {:status=> "Success", :url => root_path }.to_json
|
|
end
|
|
|
|
def run_teamviewer
|
|
if File.directory?("/opt/teamviewer")
|
|
output = IO.popen('/opt/teamviewer/tv_bin/script/teamviewer')
|
|
render :json => {:status=> true}
|
|
else
|
|
render :json => {:status=> false}
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
# Never trust parameters from the scary internet, only allow the white list through.
|
|
def settings_home_params
|
|
params.require(:login_form).permit(:emp_id, :password)
|
|
end
|
|
|
|
end
|