epita-std
/
ACU
Archived
1
0
Fork 0

Works on old LWP::UserAgent

This commit is contained in:
Mercier Pierre-Olivier 2013-09-16 06:43:17 +02:00
parent 0e22becfb6
commit 3678b13055
4 changed files with 59 additions and 5 deletions

View File

@ -40,7 +40,11 @@ sub parse($$)
my $sax_handler;
$sax_handler = ResultHandler->new($parsed) if ($mod eq "ResultHandler");
return XML::LibXML->load_xml(string => shift) if ($mod eq "ProjectHandler");
if ($mod eq "ProjectHandler")
{
use ACU::Project;
$sax_handler = ProjectHandler->new($parsed);
}
$sax_handler = ProjectMemberHandler->new($parsed) if ($mod eq "ProjectMemberHandler");
my $parser = XML::SAX::ParserFactory->parser( Handler => $sax_handler );
@ -71,7 +75,10 @@ sub get($$)
my $url = shift;
my $ua = LWP::UserAgent->new;
$ua->ssl_opts(SSL_ca_file => "/etc/ldap/cacert.pem");
# Some old version of LWP::UserAgent doesn't support ssl_opts, this is not required
eval {
$ua->ssl_opts(SSL_ca_file => "/etc/ldap/cacert.pem");
};
log(DEBUG, 'GET Request to ', API_URL, $url);
my $req = GET API_URL . $url;
@ -89,7 +96,10 @@ sub send($$$)
my $url = shift;
my $ua = LWP::UserAgent->new;
$ua->ssl_opts(SSL_ca_file => "/etc/ldap/cacert.pem");
# Some old version of LWP::UserAgent doesn't support ssl_opts, this is not required
eval {
$ua->ssl_opts(SSL_ca_file => "/etc/ldap/cacert.pem");
};
log(DEBUG, 'POST Request to ', API_URL, $url);
my $req = POST API_URL . $url, shift;

View File

@ -21,7 +21,8 @@ my $bindsecret = "";
sub ldap_get_password
{
return Password::get_password "/home/intradmin/.secret_ldap";
return Password::get_password "/home/2014/mercie_d/.secret_ldap";
# return Password::get_password "/home/intradmin/.secret_ldap";
}
our $secret_search = \&ldap_get_password;

View File

@ -21,7 +21,7 @@ sub get_students
if ($#ARGV == -1) {
log(USAGE, "$0 format");
say "format can be csv"
say "format can be csv or login"
}
elsif ($ARGV[0] eq "csv")
{
@ -35,3 +35,9 @@ elsif ($ARGV[0] eq "csv")
say ",Present";
}
}
elsif ($ARGV[0] eq "login")
{
for my $student (get_students $ARGV[1]) {
say $student->get_value("uid");
}
}

View File

@ -42,6 +42,43 @@ if ($ref =~ m<^refs/tags/(.+)$>)
}
log TRACE, $project;
# Extract lot of data
my @rendus = grep {
exists $_->{vcs} and $_->{vcs}{tag} eq $tag;
} @{ $project->{submissions} };
my $date = $ENV{'GL_TS'};
$date =~ s/\./ /;
my $glts = ParseDate($date);
chomp (my $tokengiven = `git cat-file tag $newsha | sed -e '1,/^\$/d'`);
for my $rendu (@rendus)
{
my $open = ParseDate($rendu->{period}{begin});
my $close = ParseDate($rendu->{period}{end});
# TODO: check exceptions by login/group
if ((Date_Cmp($glts, $open) == -1))
{
print "[ACU] Tag not allowed: upload not yet opened!\n";
exit(4);
}
if ((Date_Cmp($glts, $close) == 1))
{
print "[ACU] Tag not allowed: upload closed!\n";
exit(5);
}
my $token = $rendu->{vcs}{token};
if ($token ne "" and $token ne $tokengiven)
{
print "[ACU] Error 0x65cd58: Bad token.\n";
exit(6);
}
}
}
exit 1;