From 42ff17d163207044aa00df83d0f8691107368161 Mon Sep 17 00:00:00 2001 From: kodumbeats Date: Fri, 10 Sep 2021 16:12:22 -0400 Subject: [PATCH] Use whitelist validator to enforce enum --- app/init.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/init.php b/app/init.php index cdaf8cfeb8..d1cc3fda11 100644 --- a/app/init.php +++ b/app/init.php @@ -44,6 +44,7 @@ use Utopia\Database\Database; use Utopia\Database\Validator\Structure; use Utopia\Database\Validator\Authorization; use Utopia\Validator\Range; +use Utopia\Validator\WhiteList; use Swoole\Database\PDOConfig; use Swoole\Database\PDOPool; use Swoole\Database\RedisConfig; @@ -63,6 +64,7 @@ const APP_LIMIT_USERS = 10000; const APP_CACHE_BUSTER = 151; const APP_VERSION_STABLE = '0.9.4'; const APP_DATABASE_ATTRIBUTE_EMAIL = 'email'; +const APP_DATABASE_ATTRIBUTE_ENUM = 'enum'; const APP_DATABASE_ATTRIBUTE_IP = 'ip'; const APP_DATABASE_ATTRIBUTE_URL = 'url'; const APP_DATABASE_ATTRIBUTE_INT_RANGE = 'intRange'; @@ -270,6 +272,11 @@ Structure::addFormat(APP_DATABASE_ATTRIBUTE_EMAIL, function() { return new Email(); }, Database::VAR_STRING); +Structure::addFormat(APP_DATABASE_ATTRIBUTE_ENUM, function($attribute) { + $elements = $attribute['formatOptions']['elements']; + return new WhiteList($elements); +}, Database::VAR_STRING); + Structure::addFormat(APP_DATABASE_ATTRIBUTE_IP, function() { return new IP(); }, Database::VAR_STRING);