my ($title, @results, $values);
my $CustomField = RT::CustomField->new( $session{'CurrentUser'} );
unless ( $CustomField->Load( $id ) ) {
- Abort("CustomField not found");
+ Abort(loc("CustomField not found"));
+}
+unless ( $session{CurrentUser}->HasRight( Right => 'AdminCustomFieldValues', Object => $CustomField )
+ || $session{CurrentUser}->HasRight( Right => 'AdminCustomField', Object => $CustomField ) ) {
+ Abort(loc("No permissions to edit this customfield values"));
}
$title = loc( 'Importing values for CustomField [_1]', $CustomField->Name );
my $name = 'Import-'. $CustomField->Id . '-Values';
push @results, "Importing ". $filename;
my $fh = $cgi_object->upload($name);
if ( $fh ) {
- binmode($fh);
+ binmode($fh, ":utf8");
require Text::CSV;
- my $csv = Text::CSV->new ({ strict => 1, sep_char => ";", });
+ my $csv = Text::CSV->new ({ binary => 1, strict => 1, sep_char => ";", });
$values = $csv->csv (in => $fh, headers => [qw(SortOrder Name Description Category)], encoding => 'UTF-8', );
unless ( $values && ref($values) eq 'ARRAY' ) {
push @results, loc("[_1]: Wrong file format", $filename);