2023-03-31 11:52:37 -04:00
|
|
|
# frozen_string_literal: true
|
2022-12-10 01:59:30 -05:00
|
|
|
|
2023-03-31 11:52:37 -04:00
|
|
|
require 'net/ldap'
|
|
|
|
|
|
|
|
class Webdap
|
|
|
|
# Handles /auth routes
|
|
|
|
class AuthController
|
2022-12-10 01:59:30 -05:00
|
|
|
|
2023-03-31 11:52:37 -04:00
|
|
|
get '/login' do
|
|
|
|
erb :'auth/login', locals: {
|
|
|
|
title: 'Login to your account',
|
2022-12-10 18:55:58 -05:00
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2023-03-31 11:52:37 -04:00
|
|
|
post '/login' do
|
|
|
|
ldap = Net::LDAP.new
|
|
|
|
ldap.host = cnf['ldap']['server_url']
|
|
|
|
ldap.port = 389
|
|
|
|
ldap.auth(params[:login_username], params[:login_password])
|
|
|
|
if ldap.bind()
|
|
|
|
session['ldap_uid'] = params[:username]
|
|
|
|
redirect '/account/view'
|
|
|
|
else
|
|
|
|
# Authentication failure
|
|
|
|
erb :'auth/login', locals: {
|
|
|
|
title: 'Login to your account',
|
|
|
|
fail: true,
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
2022-12-10 01:59:30 -05:00
|
|
|
end
|