Add validation for project and jobset names
[?]
Apr 17, 2012, 8:53 AM
HQGXL4MXGHICQ3IRRQUR6KQHS2RKVOTDKQ5ZETXHQ56DANR2YADQCDependencies
- [2]
LMETCA7GCleanup - [3]
KG5AMUMGCleanup - [4]
U4TD3AIQAdd support for viewing jobset evaluations - [5]
QTFVCDIFadded hide feature for project/jobset - [6]
3KU4L7L3remove buildonlylatest propery, which was committed by accident - [7]
A52HEFHQ* Allow builds to be restarted (if they failed with a transient error, - [8]
3HZY24CX* Make jobsets viewable under - [9]
ONGLIFOYallow _'s in first character of filenames - [10]
3Y7AFJSS* Support linking to the latest job in a view for a specific platform, e.g. - [11]
AS2OXLRM* Editing releases. - [12]
N45RZUQ6Reduce I/O in build listings by only fetching required columns - [13]
5NO7NCKT* Refactoring. - [14]
RSEGBU6CHydra/20: Jobset clone feature - [15]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [16]
G5ZR3ZVZhydra: put contents links into html, add links to files from contents page - [17]
DE2DNCOIAllow comparing an evaluation with an arbitrary other evaluation - [18]
OOQ2D3KC* Refactoring: move fetchInput out of hydra_scheduler into a separate - [19]
KVPYKWZ7* Allow `-' in project/jobset names. - [20]
TNMOG2ZQIndentation - [21]
FPK5LF53* Put the project-related actions in a separate controller. Put the - [22]
CS7T2XFI - [23]
UMFB2767Hydra/64: Leaving number of builds empty gives DBIx error - [*]
LZO3C2KI* Hack around those SQLite timeouts: just retry the transaction. - [*]
LBNVQXUB* Build the /build stuff in a separate controller.
Change contents
- replacement in src/lib/Hydra/Controller/Jobset.pm at line 224
error($c, "Invalid jobset name: $jobsetName") unless $jobsetName =~ /^[[:alpha:]][\w\-]*$/;error($c, "Invalid jobset name: ‘$jobsetName’") if $jobsetName !~ /^$jobsetNameRE$/; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 301
my $newjobsetName = trim $c->request->params->{"newjobset"};error($c, "Invalid jobset name: $newjobsetName") unless $newjobsetName =~ /^[[:alpha:]][\w\-]*$/;my $newJobsetName = trim $c->request->params->{"newjobset"};error($c, "Invalid jobset name: $newJobsetName") unless $newJobsetName =~ /^[[:alpha:]][\w\-]*$/; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 304
my $newjobset;my $newJobset; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 306
$newjobset = $jobset->project->jobsets->create({ name => $newjobsetName$newJobset = $jobset->project->jobsets->create({ name => $newJobsetName - replacement in src/lib/Hydra/Controller/Jobset.pm at line 317
my $newinput = $newjobset->jobsetinputs->create({name => $input->name, type => $input->type});my $newinput = $newJobset->jobsetinputs->create({name => $input->name, type => $input->type}); - replacement in src/lib/Hydra/Controller/Jobset.pm at line 324
$c->res->redirect($c->uri_for($c->controller('Jobset')->action_for("edit"), [$jobset->project->name, $newjobsetName]));$c->res->redirect($c->uri_for($c->controller('Jobset')->action_for("edit"), [$jobset->project->name, $newJobsetName])); - replacement in src/lib/Hydra/Controller/JobsetEval.pm at line 35
if (defined $compare && $compare =~ /^\d+$/) {$eval2 = $c->model('DB::JobsetEvals')->find($compare)or notFound($c, "Evaluation $compare doesn't exist.");} elsif (defined $compare && $compare =~ /^($jobNameRE)$/) {my $j = $c->stash->{project}->jobsets->find({name => $compare})or notFound($c, "Jobset $compare doesn't exist.");$eval2 = getLatestFinishedEval($c, $j);if (defined $compare) {if ($compare =~ /^\d+$/) {$eval2 = $c->model('DB::JobsetEvals')->find($compare)or notFound($c, "Evaluation $compare doesn't exist.");} elsif (defined $compare && $compare =~ /^($jobsetNameRE)$/) {my $j = $c->stash->{project}->jobsets->find({name => $compare})or notFound($c, "Jobset $compare doesn't exist.");$eval2 = getLatestFinishedEval($c, $j);} else {notFound($c, "Unknown comparison source ‘$compare’.");} - edit in src/lib/Hydra/Controller/Project.pm at line 122
error($c, "Invalid project name: ‘$projectName’") if $projectName !~ /^$projectNameRE$/; - edit in src/lib/Hydra/Controller/Project.pm at line 156
error($c, "Invalid jobset name: ‘$jobsetName’") if $jobsetName !~ /^$jobsetNameRE$/; - replacement in src/lib/Hydra/Controller/Project.pm at line 175
error($c, "Invalid project name: " . ($projectName || "(empty)")) unless $projectName =~ /^[[:alpha:]][\w\-]*$/;error($c, "Invalid project name: ‘$projectName’") if $projectName !~ /^$projectNameRE$/; - replacement in src/lib/Hydra/Helper/CatalystUtils.pm at line 16
$pathCompRE $relPathRE $relNameRE $jobNameRE $systemRE$pathCompRE $relPathRE $relNameRE $projectNameRE $jobsetNameRE $jobNameRE $systemRE - replacement in src/lib/Hydra/Helper/CatalystUtils.pm at line 184
Readonly our $pathCompRE => "(?:[A-Za-z0-9-\+\._][A-Za-z0-9-\+\._]*)";Readonly our $relPathRE => "(?:$pathCompRE(?:/$pathCompRE)*)";Readonly our $relNameRE => "(?:[A-Za-z0-9-][A-Za-z0-9-\.]*)";Readonly our $attrNameRE => "(?:[A-Za-z_][A-Za-z0-9_]*)";Readonly our $jobNameRE => "(?:$attrNameRE(?:\\.$attrNameRE)*)";Readonly our $systemRE => "(?:[a-z0-9_]+-[a-z0-9_]+)";Readonly our $pathCompRE => "(?:[A-Za-z0-9-\+\._][A-Za-z0-9-\+\._]*)";Readonly our $relPathRE => "(?:$pathCompRE(?:/$pathCompRE)*)";Readonly our $relNameRE => "(?:[A-Za-z0-9-][A-Za-z0-9-\.]*)";Readonly our $attrNameRE => "(?:[A-Za-z_][A-Za-z0-9_]*)";Readonly our $projectNameRE => "(?:[A-Za-z_][A-Za-z0-9-_]*)";Readonly our $jobsetNameRE => "(?:[A-Za-z_][A-Za-z0-9-_]*)";Readonly our $jobNameRE => "(?:$attrNameRE(?:\\.$attrNameRE)*)";Readonly our $systemRE => "(?:[a-z0-9_]+-[a-z0-9_]+)";