From 4a3e17f0c20356b0690bbb52285fe18d4c1a89ae Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Thu, 14 Jul 2016 15:18:23 +0200 Subject: muser: Add add_user function Signed-off-by: Florian Pritz --- application/controllers/user.php | 16 ++-------------- application/models/muser.php | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/application/controllers/user.php b/application/controllers/user.php index 21d5d21f5..ab411d7d2 100644 --- a/application/controllers/user.php +++ b/application/controllers/user.php @@ -217,13 +217,7 @@ class User extends MY_Controller { } if (empty($error)) { - $this->db->set(array( - 'username' => $username, - 'password' => $this->muser->hash_password($password), - 'email' => $email, - 'referrer' => $referrer - )) - ->insert('users'); + $this->muser->add_user($username, $password, $email, $referrer); $this->db->where('key', $key) ->delete('actions'); @@ -649,13 +643,7 @@ class User extends MY_Controller { return true; }); - $this->db->set(array( - 'username' => $username, - 'password' => $this->muser->hash_password($password), - 'email' => $email, - 'referrer' => NULL - )) - ->insert('users'); + $this->muser->add_user($username, $password, $email, NULL); echo "User added\n"; } diff --git a/application/models/muser.php b/application/models/muser.php index 4ec821f4d..7a4b65e4b 100644 --- a/application/models/muser.php +++ b/application/models/muser.php @@ -159,6 +159,29 @@ class Muser extends CI_Model { return valid_email($email); } + public function add_user($username, $password, $email, $referrer) + { + if (!$this->valid_username($username)) { + throw new \exceptions\PublicApiException("user/invalid-username", "Invalid username (only up to 32 chars of a-z0-9 are allowed)"); + } else { + if ($this->muser->username_exists($username)) { + throw new \exceptions\PublicApiException("user/username-already-exists", "Username already exists"); + } + } + + if (!$this->valid_email($email)) { + throw new \exceptions\PublicApiException("user/invalid-email", "Invalid email"); + } + + $this->db->set(array( + 'username' => $username, + 'password' => $this->hash_password($password), + 'email' => $email, + 'referrer' => $referrer + )) + ->insert('users'); + } + function get_userid() { if (!$this->logged_in()) { -- cgit v1.2.3-24-g4f1b