Skip to content
Snippets Groups Projects

Hotline#21953 domain permissions

Merged Patrick Barroca requested to merge hotline#21953-domain-permissions into hotline-master
Compare and
+ 205
189
Preferences
Compare changes
Files
@@ -18,15 +18,13 @@
* along with BOKEH; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
//////////////////////////////////////////////////////////////////////////////////////////
// OPAC3 - Controleur CATALOGUES DYNAMIQUES
//////////////////////////////////////////////////////////////////////////////////////////
class Admin_CatalogueController extends ZendAfi_Controller_Action {
use Trait_Translator;
protected $_user;
function preDispatch() {
public function preDispatch() {
parent::preDispatch();
$this->_user = Class_Users::getIdentity();
@@ -38,20 +36,18 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
}
function indexAction() {
public function indexAction() {
if (!$this->view->catalogues = Class_Catalogue::findTopCatalogues())
$this->view->message = $this->_('Aucun domaine n\'a été trouvé');
$this->view->titre = $this->_('Définition des domaines');
}
function testerAction() {
if(!$id_catalogue=(int)$this->_getParam("id_catalogue"))
public function testerAction() {
if (!$id_catalogue = (int)$this->_getParam("id_catalogue"))
$this->_redirect("admin/catalogue/index");
if(!$catalogue = Class_Catalogue::find($id_catalogue))
if (!$catalogue = Class_Catalogue::find($id_catalogue))
$this->_redirect("admin/catalogue/index");
$ret = ['requete' => '',
@@ -69,7 +65,7 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
}
}
}
// Variables de vue
$this->view->requete = $ret["requete"];
$this->view->temps_execution = $ret["temps_execution"] . " secs.";
$this->view->nb_notices = $ret["nb_notices"];
@@ -80,20 +76,15 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
}
function addAction() {
$catalogue = Class_Catalogue::getLoader()
->newInstance()
->setLibelle("** nouveau domaine **")
->setParentId($this->_getParam('id_catalogue', null))
->setUser(Class_Users::getIdentity());
public function addAction() {
$catalogue = $this->_newCatalogue();
if ($this->isSaved($catalogue)) {
if($id_module = $this->_getParam('id_module'))
$this->updateConfigKiosque($id_module,$catalogue);
if ($id_module = $this->_getParam('id_module'))
$this->updateConfigKiosque($id_module, $catalogue);
$this->_helper->notify($this->_('Domaine %s ajouté', $catalogue->getLibelle()));
$this->_redirectClose('admin/catalogue/edit/id_catalogue/'.$catalogue->getId());
$this->_redirectClose('admin/catalogue/edit/id_catalogue/' . $catalogue->getId());
return;
}
@@ -114,57 +105,58 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
}
//----------------------------------------------------------------------------------
// modification d'un catalogue
//----------------------------------------------------------------------------------
function editAction() {
$id_catalogue=(int)$this->_getParam("id_catalogue");
if (!$catalogue = Class_Catalogue::getLoader()->find($id_catalogue)) {
$this->_redirect("admin/catalogue/index");
public function editAction() {
if ((!$catalogue = Class_Catalogue::find((int)$this->_getParam('id_catalogue')))
|| (!$catalogue->canBeDeletedOrModifyByUser($this->_user))) {
$this->_redirect('admin/catalogue/index');
return;
}
if ($this->isSaved($catalogue)) {
$this->_helper->notify($this->_('Domaine %s sauvegardé', $catalogue->getLibelle()));
$this->_redirectClose("admin/catalogue/edit/id_catalogue/".$catalogue->getId());
$this->_redirectClose('admin/catalogue/edit/id_catalogue/' . $catalogue->getId());
return;
}
$this->view->titre = $this->_('Modification du domaine: %s', $catalogue->getLibelle());
$this->view->catalogue=$catalogue;
$this->getHelper('ViewRenderer')->renderScript('catalogue/form.phtml');
}
function duplicateAction() {
$id_catalogue=(int)$this->_getParam("id_catalogue");
if (!$catalogue = Class_Catalogue::getLoader()->find($id_catalogue)) {
public function duplicateAction() {
if (!$catalogue = Class_Catalogue::find((int)$this->_getParam("id_catalogue"))) {
$this->_redirect("admin/catalogue/index");
return;
}
$new_catalogue = Class_Catalogue::getLoader()
->newInstance()
->setLibelle("** nouveau domaine **")
->setParentId($this->_getParam('id_catalogue', null))
->setUser(Class_Users::getIdentity());
$new_catalogue = $this->_newCatalogue();
if ($this->isSaved($new_catalogue)) {
$this->_helper->notify($this->_('Domaine %s sauvegardé', $catalogue->getLibelle()));
$this->_redirect("admin/catalogue/index");
return;
}
$new_catalogue=$catalogue->copy();
$new_catalogue = $catalogue->copy();
$this->view->titre = $this->_('Duplication du domaine: %s', $catalogue->getLibelle());
$this->view->catalogue=$new_catalogue;
$this->view->catalogue = $new_catalogue;
$this->getHelper('ViewRenderer')->renderScript('catalogue/form.phtml');
}
protected function _newCatalogue() {
return Class_Catalogue::newInstance(['libelle' => '** nouveau domaine **',
'parent_id' => $this->_getParam('id_catalogue', null),
'user' => $this->_user]);
}
public function isSaved($catalogue) {
if (!$this->_request->isPost())
return false;
return $catalogue
->updatePostAttributes($this->_request->getPost())
->save();
@@ -182,57 +174,47 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
}
//----------------------------------------------------------------------------------
// Suppression d'un catalogue
//----------------------------------------------------------------------------------
function deleteAction() {
$id_catalogue=(int)$this->_getParam("id_catalogue");
$user = Class_Users::getIdentity();
if ($catalogue = Class_Catalogue::find($id_catalogue)) {
public function deleteAction() {
if (($catalogue = Class_Catalogue::find((int)$this->_getParam('id_catalogue')))
&& $catalogue->canBeDeletedOrModifyByUser($this->_user)) {
Class_NoticeDomain::deleteByDomain($catalogue);
$catalogue->deleteWithUser($user);
$catalogue->deleteWithUser($this->_user);
}
$this->_redirect("admin/catalogue/index");
}
public function paniersAction() {
$id_catalogue=(int)$this->_getParam("id_catalogue");
if(!$catalogue = Class_Catalogue::find($id_catalogue))
if (!$catalogue = Class_Catalogue::find((int)$this->_getParam("id_catalogue")))
return $this->_redirect("admin/catalogue/index");
if ($this->_request->isPost()) {
$panier = Class_PanierNotice::find($this->_request->getPost('id_panier'));
$catalogue
->addPanierNotice($panier)
->save();
$catalogue->addPanierNotice($panier)->save();
$panier->addCatalogue($catalogue)->save();
$panier->index();
$this->_helper->notify($this->_('Panier "%s" ajouté', $panier->getLibelle()));
$this->_redirect('admin/catalogue/paniers/id_catalogue/'.$id_catalogue);
$this->_redirect('admin/catalogue/paniers/id_catalogue/' . $catalogue->getId());
return;
}
if ($id_panier_to_remove = (int)$this->_getParam('remove')) {
$panier = Class_PanierNotice::find($id_panier_to_remove);
$catalogue
->removePanierNotice($panier)
->save();
$catalogue->removePanierNotice($panier)->save();
$panier->removeCatalogue($catalogue)->save();
$this->_helper->notify($this->_('Panier "%s" retiré', $panier->getLibelle()));
$this->_redirect('admin/catalogue/paniers/id_catalogue/'.$id_catalogue);
$this->_redirect('admin/catalogue/paniers/id_catalogue/' . $catalogue->getId());
return;
}
$this->view->form_paniers = $this->formAjoutPanier($catalogue);
$this->view->catalogue = $catalogue;
$this->view->titre = $this->_('Paniers du domaine: %s', $catalogue->getLibelle());
}
public function formAjoutPanier($catalogue) {
protected function formAjoutPanier($catalogue) {
$options = [];
$paniers = Class_PanierNotice::findAllBelongsToAdmin();
foreach($paniers as $panier)
@@ -247,11 +229,11 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
}
function domainesPaniersJsonAction() {
public function domainesPaniersJsonAction() {
$this->_helper->viewRenderer->setNoRender();
$data = [];
$data[] = Class_Users::getIdentity()->getPaniersJson();
$data[] = $this->_user->getPaniersJson();
$data[] = (new Class_Catalogue())->getDomainesJson();
$data[] = (new Class_PanierNotice())->getPaniersAdminsNotInCatalogueJson();
$JSON = json_encode($data);