Fix handling of utf-8 chars
[manu/RT-Extension-ImportCustomFieldValues.git] / html / Admin / CustomFields / ImportValues.html
index 9df496f..b6426fb 100644 (file)
 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';
@@ -89,10 +93,10 @@ if ( $ARGS{Cancel} ) {
     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);