blob: 1ce79587bdd3b0859735716fb6c5759cb43ee11e (
plain)
- package LedgerSMB::Scripts::login;
- our $VERSION = 1.0;
- use LedgerSMB::Locale;
- use LedgerSMB::Form; # Required for now to integrate with menu module.
- use LedgerSMB::User;
- use LedgerSMB::Auth;
- use strict;
- sub __default {
- my ($request) = @_;
- my $locale;
- $locale = LedgerSMB::Locale->get_handle(${LedgerSMB::Sysconfig::language})
- or $request->error( __FILE__ . ':' . __LINE__ .
- ": Locale not loaded: $!\n" );
- my $template = LedgerSMB::Template->new(
- user =>$request->{_user},
- locale => $locale,
- path => 'UI',
- template => 'login',
- format => 'HTML'
- );
- $template->render($request);
- }
- sub authenticate {
- my ($request) = @_;
- if (!$request->{dbh}){
- if (!$request->{company}){
- $request->{company} = $LedgerSMB::Sysconfig::default_db;
- }
- $request->_db_init;
- }
- my $path = $ENV{SCRIPT_NAME};
- $path =~ s|[^/]*$||;
- if ($request->{dbh} || $request->{log_out}){
- print "Content-Type: text/html\n";
- print "Set-Cookie: LedgerSMB=Login; path=$path\n";
- print "Status: 200 Success\n\n";
- if ($request->{log_out}){
- exit;
- }
- }
- else {
- print "WWW-Authenticate: Basic realm=\"LedgerSMB\"\n";
- print "Status: 401 Unauthorized\n\n";
- print "Please enter your credentials.\n";
- exit;
- }
- }
- sub login {
- my ($request) = @_;
-
- if (!$request->{_user}){
- __default($request);
- }
- require "scripts/menu.pl";
- LedgerSMB::Scripts::menu::root_doc($request);
- }
- sub logout {
- my ($request) = @_;
- $request->{callback} = "";
- $request->{endsession} = 1;
- LedgerSMB::Auth::session_destroy($request);
- print "Location: login.pl\n";
- print "Content-type: text/html\n\n";
- exit;
- }
-
- 1;
|