Hi,

I created two new issues (feature requests):

https://github.com/DSpace/DSpace/issues/9177 <https://github.com/DSpace/DSpace/issues/9177>

https://github.com/DSpace/DSpace/issues/9178

Feel free to add your comments and ideas.

Best regards
Franziska


Am 08.11.2023 um 12:45 schrieb Max Nuding:
Hi Franziska,

for 1), in UploadValidation.java in "validate" right above "return errors":

var bundles = itemService.getBundles(obj.getItem(), "ORIGINAL");
if (!bundles.isEmpty()) {
  var bundle = bundles.get(0);
  var bitstreams = bundle.getBitstreams();
  if (!bitstreams.isEmpty()) {
    var bitstream = bitstreams.get(bitstreams.size() - 1);
      if (!Pattern.matches("^\\w{1,20}$", bitstream.getName())) {
        addError(
      errors,
      "error.validation.filename",
          "/" +
      WorkspaceItemRestRepository.OPERATION_PATH_SECTIONS +
          "/" +
          config.getId());
      }
  }
}

This is very quick and dirty and just the general gist of it. We also cannot validate the freshly uploaded file here, so either validate all existing filenames or (as done here) just validate the newest one.

You could also edit UploadStep.java in the upload() Method. As first lines within the try block add (again, quick and dirty solution, also use a better error message)

var filename = Utils.getFileName(file);
if (!Pattern.matches("^\\w{1,20}$", filename)) {
  throw new IllegalArgumentException("Invalid file name!");
}

But I *think* the frontend just shows a generic "an error occured" message instead of an actually useful error message if you do that.

2) I don't have something to throw in here for that, sorry. Custom validators aren't documented, so we just took a few guesses on what to do have have code sprinkled all over the place for this.

> Also, what is the best way to proceed when we'd like to work towards a
> solution for the official DSpace release?

Create an issue in https://github.com/DSpace/dspace

Best
Max

On 08.11.23 11:58, Franziska Rapp wrote:
Hi Max, hi All,

Thank you, that's helpful. Could you provide examples for 1) and 2) ?

Also, what is the best way to proceed when we'd like to work towards a solution for the official DSpace release?

Best regards
Franziska


Am 08.11.2023 um 10:10 schrieb Max Nuding:
Hi Franziska,

1) This cannot be done by configuration alone, you'll need to change the validation code in UploadValidation.java

2) We've had this very same issue. There isn't a *good* solution for this, but a few workaround/options:

If you change the validation code in the backend you can throw a custom error and then write a validation in the frontend to do the same (and remove the regex). This is extra work and not very well documented but should work without issues. Another solution works only if the file name is the *only* place you're doing regex validation: Just change the message key in de.json and/or en.json to something different. But this would apply to all regexvalidations.


Best

Max

On 08.11.23 09:50, Franziska Rapp wrote:

Hi Manuele, hi All,

Thank you very much for your help.

It solved our problem to some part: When you edit the file name, the restrictions are in place.


I have three follow-up points:

1) The check is not in place during the file upload (submission). That means users can upload files that don't meet the file name criteria. Any ideas how to solve this?

2) The users should get a more meaningful feedback. Is there a way to translate regex into user friendly words and display that instead?

3) Is this example outdated and should be corrected? https://github.com/DSpace/DSpace/blob/58ea388d6ac623575835cfa3be37ff7de59a98a2/dspace/config/submission-forms.xml#L265


Best regards

Franziska


Am 07.11.2023 um 17:48 schrieb Manuele Lorusso:

Hi Franziska,

you have to begin your regex with a start- and endtoken (^ and $) otherwise it is like a have to contains expression.

In your case the regex must be as follows:

        ^\w{1,20}$


Best,
Manuele

Herr Manuele Lorusso
Softwareentwickler / Abt. IT-Dienste Forschung, Lehre, Infrastruktur
Kommunikations-, Informations-, Medienzentrum (KIM)
Universität Konstanz
78457 Konstanz
+49 (0)7531 / 88-5403
Raum B 707
On 07.11.23 12:30, Franziska Rapp wrote:

Hi,

We'd like to introduce restrictions on the file name during submission:

Our modification:
|<form name="bitstream-metadata"> <row> <field> <dc-schema>dc</dc-schema> <dc-element>title</dc-element> <dc-qualifier></dc-qualifier> <repeatable>false</repeatable> <label>Title</label> <input-type>onebox</input-type> <hint>Enter the name of the file.</hint> <required>You must enter a name for this file</required> <regex>\w{1,20}</regex> </field> </row> <row> <field> <dc-schema>dc</dc-schema> <dc-element>description</dc-element> <repeatable>true</repeatable> <label>Description</label> <input-type>textarea</input-type> <hint>Enter a description for the file</hint> <required></required> </field> </row> </form>|

also see
https://github.com/DSpace/DSpace/blob/58ea388d6ac623575835cfa3be37ff7de59a98a2/dspace/config/submission-forms.xml#L27-L36

https://github.com/DSpace/DSpace/blob/58ea388d6ac623575835cfa3be37ff7de59a98a2/dspace/config/submission-forms.xml#L265

Unfortunately, it didn't work. We could upload files that did not meet the conditions.
Any ideas why? We'd much appreciate your help.

Best regards
--
Franziska Rapp

Academic Librarian
Communication and Information Center (kiz)
Ulm University
--
All messages to this mailing list should adhere to the Code of Conduct: https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx
---
You received this message because you are subscribed to the Google Groups "DSpace Technical Support" group. To unsubscribe from this group and stop receiving emails from it, send an email to dspace-tech+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dspace-tech/51806b1b-56f0-46fa-9c23-688a96a343fa%40uni-ulm.de <https://groups.google.com/d/msgid/dspace-tech/51806b1b-56f0-46fa-9c23-688a96a343fa%40uni-ulm.de?utm_medium=email&utm_source=footer>.
--
All messages to this mailing list should adhere to the Code of Conduct: https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx
---
You received this message because you are subscribed to the Google Groups "DSpace Technical Support" group. To unsubscribe from this group and stop receiving emails from it, send an email to dspace-tech+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dspace-tech/849737ea-006a-42ff-ad0e-269fa8528675%40uni-konstanz.de <https://groups.google.com/d/msgid/dspace-tech/849737ea-006a-42ff-ad0e-269fa8528675%40uni-konstanz.de?utm_medium=email&utm_source=footer>.
--
--
All messages to this mailing list should adhere to the Code of Conduct: https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx
---
You received this message because you are subscribed to the Google Groups "DSpace Technical Support" group. To unsubscribe from this group and stop receiving emails from it, send an email to dspace-tech+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dspace-tech/b4d895a9-9a4c-48a4-9bda-b474782d44dc%40uni-ulm.de <https://groups.google.com/d/msgid/dspace-tech/b4d895a9-9a4c-48a4-9bda-b474782d44dc%40uni-ulm.de?utm_medium=email&utm_source=footer>.



--
All messages to this mailing list should adhere to the Code of Conduct: 
https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx
--- You received this message because you are subscribed to the Google Groups "DSpace Technical Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dspace-tech+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dspace-tech/a5495dd3-a2d0-4ed6-b6d2-b78dc38b2e26%40uni-ulm.de.

Reply via email to