/** * Deletes an existing User model. Absolutely remove user from db if you are admin! * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionDelete($id) { if ($id == Yii::$app->user->getId()) { Yii::$app->getSession()->setFlash('danger', Yii::t('user', 'You can not remove your own account')); } else { /** @var PersonsRecord $model */ $model = $this->findModel($id); $isAdmin = Yii::$app->user->identity->isAdmin; if (!$isAdmin) { if (!$model->isDeleted) { $model->updateAttributes(['Deleted' => 1]); Yii::$app->getSession()->setFlash('success', Yii::t('user', 'User has been deleted')); } else { $model->updateAttributes(['Deleted' => 0]); Yii::$app->getSession()->setFlash('success', Yii::t('user', 'User has been recovered')); } } else { $userName = $model->fullName; if ($model->account->delete()) { Yii::getLogger()->log('Удален аккаунт ' . $userName, Logger::LEVEL_WARNING); // echo 'ACCOUNT DELETE OK'."\n"; } if ($model->card) { $hardId = $model->card->HardID; if ($model->card->delete()) { Yii::getLogger()->log('Удалена карта ' . $hardId, Logger::LEVEL_WARNING); // echo 'CARD DELETE OK'."\n"; } } else { Yii::warning('Карта пользователя НЕ найдена ' . $id . ' - ' . $userName, 'info'); } if ($model->delete()) { Yii::getLogger()->log('Удален пользователь ' . $id . ' - ' . $userName, Logger::LEVEL_WARNING); $finRows = FinanceRecord::deleteAll(['ContractorID' => $id]); Yii::warning('Удалены фин. записи (' . $finRows . ') для поьзователя ' . $id . ' - ' . $userName, 'info'); } } } return $this->redirect(Url::previous('actions-redirect')); }