Actually validate project labels.
This commit is contained in:
parent
51ca50ec36
commit
d32e17df91
@ -44,4 +44,19 @@ License:GPL = Applications with GPL license
|
|||||||
'widget' => 'Pluf_Form_Widget_TextareaInput',
|
'widget' => 'Pluf_Form_Widget_TextareaInput',
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function clean_project_labels()
|
||||||
|
{
|
||||||
|
$labels = preg_split("/\s*\n\s*/", $this->cleaned_data['project_labels'], -1, PREG_SPLIT_NO_EMPTY);
|
||||||
|
for ($i=0; $i<count($labels); ++$i) {
|
||||||
|
$labels[$i] = trim($labels[$i]);
|
||||||
|
if (!preg_match('/^[\w-]+(:[\w-]+)?(\s*=\s*[^=]+)?$/', $labels[$i])) {
|
||||||
|
throw new Pluf_Form_Invalid(sprintf(
|
||||||
|
__('The label "%s" is invalid: A label must only consist of alphanumeric '.
|
||||||
|
'characters and dashes, and can optionally contain a ":" with a group prefix.'),
|
||||||
|
$labels[$i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return implode("\n", $labels);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user