diff --git a/Security/PasswordRecover/PasswordRecoverVoter.php b/Security/PasswordRecover/PasswordRecoverVoter.php
new file mode 100644
index 000000000..59dcdd764
--- /dev/null
+++ b/Security/PasswordRecover/PasswordRecoverVoter.php
@@ -0,0 +1,54 @@
+
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+namespace Chill\MainBundle\Security\PasswordRecover;
+
+use Symfony\Component\Security\Core\Authorization\Voter\Voter;
+use Chill\MainBundle\Entity\User;
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+
+/**
+ *
+ *
+ * @author Julien Fastré
+ */
+class PasswordRecoverVoter extends Voter
+{
+ const CHANGE_PASSWORD = 'CHILL_CHANGE_PASSWORD';
+
+ protected function supports($attribute, $subject): bool
+ {
+ if ($attribute !== self::CHANGE_PASSWORD) {
+ return false;
+ }
+
+ if (!$subject['user'] instanceof User) {
+ throw new \UnexpectedValueException("The subject must contains an "
+ . "".User::class." under the 'user' key");
+ }
+
+ if (empty($subject['token'])) {
+ throw new \UnexpectedValueException("The subject must contains a "
+ . "token key");
+ }
+ }
+
+ protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool
+ {
+
+ }
+}
diff --git a/composer.json b/composer.json
index c477163a6..baf5e5e78 100644
--- a/composer.json
+++ b/composer.json
@@ -39,7 +39,8 @@
"doctrine/migrations": "~1.0",
"phpoffice/phpspreadsheet": "~1.2",
"sensio/distribution-bundle": "^5.0",
- "knplabs/knp-menu-bundle": "^2.2"
+ "knplabs/knp-menu-bundle": "^2.2",
+ "symfony/lock": "~3.4"
},
"require-dev": {
"symfony/dom-crawler": "~3.4",