]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Don't abort on too long notices in Notice::saveActivity
authorMikael Nordfeldth <mmn@hethane.se>
Tue, 5 Jan 2016 16:31:09 +0000 (17:31 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Tue, 5 Jan 2016 16:31:09 +0000 (17:31 +0100)
actions/newnotice.php
classes/Notice.php

index 17499312fbcbd45ea1157cba0e6a87010d468d5a..c4b6bfa554a9c604af56c04cc10f66c469165cd9 100644 (file)
@@ -131,6 +131,17 @@ class NewnoticeAction extends FormAction
 
         $content = $this->scoped->shortenLinks($content);
 
+        // Reject notice if it is too long (without the HTML)
+        // Should we do this before or after the upload attachment link? I think before...
+        if (Notice::contentTooLong($content)) {
+            // TRANS: Client error displayed when the parameter "status" is missing.
+            // TRANS: %d is the maximum number of character for a notice.
+            throw new ClientException(sprintf(_m('That\'s too long. Maximum notice size is %d character.',
+                                                 'That\'s too long. Maximum notice size is %d characters.',
+                                                 Notice::maxContent()),
+                                              Notice::maxContent()));
+        }
+
         $upload = null;
         try {
             // throws exception on failure
@@ -140,15 +151,7 @@ class NewnoticeAction extends FormAction
             }
             Event::handle('EndSaveNewNoticeAppendAttachment', array($this, $upload, &$content, &$options));
 
-            if (Notice::contentTooLong($content)) {
-                $upload->delete();
-                // TRANS: Client error displayed exceeding the maximum notice length.
-                // TRANS: %d is the maximum length for a notice.
-                $this->clientError(sprintf(_m('Maximum notice size is %d character, including attachment URL.',
-                                              'Maximum notice size is %d characters, including attachment URL.',
-                                              Notice::maxContent()),
-                                           Notice::maxContent()));
-            }
+            // We could check content length here if the URL was added, but I'll just let it slide for now...
 
             $act->enclosures[] = $upload->getEnclosure();
         } catch (NoUploadedMediaException $e) {
index 1afc6d09772d583df574ec4395f0053e97bc16d5..513888d2450f3e1a738fba7ab93c287ff03837e9 100644 (file)
@@ -825,17 +825,6 @@ class Notice extends Managed_DataObject
         $stored->rendered = $actor->isLocal() ? $content : common_purify($content);
         $stored->content = common_strip_html($stored->rendered);
 
-        // Reject notice if it is too long (without the HTML)
-        // FIXME: Reject if too short (empty) too? But we have to pass the 
-        if ($actor->isLocal() && Notice::contentTooLong($stored->content)) {
-            // TRANS: Client error displayed when the parameter "status" is missing.
-            // TRANS: %d is the maximum number of character for a notice.
-            throw new ClientException(sprintf(_m('That\'s too long. Maximum notice size is %d character.',
-                                                 'That\'s too long. Maximum notice size is %d characters.',
-                                                 Notice::maxContent()),
-                                              Notice::maxContent()));
-        }
-
         // Maybe a missing act-time should be fatal if the actor is not local?
         if (!empty($act->time)) {
             $stored->created = common_sql_date($act->time);