getProducer() ; /* * Producteur protègé par un code */ if(strlen($producer->code)) { // Si l'utilisateur n'est pas connecté, on le redirige vers une page qui lui permet // de se connecter ou de s'inscrire en saisissant le code du producteur if(Yii::$app->user->isGuest) { $this->redirect(Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/producer','id' => $producer->id])) ; } // si l'utilisateur est connecté et qu'il n'a pas encore saisi de code else { $userProducer = UserProducer::find() ->where([ 'id_user' => User::getId(), 'id_producer' => $producer->id ]) ->one() ; if(!$userProducer || ($userProducer && !$userProducer->active)) { $this->redirect(Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/producer-code','id' => $producer->id])) ; } } } return parent::beforeAction($event); } /** * Retourne le producteur courant. * * @return Etablissement * @throws \yii\web\HttpException */ public function getProducer() { if($this->producer) { return $this->producer ; } else { $producer = Producer::find() ->with('contact') ->where(['slug' => Yii::$app->getRequest()->getQueryParam('slug_producer')]) ->one() ; if($producer) { $this->producer = $producer ; return $this->producer ; } else { throw new \yii\web\HttpException(404, 'Producteur introuvable'); } } } } ?>