X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fmanagedaction.php;h=808c4af7cce02266b9be9d87be12ac4689e25899;hb=67a9c0415c395d92adeb784413bb9a88fba7347f;hp=278131b7a6461db41501a8ad417ccfa09fc52874;hpb=7617fb65d701e3c8fbdb5e2798c2956531facf67;p=quix0rs-gnu-social.git diff --git a/lib/managedaction.php b/lib/managedaction.php index 278131b7a6..808c4af7cc 100644 --- a/lib/managedaction.php +++ b/lib/managedaction.php @@ -64,9 +64,37 @@ class ManagedAction extends Action $this->showPage(); } + /** + * If this is extended in child classes, they should + * end with 'return parent::handlePost();' - and they + * should only extend this function if what they do + * cannot be handled in ->doPost() + */ protected function handlePost() { // This will only be run if the Action has the property canPost==true assert($this->canPost); + + // check for this before token since all POST and FILES data + // is losts when size is exceeded + if (empty($_POST) && $_SERVER['CONTENT_LENGTH']>0) { + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = sprintf(_m('The server was unable to handle that much POST data (%s MiB) due to its current configuration.'), + round($_SERVER['CONTENT_LENGTH']/1024/1024,2)); + throw new ClientException($msg); + } + + $this->checkSessionToken(); + return $this->doPost(); + } + + /** + * Do Post stuff. Return a string if successful, + * describing what has been done. Always throw an + * exception on failure, with a descriptive message. + */ + protected function doPost() { + return false; } }