diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php index 054403c93283e2e3540ff0f7c486f0a267360b1c..5cccdbbe10c3a62167f74a14b46f9e762e143185 100755 --- a/src/app/user/controllers/UserController.php +++ b/src/app/user/controllers/UserController.php @@ -483,6 +483,8 @@ class UserController return $response->withStatus(400)->withJson(['errors' => 'Body notifications.instant is not a boolean']); } elseif (!Validator::arrayType()->each(Validator::in($notificationsIds))->validate($body['notifications']['summaries'])) { return $response->withStatus(400)->withJson(['errors' => 'Body notifications.summaries is not an array or contains invalid IDs']); + } elseif (!Validator::oneOf(Validator::falseVal(), Validator::intVal()->between(10, 50))->validate($body['signatureScaling'])) { + return $response->withStatus(400)->withJson(['errors' => 'Body signatureScaling is neither false nor an integer between 10 and 50']); } $user = UserModel::getById(['id' => $args['id'], 'select' => ['firstname', 'lastname']]); @@ -492,14 +494,15 @@ class UserController $body['notifications']['summaries'] = array_values(array_unique($body['notifications']['summaries'])); $preferences = json_encode([ - 'lang' => $body['lang'], - 'writingMode' => $body['writingMode'], - 'writingSize' => $body['writingSize'], - 'writingColor' => $body['writingColor'], - 'notifications' => [ - 'instant' => $body['notifications']['instant'], - 'summaries' => $body['notifications']['summaries'], - ], + 'lang' => $body['lang'], + 'writingMode' => $body['writingMode'], + 'writingSize' => $body['writingSize'], + 'writingColor' => $body['writingColor'], + 'signatureScaling' => $body['signatureScaling'], + 'notifications' => [ + 'instant' => $body['notifications']['instant'], + 'summaries' => $body['notifications']['summaries'], + ] ]); if (!is_string($preferences)) { return $response->withStatus(400)->withJson(['errors' => 'Wrong format for user preferences data']);