public function testManualId() { $user = new User(); $user->_id = '4af9f23d8ead0e1d32000000'; $user->name = 'John Doe'; $user->title = 'admin'; $user->age = 35; $user->save(); $this->assertEquals(true, $user->exists); $this->assertEquals('4af9f23d8ead0e1d32000000', $user->_id); $raw = $user->getAttributes(); $this->assertInstanceOf('MongoId', $raw['_id']); }
/** * @param User $model * @return UserDto */ public static function toDto(User $model) { /** @var UserDetails $details */ $details = $model->getUserDetails(); /** @var UserBlob[] $blobs */ $blobs = $model->getUserBlobs(); /** @var UserDto $userDto */ $userDto = new UserDto($model->getAttributes()); $userDto->description = $details ? $details->description : ''; $userDto->blobs = array(); foreach ($blobs as $blob) { $userDto->blobs[] = $blob->blob_b64; } return $userDto; }
public function actionLogin() { //创建类型必须给出 if (isset($_POST['type'])) { $type = $_POST['type']; } else { $this->sendErrorResponse(403); } //本地注册处理 if ($type == WIS_USER) { if (isset($_POST['user_email']) && isset($_POST['user_pwd'])) { //邮箱是否已存在 $rs = Yii::app()->db->createCommand()->select('user_id')->from('user')->where('user_email=:email', array(':email' => strtolower($_POST['user_email'])))->queryScalar(); if ($rs) { $this->sendDataResponse(User::model()->findByPk($rs)->getAttributes()); } try { $model = new User(); $model->attributes = $_POST; $model->user_email = strtolower($model->user_email); $model->user_pwd = trim($_POST['user_pwd']); //生成用户昵称 $nick_name = explode('@', $_POST['user_email']); $model->nick_name = $nick_name[0]; // $model->nick_name = Yii::app()->badWords->replacement($model->nick_name); $model->nick_name = $model->nick_name; $model->user_ext = $type; $model->access_token = $this->getAccessToken(); $model->save(); $this->sendDataResponse($model->getAttributes()); } catch (Exception $e) { //本地用户创建失败! $this->sendErrorResponse(500, $e->getMessage()); } } else { $this->sendErrorResponse(403, '用户输入信息不全'); } } //第三方登陆是否已注册 if ($type != WIS_USER && isset($_POST['unique_str']) && isset($_POST['user_ico']) && isset($_POST['nick_name'])) { if ($type == FACE_BOOK_USER) { $user_ext_name = 'face_book'; } elseif ($type == TWITTER_USER) { $user_ext_name = 'twitter'; } //用户是否已存在 $rs = Yii::app()->db->createCommand()->select('user_id')->from('user')->where('user_ext=:user_ext', array(':user_ext' => $_POST['type']))->andWhere('unique_str=:unique_str', array(':unique_str' => $_POST['unique_str']))->queryScalar(); if ($rs) { //用户已存在,无须创建!直接返回数据 $model = User::model()->findByPk($rs); $this->sendDataResponse($model->getAttributes()); } else { //如果系统不存在,则创建用户 try { $model = new User(); $model->attributes = $_POST; //第三方拿到的信息有 id,名称,头象 $model->nick_name = $_POST['nick_name']; // $model->nick_name = Yii::app()->badWords->replacement($model->nick_name); $model->nick_name = $model->nick_name; $model->user_ext = $_POST['type']; $model->user_ext_name = $user_ext_name; $model->user_ico_b = $_POST['user_ico']; $model->unique_str = $_POST['unique_str']; $model->access_token = $this->getAccessToken(); $model->save(); } catch (Exception $e) { //第三方注册失败 $this->sendErrorResponse(500, $e->getMessage()); } $this->sendDataResponse($model->getAttributes()); } } else { $this->sendErrorResponse(403, '第三方登陆参数传递错误!'); } }
public function testManualIntId() { $user = new User(); $user->_id = 1; $user->name = 'John Doe'; $user->title = 'admin'; $user->age = 35; $user->save(); $this->assertEquals(true, $user->exists); $this->assertEquals(1, $user->_id); $raw = $user->getAttributes(); $this->assertInternalType('integer', $raw['_id']); }
protected function proccessRequest($model = null) { if (Yii::app()->request->getPost('User') !== null) { if (!$model) { $model = new User('register'); $model->makeForm('register', $this->params['content']->fields, $this->params['content']->fields_req); } $tpldata = array(); $model->attributes = Yii::app()->request->getPost('User'); if ($model->password == '') { $model->password = $model->password_repeat = $tpldata['generatedPassword'] = User::generatePassword(); $model->askfill = true; } if ($model->validate()) { $model->save(false); $cfg = ContentUnit::loadConfig(); $viewFileDir = $cfg['UnitRegister'] . '.register.templates.mail.'; $tpldata['model'] = $model->getAttributes(); $tpldata['settings'] = Yii::app()->settings->model->getAttributes(); $tpldata['page'] = $this->params['content']->getWidgetPageArray(); if ($this->params['content']->notify_admin) { // send 'to_admin_notify' mail Yii::app()->messenger->send('email', Yii::app()->settings->getValue('adminEmail'), '[' . $_SERVER['HTTP_HOST'] . '] ' . Yii::t('UnitRegister.main', 'New user registration'), Yii::app()->controller->renderPartial($viewFileDir . 'to_admin_notify', $tpldata, true)); } if ($this->params['content']->is_emailauth_req) { $model->saveAttributes(array('authcode' => User::hash($model->id . $model->login . time() . rand()))); $tpldata['model'] = $model; // send 'to_user_confirm' mail Yii::app()->messenger->send('email', $model->email, Yii::t('UnitRegister.main', 'Registration confirm'), Yii::app()->controller->renderPartial($viewFileDir . 'to_user_confirm', $tpldata, true)); return true; } else { $model->saveAttributes(array('active' => true)); if ($this->params['content']->notify_user || $tpldata['generatedPassword']) { // send 'to_user_notify' mail Yii::app()->messenger->send('email', $model->email, Yii::t('UnitRegister.main', 'Registration completed'), Yii::app()->controller->renderPartial($viewFileDir . 'to_user_notify', $tpldata, true)); } $loginForm = new LoginForm(); $loginForm->username = $model->email; $loginForm->password = !empty($_POST['User']['password']) ? $_POST['User']['password'] : $tpldata['generatedPassword']; if ($loginForm->login()) { return true; } } } } return false; }