Archived
1
0
Fork 0
This repository has been archived on 2021-10-08. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
ACU/process/files/intradata_get/defense.pm
2013-10-12 03:05:11 +02:00

58 lines
1.5 KiB
Perl

use v5.10.1;
use strict;
use warnings;
use Carp;
use ACU::LDAP;
sub update_defense
{
my $args = shift;
my $project_id = $args->{param}{id};
my $year = $args->{param}{year} // LDAP::get_year;
if (! $project_id) {
log ERROR, "No project_id given.";
return "No project_id given";
}
my $defense_id = $args->{param}{defense_id};
if (! $defense_id) {
log ERROR, "No defense_id given.";
return "No defense_id given";
}
my $defense;
if (exists $args->{files}{"$defense_id.xml"}) {
$defense = $args->{files}{"$defense_id.xml"};
}
if (! $defense) {
log ERROR, "Invalid $defense_id.xml received!";
return "Invalid $defense_id.xml received!";
}
log INFO, "Update $year/$project_id/defenses/$defense_id.xml";
if (! -e "$main::intradata/$year/$project_id/defenses/") {
mkdir "$main::intradata/$year/$project_id/defenses/";
}
if (! -e "$main::intradata/$year/$project_id/traces/") {
mkdir "$main::intradata/$year/$project_id/traces/";
}
if (! -e "$main::intradata/$year/$project_id/traces/defense_$defense_id/") {
mkdir "$main::intradata/$year/$project_id/traces/defense_$defense_id/";
my ($login, $pass, $uid, $gid) = getpwnam("www-data");
chown $uid, $gid, "$main::intradata/$year/$project_id/traces/defense_$defense_id/";
chmod 0775, "$main::intradata/$year/$project_id/traces/defense_$defense_id/";
}
open my $out, ">", "$main::intradata/$year/$project_id/defenses/$defense_id.xml";
print $out $defense;
close $out;
return "Ok";
}
1;