Generate token before saving butler.xml
This commit is contained in:
parent
9b53b5d7e8
commit
d9bc49c5d7
@ -3,6 +3,7 @@
|
|||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use v5.10;
|
use v5.10;
|
||||||
|
use Digest::SHA qw(sha1_base64);
|
||||||
use File::Basename;
|
use File::Basename;
|
||||||
|
|
||||||
use ACU::API::Projects;
|
use ACU::API::Projects;
|
||||||
@ -57,7 +58,7 @@ sub check_xml
|
|||||||
else {
|
else {
|
||||||
open $fh, "|xmllint --noout -";
|
open $fh, "|xmllint --noout -";
|
||||||
}
|
}
|
||||||
print $fh $content;
|
print $fh ${ $content };
|
||||||
close $fh;
|
close $fh;
|
||||||
|
|
||||||
return $?;
|
return $?;
|
||||||
@ -134,13 +135,32 @@ sub tag_project
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Check DTD validity
|
# Check DTD validity
|
||||||
if (check_xml($content, "http://acu.epita.fr/dtd/project.dtd")) {
|
if (check_xml(\$content, "http://acu.epita.fr/dtd/project.dtd")) {
|
||||||
log ERROR, "Corrigez les erreurs du fichier project.xml avant de lancer la création du projet.";
|
log ERROR, "Corrigez les erreurs du fichier project.xml avant de lancer la création du projet.";
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO: check user permissions
|
# TODO: check user permissions
|
||||||
|
|
||||||
# Generate token for VCS submission
|
# Generate token for VCS submission
|
||||||
|
my $dom = XML::LibXML->load_xml(string => (\$content));
|
||||||
|
my $mod = 0;
|
||||||
|
for $vcs ($dom->documentElement()->getElementsByTagName("vcs"))
|
||||||
|
{
|
||||||
|
if (! $vcs->hasAttribute("token"))
|
||||||
|
{
|
||||||
|
my $token;
|
||||||
|
do {
|
||||||
|
$token = sha1_base64(rand);
|
||||||
|
$token =~ s/[^a-zA-Z0-9]//g;
|
||||||
|
} while (length $token >= 12);
|
||||||
|
$vcs->setAttribute("token", $token);
|
||||||
|
$mod = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($mod) {
|
||||||
|
$content = $dom->toString();
|
||||||
|
}
|
||||||
|
|
||||||
# Send data to intradata
|
# Send data to intradata
|
||||||
log INFO, "Attente d'un processus de publication...";
|
log INFO, "Attente d'un processus de publication...";
|
||||||
|
Reference in New Issue
Block a user