[ 'class' => VerbFilter::class, 'actions' => [ ], ], 'access' => [ 'class' => AccessControl::class, 'rules' => [ [ 'allow' => true, 'roles' => ['@'], 'matchCallback' => function ($rule, $action) { return $this->getUserManager()->hasAccessBackend(); } ] ], ], ]; } /** * Affiche les utilisateurs ayant accès à l'administration de ce producteur. * Gestion du formulaire permettant d'en ajouter de nouveaux. */ public function actionIndex() { $userManager = $this->getUserManager(); $producer = $this->getProducerCurrent(); $userSearch = new UserSearch(); $usersArray = $userSearch->search()->query->all(); $modelAccessUserProducerForm = new AccessUserProducerForm; if ($modelAccessUserProducerForm->load(\Yii::$app->request->post()) && $modelAccessUserProducerForm->validate()) { $user = $userManager->findOneUserById($modelAccessUserProducerForm->id_user); if($user && $userManager->grantAccess($user)) { $this->setFlash('success', 'Droits ajoutés à l\'utilisateur'); } else { $this->addFlash('error', "Une erreur est survenue."); } } return $this->render('index', [ 'usersArray' => $usersArray, 'usersAccessArray' => $userManager->findUsersByProducer($producer), 'producer' => $producer, 'modelAccessUserProducerForm' => $modelAccessUserProducerForm, ]); } public function actionDelete($idUser) { $userManager = $this->getUserManager(); $user = $userManager->findOneUserById($idUser); if ($user && $userManager->deleteAccess($user)) { $this->addFlash('success', 'Droits de l\'utilisateur supprimé.'); } else { $this->addFlash('error', "Une erreur est survenue."); } return $this->redirect(['index']); } }