/** * Validate and create account. */ public function createAction() { // Validate user $user = new User($this->userParams()); // Check for errors if ($user->validate()) { $user->save(); // Is email validation turned on? if (setting('email_validation')) { // Insert validation row $activationCode = random_hash(); $this->db->insert(PREFIX . 'user_activation_codes', ['user_id' => $user->id, 'activation_code' => $activationCode, 'type' => 'email_validation']); // Send notification and render login form Notification::accountActivation($user, $activationCode)->send(); return $this->render("sessions/new.phtml", ['activationRequired' => true]); } return $this->redirectTo('session_new'); } else { $this->title($this->translate('register')); return $this->render('users/new.phtml', ['user' => $user]); } }
<?php /*! * Traq Lite * Copyright (c) 2009-2016 Jack P. * https://github.com/nirix/traq-lite * * Licensed under the BSD 3-Clause license. */ use Traq\Models\User; $user = new User(); if (Request::$method == 'POST') { $user = new User(['name' => Request::$post['name'], 'username' => Request::$post['username'], 'password' => Request::$post['password'], 'email' => Request::$post['email'], 'group_id' => Request::$post['group_id']]); if ($user->validate()) { db()->beginTransaction(); $query = db()->prepare(' INSERT INTO ' . PREFIX . 'users (name, username, password, email, group_id, session_hash, created_at) VALUES(:name, :username, :password, :email, :group_id, :session_hash, NOW()) '); $query->bindValue(':name', $user['name'], PDO::PARAM_STR); $query->bindValue(':username', $user['username'], PDO::PARAM_STR); $query->bindValue(':password', password_hash($user['password'], PASSWORD_DEFAULT), PDO::PARAM_STR); $query->bindValue(':email', $user['email'], PDO::PARAM_STR); $query->bindValue(':group_id', $user['group_id'], PDO::PARAM_INT); $query->bindValue(':session_hash', sha1(microtime() . time() . rand(0, 500)), PDO::PARAM_STR); $query->execute(); db()->commit(); return redirect('/admin/users'); } }