\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); } }