#!/usr/bin/perl # ###################################################################### # 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); $form->error($locale->text("Invalid Redirect")) unless first {$_ eq $script} @{LedgerSMB::Sysconfig::scripts}; $oldform = $form; require "bin/$script"; $form = new Form($argv); for (@common_attrs){ $form->{$_} = $oldform->{$_}; } if (!$myconfig){ # needed for login %myconfig = %{LedgerSMB::User->fetch_config($form->{login})}; } if (!$form->{dbh}){ $form->db_init(\%myconfig); } &{$form->{action}}; } 1;