$previousMail = $model->email ; | $previousMail = $model->email ; | ||||
$user = User::find()->with('userProducer')->where(['id' => $model['id']])->one(); | $user = User::find()->with('userProducer')->where(['id' => $model['id']])->one(); | ||||
$userBelongToProducer = UserProducer::findOne(['id_user' => $id, 'id_producer' => GlobalParam::getCurrentProducerId()]); | $userBelongToProducer = UserProducer::findOne(['id_user' => $id, 'id_producer' => GlobalParam::getCurrentProducerId()]); | ||||
if (($userBelongToProducer && count($user->userProducer) == 1) || User::getCurrentStatus() == USER::STATUS_ADMIN) { | |||||
if ($userBelongToProducer) { | |||||
if ($model->load(Yii::$app->request->post()) && $model->save()) { | if ($model->load(Yii::$app->request->post()) && $model->save()) { | ||||
// on envoie le mail de bienvenue si le mail vient d'être défini | // on envoie le mail de bienvenue si le mail vient d'être défini | ||||
} | } | ||||
} | } | ||||
else { | else { | ||||
throw new UserException("Vous ne pouvez pas modifier cet utilisateur, soit parce qu'il appartient à plusieurs établissements, soit parce qu'il n'est pas lié au votre."); | |||||
throw new UserException("Vous ne pouvez pas modifier cet utilisateur."); | |||||
} | } | ||||
// Nouveau mot de passe | // Nouveau mot de passe |
'update' => function ($url, $model) { | 'update' => function ($url, $model) { | ||||
$url = Yii::$app->urlManager->createUrl(['user/update', 'id' => $model->id]); | $url = Yii::$app->urlManager->createUrl(['user/update', 'id' => $model->id]); | ||||
$user = User::find()->with('userProducer')->where(['id' => $model->id])->one(); | $user = User::find()->with('userProducer')->where(['id' => $model->id])->one(); | ||||
if (count($user->userProducer) <= 1) { | |||||
return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [ | |||||
'title' => Yii::t('app', 'Modifier'), 'class' => 'btn btn-default' | |||||
]); | |||||
} else { | |||||
return '<span data-toggle="tooltip" data-placement="top" title="Vous ne pouvez pas modifier les utilisateurs qui sont liés à plusieurs producteurs."><span class="glyphicon glyphicon-remove-sign"></span> Non modifiable</span>'; | |||||
} | |||||
return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [ | |||||
'title' => Yii::t('app', 'Modifier'), 'class' => 'btn btn-default' | |||||
]); | |||||
}, | }, | ||||
'delete' => function ($url, $model) { | 'delete' => function ($url, $model) { | ||||
return Html::a('<span class="glyphicon glyphicon-trash"></span>', Yii::$app->urlManager->createUrl(array_merge(['user/delete', 'id' => $model->id], Yii::$app->getRequest()->getQueryParams())), [ | return Html::a('<span class="glyphicon glyphicon-trash"></span>', Yii::$app->urlManager->createUrl(array_merge(['user/delete', 'id' => $model->id], Yii::$app->getRequest()->getQueryParams())), [ |
$this->redirect(Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/producer-offline','id' => $producer->id])) ; | $this->redirect(Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/producer-offline','id' => $producer->id])) ; | ||||
} | } | ||||
if(!$userProducer) { | |||||
Producer::addUser(User::getCurrentId(), $producer->id, 0) ; | |||||
} | |||||
return parent::beforeAction($event); | return parent::beforeAction($event); | ||||
} | } | ||||