/** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if ($this->validate()) { $user = new User(); $profile = new Profile(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->generateAuthKey(); $user->role = 'user'; $user->status = 1; $profile->firstname = $this->firstname; $profile->lastname = $this->lastname; $profile->avatar = $this->avatar; // $profile->gender = 0; $transaction = Yii::$app->db->beginTransaction(); if ($user->save()) { $profile->user_id = $user->getId(); if ($profile->save()) { $transaction->commit(); return $user; } } else { $transaction->rollback(); print_r($user->getErrors()); return false; } } return null; }
public function signup() { if ($this->validate()) { $user = new User(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->status = User::STATUS_WAIT; $user->generateAuthKey(); $user->generateEmailConfirmToken(); if ($user->save()) { $auth = Yii::$app->authManager; $userRoleDefault = $auth->getRole('user'); $auth->assign($userRoleDefault, $user->getId()); $userProfile = new Profile(); $userProfile->user_id = $user->getId(); $userProfile->user_agent = Yii::$app->request->getUserAgent(); $userProfile->user_ip = Yii::$app->request->getUserIP(); $userProfile->name = $user->username; $userProfile->avatar_id = 1; //default.png (id = 1) $userProfile->save(false); Yii::$app->mailer->compose(['text' => '@app/modules/user/mails/emailConfirm'], ['user' => $user])->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])->setTo($this->email)->setSubject(Module::t('app', 'EMAIL_SIGNUP_SUBJECT') . Yii::$app->name)->send(); } return $user; } return null; }
/** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if ($this->validate()) { $user = new User(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->status = User::STATUS_NOT_CONFIRMED; $user->generateAuthKey(); $user->generateEmailConfirmToken(); if ($user->save()) { $profile = new Profile(); $profile->link('user', $user); Yii::$app->mailer->compose(['text' => '@app/modules/user/mails/emailConfirm'], ['user' => $user])->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name])->setTo($this->email)->setSubject('Email confirmation for ' . Yii::$app->name)->send(); } return $user; } return null; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Profile::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'user_id' => $this->user_id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); $query->andFilterWhere(['like', 'fullname', $this->fullname])->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'surname', $this->surname])->andFilterWhere(['like', 'patronymic', $this->patronymic])->andFilterWhere(['like', 'gender', $this->gender])->andFilterWhere(['like', 'address_id', $this->address_id]); return $dataProvider; }
public function actionProfile() { $model = Profile::findOne(['user_id' => Yii::$app->user->id]); if ($model->load(Yii::$app->request->post())) { if ($model->validate()) { if ($model->save(false)) { Yii::$app->session->setFlash('success', Yii::t('main', 'Successfully')); } else { Yii::$app->session->setFlash('danger', Yii::t('main', 'Error')); } return $this->refresh(); } } return $this->render('profile', ['model' => $model]); }
/** * Displays the login page. * * @return string|Response */ public function actionLogin() { if (!Yii::$app->user->isGuest) { $this->goHome(); } /** @var LoginForm $model */ $model = Yii::createObject(LoginForm::className()); $this->performAjaxValidation($model); if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) { $profile = Profile::findOne(Yii::$app->user->id); if (empty($profile->name) || empty($profile->location)) { return $this->redirect(['settings/profile?complete=1']); } else { return $this->goBack(); } } return $this->render('login', ['model' => $model, 'module' => $this->module]); }
public function actionMassdelete() { if (($ids = Yii::$app->request->post('selection')) !== null) { $models = $this->findModel(Yii::$app->request->post('selection')); foreach ($models as $model) { $model->delete(); } $models = Profile::findAll(Yii::$app->request->post('selection')); foreach ($models as $model) { $model->delete(); } $models = Auth::findAll(Yii::$app->request->post('selection')); foreach ($models as $model) { $model->delete(); } return $this->redirect(['index']); } else { throw new HttpException(400); } }
public function actionProfile() { $model = $this->findModel(); $profile = Profile::find()->where(['user_id' => $model->id])->one(); Yii::setAlias('@upload', '@webroot/uploads/user/avatar/'); if (Yii::$app->request->isPost && !empty($_FILES)) { $extension = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION)); $fileName = $model->id . '_' . time() . rand(1, 10000) . '.' . $extension; Image::thumbnail($_FILES['file']['tmp_name'], 160, 160)->save(Yii::getAlias('@upload') . $fileName, ['quality' => 80]); //delete old icon $file_exists = file_exists(Yii::getAlias('@upload') . $model->avatar); if ($file_exists && strpos($model->avatar, 'default') === false) { @unlink(Yii::getAlias('@upload') . $model->avatar); } $model->avatar = $fileName; $model->update(); } if ($profile->load(Yii::$app->request->post()) && $profile->save()) { Yii::$app->getSession()->setFlash('success', Yii::t('app', 'Saved successfully')); } return $this->render('profile', ['profile' => $profile, 'model' => $model]); }
private function findProfile() { return Profile::findOne(['user_id' => Yii::$app->user->identity->getId()]); }
/** * @return \yii\db\ActiveQuery */ public function getProfiles() { return $this->hasMany(Profile::className(), ['user_id' => 'id']); }
<?php use app\modules\user\Module; use yii\helpers\Html; use app\modules\user\models\Profile; use app\modules\user\models\User; $userId = Yii::$app->user->identity->getId(); $user = User::findOne($userId); $profile = Profile::findOne(['user_id' => $userId]); /* @var $profile app\modules\user\models\Profile */ /* @var $user app\modules\user\models\User */ /* @var $this yii\web\View */ ?> <div class="col-md-3"> <div class="panels panel-default"> <div class="panel-body"> <?php echo $profile->getAvatarImg(); ?> <br/><br/> <ul class="list-unstyled"> <li><?php echo Module::t('app', 'MODEL_USER_LABEL_USERNAME'); ?> : <strong><?php
*/ ?> <?php echo Html::a('Новый пользователь?', ['/user/secure/signup']); ?> <br/> </div> </div> </div> <?php } else { ?> <div class="panels panel-default"> <div class="panel-body"> <?php $profile = Profile::findOne(['user_id' => Yii::$app->user->identity->getId()]); ?> <?php $comment = CommentModel::find()->where(['createdBy' => Yii::$app->user->identity->getId()])->andWhere(['status' => 1])->count(); ?> <div class="row"> <div class="col-xs-4"><?php echo $profile->getAvatarImg(); ?> <br/></div> <div class="col-xs-8"> <i class="fa fa-user"></i> <?php echo $profile->name; ?> <br/> <i class="fa fa-comments"></i> <?php
public function getProfile() { return $this->hasMany(Profile::className(), ['uid' => 'id'])->andWhere(['target_type' => Profile::TYPE]); }
public function actionPut() { $params = Yii::$app->request->post(); $post = array_merge(Yii::$app->request->post()); $params = Yii::$app->request->queryParams; switch ($params['mode']) { case 'changeQuantity': if (Yii::$app->request->isAjax) { if (!empty($position = (int) $post['position']) && !empty($quantity = (int) $post['quantity'])) { $basket = BasketSearch::findOne($position); $basket->tovar_count = $quantity; return $basket->update(); } } break; case 'put': $session = new \yii\web\Session(); $id = Yii::$app->request->post('id'); if ($id) { $tovar = Tovar::findOne(['id' => $id]); if ($tovar) { $toBasket = new BasketSearch(); $toBasket->tovar_id = $id; $toBasket->tovar_count = 1; $toBasket->tovar_price = $tovar->price; $toBasket->session_id = Yii::$app->session->id; $toBasket->tovar_min = 1; $toBasket->provider_id = 5; //id=5 провайдер KD ищет в локальной базе if (Yii::$app->user->id) { $toBasket->uid = Yii::$app->user->id; } if ($toBasket->save()) { return '<a class="btn" href="' . url::toRoute(['/basket/basket'], true) . '"><i class="icon-shopping-cart icon-black"></i>Уже в корзине</a>'; } else { if (YII_DEBUG) { var_dump($toBasket->getErrors()); } } } else { return false; } } return '<a class="btn" href="' . url::toRoute(['/basket/basket'], true) . '"><i class="icon-shopping-cart icon-black"></i>Уже в корзине</a>'; break; case 'update': // $data = Yii::$app->request->post(); // if (isset($data) && $data != '') { // $basket = BasketSearch::findOne(['id' => intval($data['row_id'])]); // if ($basket) // $basket->description = Html::encode($data['text']); // if ($basket->save()) // return true; // } if (Yii::$app->request->post('hasEditable')) { $post = Yii::$app->request->post(); $model = $basket = BasketSearch::findOne(['id' => $post['editableKey']]); $data['OrderSearch'] = current($post['OrderSearch']); if ($model->load($data) && $model->save()) { $data = ['output' => $model->comment]; } return Json::encode($data); } break; case 'order': // создаем новый заказ $user_id = Yii::$app->user->id; $number = ($user_id ? $user_id : 'N') . '-' . date("ymdhis"); $orders = explode(';', Yii::$app->request->post('orderData')); $formData = Yii::$app->request->post('formData'); if (isset($formData) && $formData != '') { parse_str($formData, $fdata); $profileData = array_values($fdata['Profile']); } $fdata['deliveryStore'] = isset($fdata['deliveryStore']) ? $fdata['deliveryStore'] : 0; $cityCode = Yii::$app->request->cookies['city']; $city = \app\modules\city\models\CitySearch::find()->where(['id' => $cityCode ? $cityCode : 2097])->one(); $order_data = ['number' => $number, 'date' => date("Y-m-d H:i:s"), 'user_id' => $user_id, 'user_name' => $fdata['Profile']['name'], 'user_email' => $fdata['User']['email'], 'user_telephone' => $fdata['User']['telephone'], 'user_location' => $city->name, 'store_id' => (int) $fdata['deliveryStore']]; $order = new Order(); $order->load($order_data, ''); $order->save(); // передаем id заказа $order_id = $order->id; $order = new OrderUpdate1c(); $order->OrderId = $order_id; $order->save(); $user = \app\modules\user\models\User::findOne($user_id); $user->scenario = 'update'; $user->telephone = $order_data['user_telephone']; $user->save(); $profile = Profile::findOne($user_id); $profile->scenario = 'order'; $profile->name = $order_data['user_name']; $profile->save(); foreach ($orders as $order) { $order = explode(':', $order); $basket = BasketSearch::findOne(['id' => intval($order[0])]); if ($basket) { $product = Tovar::findOne(['id' => $basket->tovar_id]); $data['Orders'] = ['product_id' => $product ? $product->id : null, 'manufacture' => $basket->manufacturer, 'part_name' => $product ? $product->name : $basket->part_name, 'part_price' => $basket->tovar_price, 'product_article' => $product ? null : $basket->part_number, 'quantity' => $order[1], 'reference' => '', 'status' => \app\modules\user\models\Orders::ORDER_ADOPTED, 'datetime' => date('Y-m-d H:i:s'), 'description' => $basket->description, 'order_id' => (int) $order_id, 'provider_id' => (int) $basket->provider_id, 'delivery_days' => (int) $basket->period]; $Orders = new Orders(); if ($Orders->load($data) && $Orders->save()) { $basket->delete(); } } } return true; break; case 'remove': if (BasketSearch::deleteAll(['in', 'id', $post['id']])) { return JSON::encode($_POST); } //$this->basket_row($dataProvider); break; } }
/** * @return \yii\db\ActiveQuery */ public function getProfile() { return $this->hasOne(Profile::className(), ['userID' => 'id']); }
protected function findModelProfile($id) { if (($profile = Profile::findOne(['user_id' => $id])) !== null) { return $profile; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
public function getProfileAvatar() { $profile_ava = Profile::findOne(['user_id' => $this->getAuthorId()]); return $profile_ava->getAvatarImg(); }
<?php /* @var $this \yii\web\View */ /* @var $content string */ use yii\helpers\Html; use yii\bootstrap\Nav; use yii\bootstrap\NavBar; use yii\widgets\Breadcrumbs; use app\assets\AppAsset; use app\components\widgets\Alert; use app\modules\admin\components\widgets\AdminAlert; use app\modules\admin\Module; \app\assets\AdminAsset::register($this); //AppAsset::register($this); $user = \app\modules\user\models\User::findOne(Yii::$app->user->identity->getId()); $profile = \app\modules\user\models\Profile::findOne(['user_id' => Yii::$app->user->identity->getId()]); $this->beginPage(); ?> <!DOCTYPE html> <html lang="<?php echo Yii::$app->language; ?> "> <head> <meta charset="<?php echo Yii::$app->charset; ?> "> <meta name="viewport" content="width=device-width, initial-scale=1"> <?php echo Html::csrfMetaTags();
/** * Finds the Profile model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Profile the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Profile::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
public function onAuthSuccess($client) { $attributes = $client->getUserAttributes(); /* @var $auth Auth */ $auth = Auth::find()->where(['source' => $client->getId(), 'source_id' => $attributes['id']])->one(); if (Yii::$app->user->isGuest) { if ($auth) { // login $user = $auth->user; Yii::$app->user->login($user); } else { // signup if (isset($attributes['email']) && User::find()->where(['email' => $attributes['email']])->exists()) { Yii::$app->getSession()->setFlash('error', [Yii::t('app', "User with the same email as in {client} account already exists but isn't linked to it. Login using email first to link it.", ['client' => $client->getTitle()])]); } else { $password = Yii::$app->security->generateRandomString(6); $user = new User(['username' => $attributes['screen_name'], 'password' => $password, 'role' => 'user', 'email' => $attributes['email']]); if (!empty($attributes['photo'])) { $file = file_get_contents($attributes['photo']); $avatarPath = \app\modules\user\Module::$avatarPath; file_put_contents($avatarPath . '/1.jpg', $file); } $profile = new Profile(['firstname' => $attributes['first_name'], 'lastname' => $attributes['last_name'], 'country' => $attributes['country']]); $user->generateAuthKey(); $user->generatePasswordResetToken(); $transaction = $user->getDb()->beginTransaction(); if ($user->save()) { // Сохраняем профиль $profile->user_id = $user->id; if (!$profile->save()) { print_r($profile->getErrors()); die; } $auth = new Auth(['user_id' => $user->id, 'source' => $client->getId(), 'source_id' => (string) $attributes['id']]); if ($auth->save()) { $transaction->commit(); Yii::$app->user->login($user); } else { print_r($auth->getErrors()); } } else { print_r($user->getErrors()); } } } } else { // user already logged in if (!$auth) { // add auth provider $auth = new Auth(['user_id' => Yii::$app->user->id, 'source' => $client->getId(), 'source_id' => $attributes['id']]); $auth->save(); } } }
public function getProfile() { return $this->hasOne(\app\modules\user\models\Profile::className(), ['user_id' => 'id']); }
?> <div class="well"> <?php $form = ActiveForm::begin(['id' => 'user-form'], ['enableClientValidation' => false], ['enableAjaxValidation' => true], ['validateOnChange' => false]); ?> <?php echo $form->field($model, 'firstname'); ?> <?php echo $form->field($model, 'lastname'); ?> <?php echo $form->field($model, 'gender')->dropDownList(Profile::getGenderArray()); ?> <?php echo $form->field($model, 'avatar')->widget(Widget::className(), ['settings' => ['url' => ['fileapi-upload']], 'crop' => true, 'cropResizeWidth' => 100, 'cropResizeHeight' => 100]); ?> <?php echo Html::submitButton($model->isNewRecord ? '<i class="fa fa-plus fa-fw"></i> ' . Yii::t('main', 'Add') : '<i class="fa fa-floppy-o fa-fw"></i> ' . Yii::t('main', 'Save'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> <?php ActiveForm::end(); ?>