public function action_register() { $user_hash = Session::get('ninjauth.user'); $authentication = Session::get('ninjauth.authentication'); // Working with what? $strategy = Strategy::forge($authentication['provider']); $full_name = Input::post('full_name') ?: Arr::get($user_hash, 'name'); $username = Input::post('username') ?: Arr::get($user_hash, 'nickname'); $email = Input::post('email') ?: Arr::get($user_hash, 'email'); $password = Input::post('password'); if ($username and $full_name and $email and $password) { $user_id = $strategy->adapter->create_user(array('username' => $username, 'email' => $email, 'full_name' => $full_name, 'password' => $password)); if ($user_id) { Model_Authentication::forge(array('user_id' => $user_id, 'provider' => $authentication['provider'], 'uid' => $authentication['uid'], 'access_token' => $authentication['access_token'], 'secret' => $authentication['secret'], 'refresh_token' => $authentication['refresh_token'], 'expires' => $authentication['expires'], 'created_at' => time()))->save(); Session::set_flash('ninjauth.user_id', $user_id); Response::redirect(static::$registered_redirect); } } return View::forge('register', array('user' => (object) compact('username', 'full_name', 'email', 'password'))); }
public function action_register() { $user_hash = Session::get('ninjauth.user'); $authentication = Session::get('ninjauth.authentication'); $strategy = \NinjAuth\Strategy::forge($authentication['provider']); $email = Input::post('email') ?: Arr::get($user_hash, 'email'); $val = Validation::forge(); $val->add('email', 'email')->add_rule('required')->add_rule('valid_email'); if (Input::method() != 'POST' || $val->run() === false) { return View::forge('register', array('user' => (object) compact('email'), 'error' => $val->error('email'))); } // todo トランザクション $user_id = $strategy->adapter->create_user(array('username' => Arr::get($user_hash, 'nickname'), 'email' => $email)); if ($user_id) { \NinjAuth\Model_Authentication::forge(array('user_id' => $user_id, 'provider' => $authentication['provider'], 'uid' => $authentication['uid'], 'access_token' => $authentication['access_token'], 'secret' => $authentication['secret'], 'refresh_token' => $authentication['refresh_token'], 'expires' => $authentication['expires'], 'created_at' => time()))->save(); Model_Profile::forge(array('full_name' => Arr::get($user_hash, 'name'), 'image' => Arr::get($user_hash, 'image'), 'location' => Arr::get($user_hash, 'location'), 'description' => Arr::get($user_hash, 'description'), 'website' => Arr::get($user_hash, 'urls.Website'), 'twitter' => Arr::get($user_hash, 'urls.Twitter'), 'user_id' => $user_id))->save(); Session::set_flash('ninjauth.user_id', $user_id); Response::redirect(static::$registered_redirect); } }