Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require './ldapauthenticator'
- require 'sinatra'
- #configuring sinatra to have sessions
- enable :sessions
- # helpers
- #
- class Object
- def nil_or_empty?
- if self.nil? or self.empty?
- return true
- end
- return false
- end
- end
- # Setup LDAP
- ldap_connection = { :host => "alouette.com",
- :port => "3269",
- :base => "dc=alouette, dc=com"}
- LDAPAuthenticator.set_base_connection ldap_connection
- # define login things
- helpers do
- def authorize!
- redirect to('/login') unless authorized?
- end
- def authorized?
- !session[:username].nil_or_empty?
- end
- end
- # Now bring me an application
- get '/' do
- authorize!
- return "logged in as : #{session[:username]}"
- end
- get '/login' do
- erb :login
- end
- post '/login' do
- username = params[:username]
- password = params[:password]
- auth = false
- errors = []
- # Testing parameters
- if username.nil_or_empty?
- errors.push "No username provided"
- end
- if password.nil_or_empty?
- errors.push "No password provided"
- end
- # If parameters are ok authenticate to ldap
- if errors.length==0
- auth = LDAPAuthenticator.authenticate(username,password)
- end
- if auth
- session[:username] ="#{username}"
- session[:password]= "#{password}"
- redirect to('/')
- else
- errors.push LDAPAuthenticator.conn.get_operation_result.message
- return errors.to_s
- end
- end
- get '/logout' do
- session[:username] = nil
- session[:password] = nil
- end
Add Comment
Please, Sign In to add comment