| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?php
- namespace app\models\user;
- use dektrium\user\helpers\Password;
- use dektrium\user\models\Token;
- use Exception;
- use RuntimeException;
- use Yii;
- use yii\helpers\ArrayHelper;
- use yii\helpers\Html;
- use yii\helpers\Url;
- use dektrium\user\models\User as BaseUser;
- use yii\web\Application as WebApplication;
- /**
- *
- * @property Organizations $organization
- */
- class User extends BaseUser
- {
- /** @inheritdoc */
- public function attributeLabels()
- {
- return [
- 'uuid' => \Yii::t('user', '№ договора'),
- 'username' => \Yii::t('user', 'Username'),
- 'fio' => \Yii::t('user', 'ФІО'),
- 'cname' => \Yii::t('user', 'Компанія'),
- 'type' => \Yii::t('user', 'Role'),
- 'email' => \Yii::t('user', 'Email'),
- 'phone' => \Yii::t('user', 'Phone'),
- 'address' => \Yii::t('user', 'Address'),
- 'balance' => \Yii::t('user', 'Balance'),
- 'plan_title' => \Yii::t('user', 'Plan title'),
- 'plan_price' => \Yii::t('user', 'Plan price'),
- 'payment_online' => \Yii::t('user', 'Payment online'),
- 'registration_ip' => \Yii::t('user', 'Registration ip'),
- 'unconfirmed_email' => \Yii::t('user', 'New email'),
- 'password' => \Yii::t('user', 'Password'),
- 'created_at' => \Yii::t('user', 'Registration time'),
- 'last_login_at' => \Yii::t('user', 'Last login'),
- 'confirmed_at' => \Yii::t('user', 'Confirmation time'),
- ];
- }
- public function scenarios()
- {
- $scenarios = parent::scenarios();
- return ArrayHelper::merge($scenarios, [
- 'api' => ['uuid', 'password'],
- ]);
- }
- /** @inheritdoc */
- public function rules()
- {
- return [
- // username rules
- 'usernameTrim' => ['username', 'trim'],
- 'usernameRequired' => ['username', 'required', 'on' => ['register', 'create', 'connect', 'update']],
- 'usernameMatch' => ['username', 'match', 'pattern' => static::$usernameRegexp],
- 'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 255],
- 'usernameUnique' => [
- 'username',
- 'unique',
- 'message' => \Yii::t('user', 'This username has already been taken')
- ],
- // uuid rules
- 'uuidInt' => ['uuid', 'integer'],
- 'uuidRequired' => ['uuid', 'required', 'on' => ['register', 'create', 'connect', 'update']],
- 'uuidUnique' => [
- 'username',
- 'unique',
- 'message' => \Yii::t('user', 'This username has already been taken')
- ],
- 'fioTrim' => ['fio', 'trim'],
- 'cnameTrim' => ['cname', 'trim'],
- 'balanceInt' => [['balance', 'plan_price', 'payment_online'], 'integer'],
- 'planLength' => ['plan_title', 'string', 'max' => 255],
- 'addressLength' => ['address', 'string', 'max' => 255],
- 'phone' => ['phone', 'string'],
- 'roleIsEmpty' => ['type', 'default', 'value' => function($model){return empty($model->type) ? 'client': '';}],
- // email rules
- 'emailIsEmpty' => ['email', 'default', 'value' => function($model){return empty($model->email) ? $model->uuid . '@example.com': $model->email;}],
- 'emailTrim' => ['email', 'trim'],
- 'emailRequired' => ['email', 'required', 'on' => ['register', 'connect', 'create', 'update']],
- 'emailPattern' => ['email', 'email'],
- 'emailLength' => ['email', 'string', 'max' => 255],
- 'emailUnique2' => [
- 'email',
- 'unique',
- 'except' => ['api']
- ],
- 'emailUnique' => [
- 'email',
- 'unique',
- 'message' => \Yii::t('user', 'This email address has already been taken')
- ],
- // password rules
- 'passwordRequired' => ['password', 'required', 'on' => ['register']],
- 'passwordLength' => ['password', 'string', 'min' => 6, 'max' => 72, 'on' => ['register', 'create']],
- ];
- }
- public static function typeNames()
- {
- return [
- 'admin' => t('Адміністратор майданчика'),
- ];
- }
- public static function findIdentityByAccessToken($token, $type = null)
- {
- return static::findOne(['auth_key' => $token]);
- }
- /** @inheritdoc */
- public function beforeSave($insert)
- {
- if(!$insert){
- if ($this->getAttribute('balance') > $this->getOldAttribute('balance')){
- $this->setAttribute('payment_online', NULL);
- }
- }
- return parent::beforeSave($insert);
- }
- }
|