Revision 3 (by dpavlin, 2007/04/15 23:39:32) split configuration into YAML file
#!/usr/bin/perl

use strict;
use warnings;
use CGI;
use CGI::Carp 'fatalsToBrowser';

use Data::Dump qw/dump/;
use YAML::Syck;

$| = 1;

my $config_file = $0;
$config_file =~ s/\.cgi$/.yaml/;
my $config = LoadFile( $config_file ) or die "can't open $config_file: $!";

my $espi_hook = {
#	'authenticate-user' => 'ACCESS GRANTED ADMIN',
#	'authenticate-user' => 'ACCESS GRANTED',
	'authenticate-user' => sub {
		my $param = shift;
		warn "param = ",dump( $param );
		my $ret = 'ACCESS GRANTED';
		$ret .= ' ADMIN' if defined( $config->{admins}->{ $param->{uid} } ) && $config->{admins}->{ $param->{uid} } eq $param->{pwd};
		return $ret;
	}
};

my $cgi = new CGI;

print $cgi->header();

my $v = $cgi->Vars;

warn dump( $v );

my $hook = $v->{espi_hook} || die "no espi_hook?";

die "can't find hook for $hook" unless defined( $espi_hook->{ $hook } );

if ( ref( $espi_hook->{ $hook } ) eq 'CODE' ) {
	print $espi_hook->{ $hook }->( $v );
} else {
	print $espi_hook->{ $hook }
};
print "\n";