|
|
|
|
|
|
|
|
{ |
|
|
{ |
|
|
$producer = $this->getProducerCurrent() ; |
|
|
$producer = $this->getProducerCurrent() ; |
|
|
|
|
|
|
|
|
$this->getLogic()->setProducerContext($producer); |
|
|
|
|
|
|
|
|
|
|
|
$userProducer = UserProducer::find() |
|
|
|
|
|
->where([ |
|
|
|
|
|
'id_user' => GlobalParam::getCurrentUserId(), |
|
|
|
|
|
'id_producer' => $producer->id |
|
|
|
|
|
]) |
|
|
|
|
|
->one() ; |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
* Producteur hors ligne |
|
|
|
|
|
*/ |
|
|
|
|
|
if(!$producer->active && (\Yii::$app->user->isGuest || \Yii::$app->user->identity->id_producer != $producer->id)) { |
|
|
|
|
|
$this->redirect(\Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/producer-offline','id' => $producer->id])) ; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if(!\Yii::$app->params['maintenanceMode']) { |
|
|
|
|
|
$this->getLogic()->setProducerContext($producer); |
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
* 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])) ; |
|
|
|
|
|
|
|
|
$userProducer = UserProducer::find() |
|
|
|
|
|
->where([ |
|
|
|
|
|
'id_user' => GlobalParam::getCurrentUserId(), |
|
|
|
|
|
'id_producer' => $producer->id |
|
|
|
|
|
]) |
|
|
|
|
|
->one() ; |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
* Producteur hors ligne |
|
|
|
|
|
*/ |
|
|
|
|
|
if(!$producer->active && (\Yii::$app->user->isGuest || \Yii::$app->user->identity->id_producer != $producer->id)) { |
|
|
|
|
|
$this->redirect(\Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/producer-offline','id' => $producer->id])) ; |
|
|
} |
|
|
} |
|
|
// si l'utilisateur est connecté et qu'il n'a pas encore saisi de code |
|
|
|
|
|
else { |
|
|
|
|
|
if(!$userProducer || ($userProducer && !$userProducer->active)) { |
|
|
|
|
|
$this->redirect(\Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/producer-code','id' => $producer->id])) ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
* 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 { |
|
|
|
|
|
if(!$userProducer || ($userProducer && !$userProducer->active)) { |
|
|
|
|
|
$this->redirect(\Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/producer-code','id' => $producer->id])) ; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Retourne le producteur courant. |
|
|
* Retourne le producteur courant. |
|
|
*/ |
|
|
*/ |
|
|
public function getProducerCurrent() : Producer |
|
|
|
|
|
|
|
|
public function getProducerCurrent() : ?Producer |
|
|
{ |
|
|
{ |
|
|
if($this->producer) { |
|
|
if($this->producer) { |
|
|
return $this->producer ; |
|
|
return $this->producer ; |
|
|
|
|
|
|
|
|
return $this->producer ; |
|
|
return $this->producer ; |
|
|
} |
|
|
} |
|
|
else { |
|
|
else { |
|
|
throw new \yii\web\HttpException(404, 'Producteur introuvable ('.$slug.')'); |
|
|
|
|
|
|
|
|
if($this->action->id != 'maintenance') { |
|
|
|
|
|
throw new \yii\web\HttpException(404, 'Producteur introuvable ('.$slug.')'); |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |