| 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";