blob: 2755dee709d7806b02dbb355a8ed738270a0cd4f (
plain)
- ######################################################################
- # LedgerSMB Accounting and ERP
- # http://www.ledgersmb.org/
- #
- # Copyright (C) 2006
- # This work contains copyrighted information from a number of sources all used
- # with permission.
- #
- # This file contains source code included with or based on SQL-Ledger which
- # is Copyright Dieter Simader and DWS Systems Inc. 2000-2005 and licensed
- # under the GNU General Public License version 2 or, at your option, any later
- # version. For a full list including contact information of contributors,
- # maintainers, and copyright holders, see the CONTRIBUTORS file.
- #
- #####################################################################
- #
- # Common script handling routines for menu.pl, admin.pl, login.pl
- #
- #####################################################################
- use LedgerSMB::Sysconfig;
- sub redirect {
- use List::Util qw(first);
- my ( $script, $argv ) = split( /\?/, $form->{callback} );
- my @common_attrs = qw(
- dbh login favicon stylesheet titlebar password custom_db_fields vc
- );
- if ( !$script ) { # http redirect to login.pl if called w/no args
- print "Location: login.pl\n";
- print "Content-type: text/html\n\n";
- exit;
- }
- $form->error(
- $locale->text(
- __FILE__ . ':' . __LINE__ . ':' . $script . ':' . "Invalid Redirect"
- )
- ) unless first { $_ eq $script } @{LedgerSMB::Sysconfig::scripts};
- my %temphash;
- for (@common_attrs) {
- $temphash{$_} = $form->{$_};
- }
- undef $form;
- $form = new Form($argv);
- for (@common_attrs) {
- $form->{$_} = $temphash{$_};
- }
- $form->{script} = $script;
- if ( !%myconfig ) { # needed for login
- %myconfig = %{ LedgerSMB::User->fetch_config( $form->{login} ) };
- }
- if ( !$form->{dbh} and ( $script ne 'admin.pl' ) ) {
- $form->db_init( \%myconfig );
- }
- require "bin/$script";
- &{ $form->{action} };
- }
- 1;
|