From eeb46c1c524fe5399d007bc119cb6c00fde66343 Mon Sep 17 00:00:00 2001 From: Adrien Gallou Date: Sat, 14 Sep 2013 14:28:01 +0200 Subject: [PATCH] =?UTF-8?q?message=20d'erreur=20sp=C3=A9cifique=20en=20cas?= =?UTF-8?q?=20d'utilisateur=20d=C3=A9j=C3=A0=20existant=20lors=20de=20l'in?= =?UTF-8?q?scription?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Aperophp/Provider/Controller/Member.php | 5 +++++ src/Aperophp/Repository/Member.php | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/Aperophp/Provider/Controller/Member.php b/src/Aperophp/Provider/Controller/Member.php index a660e7b..cc7dee7 100644 --- a/src/Aperophp/Provider/Controller/Member.php +++ b/src/Aperophp/Provider/Controller/Member.php @@ -97,6 +97,11 @@ public function connect(Application $app) if ($form->isValid()) { $data = $form->getData(); + $username = $data['member']['username']; + if ($app['members']->findOneByUsername($username)) { + $app->abort(500, sprintf("Le nom d'utilisateur '%s' est déjà utilisé.", $username)); + } + $app['db']->beginTransaction(); try { diff --git a/src/Aperophp/Repository/Member.php b/src/Aperophp/Repository/Member.php index e65fbc6..3c21e72 100644 --- a/src/Aperophp/Repository/Member.php +++ b/src/Aperophp/Repository/Member.php @@ -23,4 +23,19 @@ public function findOneByUsernameAndPassword($username, $password) return $this->db->fetchAssoc($sql, array($username, $password)); } + + /** + * findOneByUsername + * + * @param string $username + * + * @return array + */ + public function findOneByUsername($username) + { + $sql = 'SELECT * FROM Member WHERE username = ? AND active = true LIMIT 1'; + + return $this->db->fetchAssoc($sql, array($username)); + } + }