From 815902b748561e940f85823583ffbfefc52243ad Mon Sep 17 00:00:00 2001 From: Matt Stein Date: Fri, 1 Mar 2019 20:14:59 -0800 Subject: [PATCH] Confine token save to Settings model to avoid conflicts. --- src/CraftQL.php | 17 ----------------- src/Models/Settings.php | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/CraftQL.php b/src/CraftQL.php index d98eb169..0144ef07 100644 --- a/src/CraftQL.php +++ b/src/CraftQL.php @@ -111,21 +111,4 @@ protected function settingsHtml() 'settings' => $this->getSettings() ]); } - - /** - * Save the settings, some custom work here to make sure token names - * are saved correctly - */ - public function setSettings(array $settings) - { - parent::setSettings($settings); - - if (isset($_POST['settings']['token'])) { - foreach ($_POST['settings']['token'] as $tokenId => $values) { - $token = Token::find()->where(['id' => $tokenId])->one(); - $token->name = @$values['name']; - $token->save(); - } - } - } } diff --git a/src/Models/Settings.php b/src/Models/Settings.php index 8292d16c..4cf3a48c 100644 --- a/src/Models/Settings.php +++ b/src/Models/Settings.php @@ -30,4 +30,23 @@ function tokens() $tokens = Token::find()->where(['userId' => \Craft::$app->user->id])->all(); return $tokens; } + + /** + * Make sure token names are saved correctly along with this model. + * + * @inheritdoc + */ + public function beforeValidate() + { + if (isset($_POST['settings']['token'])) { + foreach ($_POST['settings']['token'] as $tokenId => $values) { + $token = Token::find()->where(['id' => $tokenId])->one(); + $token->name = @$values['name']; + $token->save(); + } + } + + return parent::beforeValidate(); + } + }