/** * Validates the password. * This method serves as the inline validation for password. */ public function validatePassword($attribute, $params) { $user = $this->getUser(); if (!$user || !$user->validatePassword($this->{$attribute})) { $this->addError($attribute, Module::t('users', 'ERROR_MSG_INVALID_USERNAME_OR_PASSWORD')); } }
/** * Validates the password. * This method serves as the inline validation for password. */ public function validateOldPassword($attribute, $params) { $user = $this->user; if (!$user || !$user->validatePassword($this->{$attribute})) { $this->addError($attribute, Module::t('users', 'ERROR_MSG_INVALID_OLD_PASSWORD')); } }
/** * Confirm new e-mail address. * * @param string $key Confirmation token * * @return mixed View */ public function actionEmail($key) { $model = new Email(['token' => $key]); if ($model->isValidToken() === false) { Yii::$app->session->setFlash('danger', Module::t('users', 'FRONTEND_FLASH_FAIL_NEW_EMAIL_CONFIRMATION_WITH_INVALID_KEY')); } else { if ($model->confirm()) { Yii::$app->session->setFlash('success', Module::t('users', 'FRONTEND_FLASH_SUCCESS_NEW_EMAIL_CONFIRMATION')); } else { Yii::$app->session->setFlash('danger', Module::t('users', 'FRONTEND_FLASH_FAIL_NEW_EMAIL_CONFIRMATION')); } } return $this->goHome(); }
/** * Send an email confirmation token. * * @return boolean true if email confirmation token was successfully sent */ public function send() { return $this->module->mail->compose('recovery', ['model' => $this->_model])->setTo($this->email)->setSubject(Module::t('users', 'EMAIL_SUBJECT_RECOVERY') . ' ' . Yii::$app->name)->send(); }
<fieldset class="registration-form"> <?php echo $form->field($profile, 'name')->textInput(['placeholder' => $profile->getAttributeLabel('name')])->label(false); ?> <?php echo $form->field($profile, 'surname')->textInput(['placeholder' => $profile->getAttributeLabel('surname')])->label(false); ?> <?php echo $form->field($user, 'username')->textInput(['placeholder' => $user->getAttributeLabel('username')])->label(false); ?> <?php echo $form->field($user, 'email')->textInput(['placeholder' => $user->getAttributeLabel('email')])->label(false); ?> <?php echo $form->field($user, 'password')->passwordInput(['placeholder' => $user->getAttributeLabel('password')])->label(false); ?> <?php echo $form->field($user, 'repassword')->passwordInput(['placeholder' => $user->getAttributeLabel('repassword')])->label(false); ?> <?php echo $form->field($profile, 'avatar_url')->widget(Widget::className(), ['settings' => ['url' => ['fileapi-upload']], 'crop' => true, 'cropResizeWidth' => 100, 'cropResizeHeight' => 100])->label(false); ?> <?php echo Html::submitButton(Module::t('users', 'FRONTEND_SIGNUP_SUBMIT'), ['class' => 'btn btn-success btn-large pull-right']); ?> <?php echo Html::a(Module::t('users', 'FRONTEND_SIGNUP_RESEND'), ['resend']); ?> </fieldset> <?php ActiveForm::end();
/** * Profile updating page. */ public function actionUpdate() { $model = Profile::findByUserId(Yii::$app->user->id); if ($model->load(Yii::$app->request->post())) { if ($model->validate()) { if ($model->save(false)) { Yii::$app->session->setFlash('success', Module::t('users', 'FRONTEND_FLASH_SUCCES_UPDATE')); } else { Yii::$app->session->setFlash('danger', Module::t('users', 'FRONTEND_FLASH_FAIL_UPDATE')); } return $this->refresh(); } elseif (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } } return $this->render('update', ['model' => $model]); }
<?php /** * Recovery password page view. * * @var \yii\web\View $this View * @var \yii\widgets\ActiveForm $form Form * @var \vova07\users\models\frontend\RecoveryForm $model Model */ use vova07\users\Module; use yii\helpers\Html; use yii\widgets\ActiveForm; $this->title = Module::t('users', 'FRONTEND_RECOVERY_TITLE'); $this->params['breadcrumbs'] = [$this->title]; $this->params['contentId'] = 'error'; $form = ActiveForm::begin(['options' => ['class' => 'center']]); ?> <fieldset class="registration-form"> <?php echo $form->field($model, 'email')->textInput(['placeholder' => $model->getAttributeLabel('Обратитесь пожалуйста к администатору! Кабинет № 245')])->label(false); ?> </fieldset>
/** * @inheritdoc */ public function attributeLabels() { $labels = parent::attributeLabels(); return array_merge($labels, ['password' => Module::t('users', 'ATTR_PASSWORD'), 'repassword' => Module::t('users', 'ATTR_REPASSWORD')]); }
/** * Send an email confirmation token. * * @return boolean true if email was sent successfully */ public function send() { return $this->module->mail->compose('signup', ['model' => $this])->setTo($this->email)->setSubject(Module::t('users', 'EMAIL_SUBJECT_SIGNUP') . ' ' . Yii::$app->name)->send(); }
use vova07\users\Module; use yii\helpers\Html; use yii\widgets\ActiveForm; $this->title = Module::t('users', 'FRONTEND_LOGIN_TITLE'); $this->params['breadcrumbs'] = [$this->title]; $form = ActiveForm::begin(['options' => ['class' => 'center']]); ?> <fieldset class="registration-form"> <?php echo $form->field($model, 'username')->textInput(['placeholder' => $model->getAttributeLabel('username')])->label(false); ?> <?php echo $form->field($model, 'password')->passwordInput(['placeholder' => $model->getAttributeLabel('password')])->label(false); ?> <?php echo $form->field($model, 'rememberMe')->checkbox(); ?> <?php echo Html::submitButton(Module::t('users', 'FRONTEND_LOGIN_SUBMIT'), ['class' => 'btn btn-primary']); ?> <?php echo Module::t('users', 'FRONTEND_LOGIN_OR'); ?> <?php echo Html::a(Module::t('users', 'FRONTEND_LOGIN_RECOVERY'), ['recovery']); ?> </fieldset> <?php ActiveForm::end();
<div class="pass-label">Create Password</div> <?php echo $form->field($user, 'password')->passwordInput(['placeholder' => $user->getAttributeLabel('password')])->label(false); ?> <div class="pass-label">Confirm Password</div> <?php echo $form->field($user, 'repassword')->passwordInput(['placeholder' => $user->getAttributeLabel('repassword')])->label(false); ?> <?php echo $form->field($profile, 'avatar_url')->widget(Widget::className(), ['settings' => ['url' => ['fileapi-upload']], 'crop' => true, 'cropResizeWidth' => 100, 'cropResizeHeight' => 100])->label(false); ?> <?php echo Html::submitButton(Module::t('users', 'FRONTEND_SIGNUP_SUBMIT'), ['class' => 'btn btn-success btn-large pull-right']); ?> <?php //= Html::a(Module::t('users', 'FRONTEND_SIGNUP_RESEND'), ['resend']); ?> </fieldset> <?php ActiveForm::end(); ?> <?php $authAuthChoice = AuthChoice::begin(['baseAuthUrl' => ['/security/auth/auth']]); ?> <ul> <?php
<?php /** * User list page view. * * @var yii\web\View $this View * @var yii\data\ActiveDataProvider $dataProvider DataProvider */ use vova07\users\Module; use yii\widgets\ListView; $this->title = Module::t('users', 'FRONTEND_INDEX_TITLE'); $this->params['subtitle'] = Module::t('users', 'FRONTEND_INDEX_SUBTITLE'); $this->params['breadcrumbs'] = [$this->title]; ?> <div class="row"> <?php echo ListView::widget(['dataProvider' => $dataProvider, 'layout' => '<div class="row">{items}</div><div class="row">{pager}</div>', 'itemView' => '_index_item', 'itemOptions' => ['class' => 'col-md-4 col-sm-6', 'tag' => 'article', 'itemscope' => true, 'itemtype' => 'http://schema.org/Person']]); ?> </div>
/** * @inheritdoc */ public function attributeLabels() { return ['token' => Module::t('users', 'ATTR_TOKEN')]; }
$this->title = Module::t('users', 'BACKEND_INDEX_TITLE'); $this->params['subtitle'] = Module::t('users', 'BACKEND_INDEX_SUBTITLE'); $this->params['breadcrumbs'] = [$this->title]; $gridId = 'users-grid'; $gridConfig = ['id' => $gridId, 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['class' => CheckboxColumn::classname()], 'id', ['attribute' => 'username', 'format' => 'html', 'value' => function ($model) { return Html::a($model['username'], ['update', 'id' => $model['id']], ['data-pjax' => 0]); }], 'email', ['attribute' => 'name', 'value' => 'profile.name'], ['attribute' => 'surname', 'value' => 'profile.surname'], ['attribute' => 'status_id', 'format' => 'html', 'value' => function ($model) { if ($model->status_id === $model::STATUS_ACTIVE) { $class = 'label-success'; } elseif ($model->status_id === $model::STATUS_INACTIVE) { $class = 'label-warning'; } else { $class = 'label-danger'; } return '<span class="label ' . $class . '">' . $model->status . '</span>'; }, 'filter' => Html::activeDropDownList($searchModel, 'status_id', $statusArray, ['class' => 'form-control', 'prompt' => Module::t('users', 'BACKEND_PROMPT_STATUS')])], ['attribute' => 'role', 'filter' => Html::activeDropDownList($searchModel, 'role', $roleArray, ['class' => 'form-control', 'prompt' => Module::t('users', 'BACKEND_PROMPT_ROLE')])], ['attribute' => 'created_at', 'format' => 'date', 'filter' => DatePicker::widget(['model' => $searchModel, 'attribute' => 'created_at', 'options' => ['class' => 'form-control'], 'clientOptions' => ['dateFormat' => 'dd.mm.yy']])], ['attribute' => 'updated_at', 'format' => 'date', 'filter' => DatePicker::widget(['model' => $searchModel, 'attribute' => 'updated_at', 'options' => ['class' => 'form-control'], 'clientOptions' => ['dateFormat' => 'dd.mm.yy']])]]]; $boxButtons = $actions = []; $showActions = false; if (Yii::$app->user->can('BCreateUsers')) { $boxButtons[] = '{create}'; } if (Yii::$app->user->can('BUpdateUsers')) { $actions[] = '{update}'; $showActions = $showActions || true; } if (Yii::$app->user->can('BDeleteUsers')) { $boxButtons[] = '{batch-delete}'; $actions[] = '{delete}'; $showActions = $showActions || true; } if ($showActions === true) {
/** * @inheritdoc */ public function attributeLabels() { return ['username' => Module::t('users', 'ATTR_USERNAME'), 'email' => Module::t('users', 'ATTR_EMAIL'), 'role' => Module::t('users', 'ATTR_ROLE'), 'status_id' => Module::t('users', 'ATTR_STATUS'), 'created_at' => Module::t('users', 'ATTR_CREATED'), 'updated_at' => Module::t('users', 'ATTR_UPDATED')]; }
* Update profile page view. * * @var \yii\web\View $this View * @var \yii\widgets\ActiveForm $form Form * @var \vova07\users\models\frontend\User $model Model */ use vova07\fileapi\Widget; use vova07\users\Module; use yii\helpers\Html; use yii\widgets\ActiveForm; $this->title = Module::t('users', 'FRONTEND_UPDATE_TITLE'); $this->params['breadcrumbs'] = [Module::t('users', 'FRONTEND_SETTINGS_LABEL'), $this->title]; $this->params['contentId'] = 'error'; $form = ActiveForm::begin(['options' => ['class' => 'center']]); ?> <fieldset class="registration-form"> <?php echo $form->field($model, 'name')->textInput(['placeholder' => $model->getAttributeLabel('name')])->label(false); ?> <?php echo $form->field($model, 'surname')->textInput(['placeholder' => $model->getAttributeLabel('surname')])->label(false); ?> <?php echo $form->field($model, 'avatar_url')->widget(Widget::className(), ['settings' => ['url' => ['fileapi-upload']], 'crop' => true, 'cropResizeWidth' => 100, 'cropResizeHeight' => 100])->label(false); ?> <?php echo Html::submitButton(Module::t('users', 'FRONTEND_UPDATE_SUBMIT'), ['class' => 'btn btn-primary pull-right']); ?> </fieldset> <?php ActiveForm::end();
/** * Recovery confirmation page view. * * @var \yii\web\View $this View * @var \yii\widgets\ActiveForm $form Form * @var \vova07\users\models\frontend\RecoveryConfirmationForm $model Model */ use vova07\users\Module; use yii\helpers\Html; use yii\widgets\ActiveForm; $this->title = Module::t('users', 'FRONTEND_RECOVERY_CONFIRMATION_TITLE'); $this->params['breadcrumbs'] = [$this->title]; $this->params['contentId'] = 'error'; $form = ActiveForm::begin(['options' => ['class' => 'center']]); ?> <fieldset class="registration-form"> <?php echo $form->field($model, 'password')->passwordInput(['placeholder' => $model->getAttributeLabel('password')])->label(false); ?> <?php echo $form->field($model, 'repassword')->passwordInput(['placeholder' => $model->getAttributeLabel('repassword')])->label(false); ?> <?php echo $form->field($model, 'token', ['template' => "{input}\n{error}"])->hiddenInput(); ?> <?php echo Html::submitButton(Module::t('users', 'FRONTEND_RECOVERY_CONFIRMATION_SUBMIT'), ['class' => 'btn btn-success pull-right']); ?> </fieldset> <?php ActiveForm::end();
/** * @inheritdoc */ public function attributeLabels() { return ['name' => Module::t('users', 'ATTR_NAME'), 'surname' => Module::t('users', 'ATTR_SURNAME')]; }
<div class="col-sm-6"> <?php echo $form->field($user, 'repassword')->passwordInput(); ?> </div> </div> <div class="row"> <div class="col-sm-6"> <?php echo $form->field($user, 'status_id')->dropDownList($statusArray, ['prompt' => Module::t('users', 'BACKEND_PROMPT_STATUS')]); ?> </div> <div class="col-sm-6"> <?php echo $form->field($user, 'role')->dropDownList($roleArray, ['prompt' => Module::t('users', 'BACKEND_PROMPT_ROLE')]); ?> </div> </div> <div class="row"> <div class="col-sm-12"> <?php echo $form->field($profile, 'avatar_url')->widget(Widget::className(), ['settings' => ['url' => ['fileapi-upload']], 'crop' => true, 'cropResizeWidth' => 100, 'cropResizeHeight' => 100]); ?> </div> </div> <?php $box->endBody(); $box->beginFooter(); echo Html::submitButton($user->isNewRecord ? Module::t('users', 'BACKEND_CREATE_SUBMIT') : Module::t('users', 'BACKEND_UPDATE_SUBMIT'), ['class' => $user->isNewRecord ? 'btn btn-primary btn-large' : 'btn btn-success btn-large']); $box->endFooter(); ActiveForm::end();
/** * Confirm password recovery request page. * * @param string $token Confirmation token * * @return mixed View */ public function actionRecoveryConfirmation($token) { $model = new RecoveryConfirmationForm(['token' => $token]); if (!$model->isValidToken()) { Yii::$app->session->setFlash('danger', Module::t('users', 'FRONTEND_FLASH_FAIL_RECOVERY_CONFIRMATION_WITH_INVALID_KEY')); return $this->goHome(); } if ($model->load(Yii::$app->request->post())) { if ($model->validate()) { if ($model->recovery()) { Yii::$app->session->setFlash('success', Module::t('users', 'FRONTEND_FLASH_SUCCESS_RECOVERY_CONFIRMATION')); return $this->goHome(); } else { Yii::$app->session->setFlash('danger', Module::t('users', 'FRONTEND_FLASH_FAIL_RECOVERY_CONFIRMATION')); return $this->refresh(); } } elseif (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } } return $this->render('recovery-confirmation', ['model' => $model]); }
/** * Update user page. * * @param integer $id User ID * * @return mixed View */ public function actionUpdate($id) { $user = $this->findModel($id); $user->setScenario('admin-update'); $profile = $user->profile; $statusArray = User::getStatusArray(); $roleArray = User::getRoleArray(); if ($user->load(Yii::$app->request->post()) && $profile->load(Yii::$app->request->post())) { if ($user->validate() && $profile->validate()) { $user->populateRelation('profile', $profile); if (!$user->save(false)) { Yii::$app->session->setFlash('danger', Module::t('users', 'BACKEND_FLASH_FAIL_ADMIN_CREATE')); } return $this->refresh(); } elseif (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return array_merge(ActiveForm::validate($user), ActiveForm::validate($profile)); } } return $this->render('update', ['user' => $user, 'profile' => $profile, 'roleArray' => $roleArray, 'statusArray' => $statusArray]); }
<?php /** * User create view. * * @var \yii\web\View $this View * @var \vova07\users\models\backend\User $user User * @var \vova07\users\models\Profile $profile Profile * @var array $roleArray Roles array * @var array $statusArray Statuses array * @var \vova07\themes\admin\widgets\Box $box Box widget instance */ use vova07\themes\admin\widgets\Box; use vova07\users\Module; $this->title = Module::t('users', 'BACKEND_CREATE_TITLE'); $this->params['subtitle'] = Module::t('users', 'BACKEND_CREATE_SUBTITLE'); $this->params['breadcrumbs'] = [['label' => $this->title, 'url' => ['index']], $this->params['subtitle']]; ?> <div class="row"> <div class="col-sm-12"> <?php $box = Box::begin(['title' => $this->params['subtitle'], 'renderBody' => false, 'options' => ['class' => 'box-primary'], 'bodyOptions' => ['class' => 'table-responsive'], 'buttonsTemplate' => '{cancel}']); echo $this->render('_form', ['user' => $user, 'profile' => $profile, 'roleArray' => $roleArray, 'statusArray' => $statusArray, 'box' => $box]); Box::end(); ?> </div> </div>
/** * @inheritdoc */ public function attributeLabels() { return ['password' => Module::t('users', 'ATTR_PASSWORD'), 'repassword' => Module::t('users', 'ATTR_REPASSWORD')]; }