implement user registration and improve user handling

This commit is contained in:
coderkun 2014-04-05 13:29:49 +02:00
commit 7755f453db
7 changed files with 260 additions and 28 deletions

View file

@ -132,22 +132,48 @@
* @param string $password Password of the user to create
* @return int ID of the newly created user
*/
public function createUser($username, $email, $password)
public function createUser($username, $prename, $surname, $email, $password)
{
$this->db->query(
'INSERT INTO users '.
'(username, url, email, password) '.
'VALUES '.
'(?, ?, ?, ?)',
'ssss',
$username,
\nre\core\Linker::createLinkParam($username),
$email,
$this->hash($password)
);
$userId = null;
$this->db->setAutocommit(false);
try {
// Create user
$this->db->query(
'INSERT INTO users '.
'(username, url, surname, prename, email, password) '.
'VALUES '.
'(?, ?, ?, ?, ?, ?)',
'ssssss',
$username,
\nre\core\Linker::createLinkParam($username),
$surname,
$prename,
$email,
$this->hash($password)
);
$userId = $this->db->getInsertId();
// Add role “user”
$this->db->query(
'INSERT INTO users_userroles '.
'(user_id, userrole_id) '.
'SELECT ?, userroles.id '.
'FROM userroles '.
'WHERE userroles.name = ?',
'is',
$userId,
'user'
);
}
catch(Exception $e) {
$this->db->rollback();
$this->db->setAutocommit(true);
throw $e;
}
$this->db->setAutocommit(true);
return $this->db->getInsertId();
return $userId;
}
@ -160,17 +186,20 @@
* @param string $email Changed email-address of user
* @param string $password Changed plaintext password of user
*/
public function editUser($userId, $username, $email, $password)
public function editUser($userId, $username, $prename, $surname, $email, $password)
{
$this->db->setAutocommit(false);
try {
// Update user data
$this->db->query(
'UPDATE users '.
'SET username = ?, url = ?, email = ? '.
'SET username = ?, url = ?, prename = ?, surname = ?, email = ? '.
'WHERE id = ?',
'sssi',
'sssssi',
$username,
\nre\core\Linker::createLinkParam($username),
$prename,
$surname,
$email,
$userId
);