Example #1
0
 /**
  * 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'));
     }
 }
Example #2
0
 /**
  * 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'));
     }
 }
Example #3
0
 /**
  * @return \vova07\users\Module|null Module instance
  */
 public function getModule()
 {
     if ($this->_module === null) {
         $module = Module::getInstance();
         if ($module instanceof Module) {
             $this->_module = $module;
         } else {
             $this->_module = Yii::$app->getModule('users');
         }
     }
     return $this->_module;
 }
Example #4
0
 /**
  * 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();
 }
Example #6
0
    <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();
Example #7
0
 /**
  * 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]);
 }
Example #8
0
<?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>
Example #9
0
File: User.php Project: lulliz/qast
 /**
  * @inheritdoc
  */
 public function attributeLabels()
 {
     $labels = parent::attributeLabels();
     return array_merge($labels, ['password' => Module::t('users', 'ATTR_PASSWORD'), 'repassword' => Module::t('users', 'ATTR_REPASSWORD')]);
 }
Example #10
0
 /**
  * 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();
 }
Example #11
0
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']);
?>
        &nbsp;
        <?php 
echo Module::t('users', 'FRONTEND_LOGIN_OR');
?>
        &nbsp;
        <?php 
echo Html::a(Module::t('users', 'FRONTEND_LOGIN_RECOVERY'), ['recovery']);
?>
    </fieldset>
<?php 
ActiveForm::end();
Example #12
0
                        <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 
Example #13
0
<?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>
Example #14
0
 /**
  * @inheritdoc
  */
 public function attributeLabels()
 {
     return ['token' => Module::t('users', 'ATTR_TOKEN')];
 }
Example #15
0
$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) {
Example #16
0
 /**
  * @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')];
 }
Example #17
0
 * 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();
Example #18
0
/**
 * 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();
Example #19
0
 /**
  * @inheritdoc
  */
 public function attributeLabels()
 {
     return ['name' => Module::t('users', 'ATTR_NAME'), 'surname' => Module::t('users', 'ATTR_SURNAME')];
 }
Example #20
0
        <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();
Example #21
0
 /**
  * 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]);
 }
Example #22
0
 /**
  * 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]);
 }
Example #23
0
<?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>
Example #24
0
 /**
  * @inheritdoc
  */
 public function attributeLabels()
 {
     return ['password' => Module::t('users', 'ATTR_PASSWORD'), 'repassword' => Module::t('users', 'ATTR_REPASSWORD')];
 }