예제 #1
0
 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')));
 }
예제 #2
0
파일: auth.php 프로젝트: nobuhiko/mylogbook
 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);
     }
 }