Text/Note/Annotation Maxlength rule is unnecessary

Bug #1742590 reported by Ghada El-Zoghbi on 2018-01-11
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mahara
Medium
Lisa Seeto

Bug Description

Mahara: 17.10.1
OS: Ubuntu 16.04
DB: Postgres
Browser: FF

When inserting a base-64 encoded image into a comment on a form, the user is presented with the following error:

'This field must be 8192 characters long.'

This rule validation is not really required because the DB field that it inserting into is a 'Text' type. Which basically means it's almost unlimited.

Postgres 7.1+ does have an upper limit at 1 Gb for a Text field. Mahara supports Postgres 9+.

I do think it's safe to remove the maxlength rule for the Text, Note and Annoation fields.

Please let me know your thoughts.

Changed in mahara:
status: New → Confirmed
importance: Undecided → Medium
milestone: none → 18.04.0
Ghada El-Zoghbi (ghada-z) wrote :

Update:

Robert L. has dug around a bit further. These limits were put in place for this bug:

* https://bugs.launchpad.net/mahara/+bug/758235

commit: 71935fe8689d8f50fa7dfc09070eefcd5bcbcfd3

It was to mitigate time out issues with large data inserted into the pages.

Need to think on this further.

Robert Lyon (robertl-9) wrote :

Also a thing to think about is the site's $_POST size will need to be bigger than the max allowed chars being posted by tinymce field

We should keep some upper limit so that people don't post text endlessly and break the site.

Robert mentioned the possibility to have some sort of "you go too much info in block, please split it into multiple blocks" rather than just having the message that there are too many characters.

Robert Lyon (robertl-9) on 2018-03-07
Changed in mahara:
milestone: 18.04.0 → 18.10.0

To Do:

1. Check what the upper limits are with the newer versions of Postgres and MySQL.
2. Upt the limit on the text boxes that were mentioned minus a few characters to deal with saving the block data in serialized format.
3. Change the message when the limit has been reached to something along the lines of comment #3.

Changed in mahara:
milestone: 18.10.0 → 19.04.0
tags: added: snack-sized
Changed in mahara:
assignee: nobody → Lisa Seeto (lisaseeto)
Lisa Seeto (lisaseeto) on 2019-03-12
Changed in mahara:
status: Confirmed → In Progress
Lisa Seeto (lisaseeto) wrote :

It was decided to increase the maxLength attribute on the text fields to 1000,000 chars.
The error message string: "rule.maxlength.maxlength" in pieforms.php was updated to read: "This field must be at most %d characters long. Please revise it or try splitting this over multiple instances." and '1' was added to the string so it gets picked up as revised for language translation.

I was using this base-64 image encoder which may be useful for testing:
https://www.base64-image.de/

Steven (stevens-q) wrote :

Environment tested: Master
Browser tested: Chrome

PRECONDITIONS:
------------------------
1) Mahara user exists (no roles)
2) Image has been converted to a Base64 hash text
3) Portfolio page exists that was created by another user and is shared with public

TEST STEPS: Allow large Base64 hash text
------------------------
1) Log in as Mahara user
2) Browse to a portfolio page that has been made public by another user
3) Make a comment on the page as follows
      a) In the WYSIWYG editor click the source icon (should open a text field modal with title Source code)
      b) Enter the Image that has been converted to a Base64 hash text and click OK
      c) Publish the comment by clicking the comment button
4) Verify that an image is displayed in the comment field ✔
5) Verify that there are no error messages ✔
5) Edit the comment - **Note:** that the long has has been converted to a blob of text and add another Image that has been converted to a Base64 hash text and click OK
6) Verify that the second image has been added to the comment ✔
7) Remove the comment
8) Verify that the comment has been removed and no error message is displayed ✔

TEST STEPS: Max 1000,000 chars allowed in text fields
------------------------
1) Log in as Mahara user
2) Browse to a portfolio page that has been made public by another user
3) Make a comment on the page using more than 1,000,000 characters into the text field and publish
4) Verify that an error message is displayed as follows
       * "This field must be at most 1,000,000 characters long. Please revise it or try splitting this over multiple instances." ✔
5) Make a comment on the page using less than 1,000,000 characters into the text field
6) Verify that text is published ✔

Catalyst QA Approved ✔

Lisa Seeto (lisaseeto) on 2019-03-18
Changed in mahara:
status: In Progress → Invalid
status: Invalid → In Progress
Steven (stevens-q) wrote :

Re Test using the above test script - no issues found

Catalyst QA Approved ✔

Reviewed: https://reviews.mahara.org/9629
Committed: https://git.mahara.org/mahara/mahara/commit/c26a5860cfecfa3d66b097c0e4a94e5662548ec9
Submitter: Robert Lyon (<email address hidden>)
Branch: master

commit c26a5860cfecfa3d66b097c0e4a94e5662548ec9
Author: Lisa Seeto <email address hidden>
Date: Fri Mar 15 11:32:10 2019 +1300

Bug 1742590: Text/Note/Annotation Maxlength rule is unnecesary

increased the maxLength property of textfields to 1000000 chars.

behatnotneeded

Change-Id: I7b9307de6f588aa841355500282f24b32c5ede85
Signed-off-by: Lisa Seeto <email address hidden>

Robert Lyon (robertl-9) wrote :

We have extended the limit to 1 million chars so that no description field content gets too big to slow down functionality but at the same time allowing a relatively sensible character limit

Changed in mahara:
status: In Progress → Fix Committed
Changed in mahara:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers