128], [['email', 'image', 'description', 'address'], 'string', 'max' => 255], [['password'], 'string', 'max' => 32], [['phone', 'tax_number', 'country'], 'string', 'max' => 20], [['zip'], 'string', 'max' => 8], [['city'], 'string', 'max' => 30] ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id_customer' => Yii::t('common/customer', 'Id Customer'), 'id_customer_card' => Yii::t('common/customer', 'Id Customer Card'), 'id_user' => Yii::t('common/customer', 'Id User'), 'id_partner_card' => Yii::t('common/customer', 'Id Partner Card'), 'id_proposer' => Yii::t('common/customer', 'Id Proposer'), 'name' => Yii::t('common/customer', 'Name'), 'email' => Yii::t('common/customer', 'Email'), 'password' => Yii::t('common/customer', 'Password'), 'phone' => Yii::t('common/customer', 'Phone'), 'sex' => Yii::t('common/customer', 'Sex'), 'date_stundent_card_expire' => Yii::t('common/customer', 'Date Stundent Card Expire'), 'birthdate' => Yii::t('common/customer', 'Birthdate'), 'image' => Yii::t('common/customer', 'Image'), 'description' => Yii::t('common/customer', 'Description'), 'tax_number' => Yii::t('common/customer', 'Tax Number'), 'country' => Yii::t('common/customer', 'Country'), 'zip' => Yii::t('common/customer', 'Zip'), 'city' => Yii::t('common/customer', 'City'), 'address' => Yii::t('common/customer', 'Address'), 'created_at' => Yii::t('common/customer', 'Created At'), 'updated_at' => Yii::t('common/customer', 'Updated At'), 'customerCardNumber' => Yii::t('common/customer', 'Card number'), 'cardNumber' => Yii::t('common/customer', 'Card number'), 'mother_name' => Yii::t('common/customer', 'Anyja neve'), 'birth_place' => Yii::t('common/customer', 'Születési hely'), ]; } static function statuses() { return [ self::STATUS_ACTIVE => Yii::t('common/account', 'Active'), self::STATUS_DELETED => Yii::t('common/account', 'Inactive'), ]; } public function getStatusHuman(){ $result = null; $s = self::statuses( ); if ( array_key_exists($this->status, $s)){ $result = $s[$this->status]; } return $result; } static function sexes() { return [ self::SEX_UNKNOWN => Yii::t('common/customer', 'Unknown sex'), self::SEX_MAN => Yii::t('common/customer', 'Man'), self::SEX_WOMAN => Yii::t('common/customer', 'Woman'), ]; } public function getSexHuman(){ $result = null; $s = self::sexes( ); if ( array_key_exists($this->sex, $s)){ $result = $s[$this->sex]; } return $result; } public function isInactive(){ return $this->status == self::STATUS_DELETED; } public function getCard(){ return $this->hasOne ( Card::className (), [ 'id_card' => 'id_customer_card' ] ); } public function getUser(){ return $this->hasOne ( User::className (), [ 'id' => 'id_user' ] ); } public function getImage1(){ return $this->hasOne ( Image::className (), [ 'id_image' => 'id_image' ] ); } public function getCustomerCardNumber(){ $result = null; $card = $this->card; if ( $card != null) { $result = $card->number; } return $result; } public function getUsername(){ $result = null; $user = $this->user; if ( $user != null) { $result = $user->username; } return $result; } public function getFullAddress(){ $zip = $this->zip; $city = $this->city; $address = $this->address; $result = $zip . " " .$city . ", ". $address; return $result; } public function afterSave($insert, $changedAttributes){ if ( !$insert ){ Card::updateCardFlagTicket($this->id_customer_card); } } /** * Finds an identity by the given ID. * @param string|integer $id the ID to be looked for * @return void the identity object that matches the given ID. * Null should be returned if such an identity cannot be found * or the identity is not in an active state (disabled, deleted, etc.) */ public static function findIdentity($id) { Customer::findOne($id); } /** * Finds an identity by the given token. * @param mixed $token the token to be looked for * @param mixed $type the type of the token. The value of this parameter depends on the implementation. * For example, [[\yii\filters\auth\HttpBearerAuth]] will set this parameter to be `yii\filters\auth\HttpBearerAuth`. * @return void the identity object that matches the given token. * Null should be returned if such an identity cannot be found * or the identity is not in an active state (disabled, deleted, etc.) * @throws NotSupportedException */ public static function findIdentityByAccessToken($token, $type = null) { throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.'); } /** * Returns an ID that can uniquely identify a user identity. * @return string|integer an ID that uniquely identifies a user identity. */ public function getId() { return $this->id_customer; } /** * Returns a key that can be used to check the validity of a given identity ID. * * The key should be unique for each individual user, and should be persistent * so that it can be used to check the validity of the user identity. * * The space of such keys should be big enough to defeat potential identity attacks. * * This is required if [[User::enableAutoLogin]] is enabled. * @return string a key that is used to check the validity of a given identity ID. * @see validateAuthKey() */ public function getAuthKey() { // todo: add authkey to customer } /** * Validates the given auth key. * * This is required if [[User::enableAutoLogin]] is enabled. * @param string $authKey the given auth key * @return boolean whether the given auth key is valid. * @see getAuthKey() */ public function validateAuthKey($authKey) { return $this->getAuthKey() === $authKey; } /** * @param $password * @return bool * @throws \yii\base\InvalidConfigException */ public function validatePassword($password) { return Yii::$app->security->validatePassword($password, $this->password_hash); } /** * Generates password hash from password and sets it to the model * * @param string $password * @throws Exception * @throws \yii\base\InvalidConfigException */ public function setPassword($password) { $this->password_hash = Yii::$app->security->generatePasswordHash($password); } /** * Generates "remember me" authentication key * @throws InvalidConfigException if OpenSSL extension is needed but not installed.*@throws \yii\base\Exception * @throws Exception */ public function generateAuthKey() { $this->auth_key = Yii::$app->security->generateRandomString(); } /** * Generates new password reset token */ public function generatePasswordResetToken() { $this->password_reset_token = Yii::$app->security->generateRandomString() . '_' . time(); } /** * Removes password reset token */ public function removePasswordResetToken() { $this->password_reset_token = null; } /** * @throws InvalidConfigException * @throws Exception */ public function setDefaultPassword(){ $hasEmail = isset($this->email) && $this->email !== ''; $hasBirthday = isset($this->birthdate) ; if ( $hasEmail && $hasBirthday){ $customerBirthDate = new \DateTime($this->birthdate); $this->setPassword($customerBirthDate->format('Ymd')); } } }