Skip to content
Snippets Groups Projects

full plugin mod for multiselection

Compare and Show latest version
2 files
+ 173
170
Preferences
Compare changes
Files
2
@@ -22,6 +22,12 @@ class Admin_UsergroupController extends ZendAfi_Controller_Action {
protected
$_permissions_access;
public function getPlugins() {
return ['ZendAfi_Controller_Plugin_Manager_UserGroup'];
}
public function getRessourceDefinitions() {
return [
'model' => [
@@ -38,8 +44,7 @@ class Admin_UsergroupController extends ZendAfi_Controller_Action {
'add' => ['title' => $this->_("Ajouter un groupe d'utilisateurs")],
'edit' => ['title' => $this->_("Modifier le groupe d'utilisateurs: %s")]],
'form_class_name' => 'ZendAfi_Form_Admin_UserGroup',
'plugins' => ['ZendAfi_Controller_Plugin_Manager_UserGroup']];
'form_class_name' => 'ZendAfi_Form_Admin_UserGroup'];
}
@@ -71,54 +76,6 @@ class Admin_UsergroupController extends ZendAfi_Controller_Action {
}
public function _updateNewModel($model) {
$model->setCategorie(Class_UserGroupCategorie::find((int)$this->_getParam('id_cat')));
return $this;
}
public function editmembersAction() {
if (!$group = Class_UserGroup::find((int)$this->_getParam('id'))) {
$this->_redirect('admin/usergroup');
return;
}
if ($id_user_to_delete = $this->_getParam('delete')) {
$group
->removeUser(Class_Users::find($id_user_to_delete))
->save();
$redirect_url = '/admin/usergroup/editmembers/' . (($newsletter_id = $this->_getParam('newsletter_id')) ? 'newsletter_id/' . $newsletter_id . '/': '') . 'id/'.$group->getId();
if ($_GET)
$redirect_url .= '?'.http_build_query($_GET);
$this->_redirect($redirect_url);
return;
}
if ($this->_request->isPost()
&& ($ids_users_to_add = $this->_request->getPost('users'))) {
foreach($ids_users_to_add as $id)
$group->addUser(Class_Users::find($id));
$group->save();
}
$this->view->titre = "Membres du groupe: ".$group->getLibelle();
$this->view->group_id = $this->_getParam('id');
$this->view->search = $this->_getParam('search');
$this->view->page = $this->_getParam('page');
$this->view->back_url = ($newsletter_id = $this->_getParam('newsletter_id'))
? $this->view->url(['module' => 'admin',
'controller' => 'newsletter',
'action' => 'edit-subscribers',
'id' => $newsletter_id],
null, true)
: $this->view->url(['module' => 'admin',
'controller' => 'usergroup'],
null, true);
}
/**
* @return array
*/
@@ -152,60 +109,6 @@ class Admin_UsergroupController extends ZendAfi_Controller_Action {
}
public function cataddAction() {
$form = new ZendAfi_Form_UserGroupCategorie();
$categorie = new Class_UserGroupCategorie();
if ($this->_isCategorieSaved($categorie,$form)) {
$this->_helper->notify($this->view->_('La catégorie "%s" a été ajoutée', $categorie->getLibelle()));
$this->_redirect(sprintf('admin/usergroup/index/id_cat/%d', $categorie->getId()));
return;
}
$this->view->form= $form;
$this->view->titre = $this->view->_('Ajouter une catégorie d\'utilisateurs');
if ($categorie_parent = Class_UserGroupCategorie::find((int)$this->_getParam('id')))
$this->view->form->setDefault('parent_id', $categorie_parent->getId());
}
public function catdelAction() {
if (!$categorie = Class_UserGroupCategorie::find((int)$this->_getParam('id'))) {
$this->_redirect('/admin/usergroup');
return;
}
$id_cat_mere = ($categorie->getParentId()>0) ? '/index/id_cat/'.$categorie->getParentId() : '/index';
$libelle= $categorie->getLibelle();
$categorie->delete();
$this->_helper->notify($this->view->_('La categorie "%s" a été supprimée',$libelle));
$this->_redirect('/admin/usergroup'.$id_cat_mere);
}
public function cateditAction() {
$form = new ZendAfi_Form_UserGroupCategorie();
$categorie = new Class_UserGroupCategorie();
$this->view->titre = "Modifier une catégorie de groupes";
if (!$categorie = Class_UserGroupCategorie::find((int)$this->_getParam('id'))) {
$this->_redirect('admin/usergroup');
return;
}
if ($this->_isCategorieSaved($categorie, $form)) {
$this->_helper->notify($this->_('La catégorie "%s" a été sauvegardée', $categorie->getLibelle()));
$this->_redirect(sprintf('admin/usergroup/index/id_cat/%d', $categorie->getId()));
return;
}
$form
->populate(['libelle'=>$categorie->getLibelle()])
->setDefault('parent_id',$categorie->getParentId());
$this->view->form= $form;
$this->view->titre = $this->view->_('Modifier une catégorie d\'utilisateurs');
}
private function _getTreeViewItemActions() {
return
@@ -236,25 +139,6 @@ class Admin_UsergroupController extends ZendAfi_Controller_Action {
}
/**
* @param Class_SitothequeCategorie $categorie
* @return bool
*/
protected function _isCategorieSaved($categorie,$form) {
if(!$this->_request->isPost())
return false;
$post = $this->_request->getPost();
$filter = new Zend_Filter_StripTags();
$post['libelle'] = trim($filter->filter($this->_request->getPost('libelle')));
$categorie
->updateAttributes($post);
return $form->isValid($categorie) ? $categorie->save() : false;
}
public function listJsonAction() {
$json_groups = [];
@@ -266,48 +150,4 @@ class Admin_UsergroupController extends ZendAfi_Controller_Action {
'categories' => $json_groups,
'items' => []]]);
}
protected function _getPost() {
$post = $this->_request->getPost();
if(!isset($post[ZendAfi_Form_Admin_UserGroup::RIGHTS_PERMISSIONS]))
$post[ZendAfi_Form_Admin_UserGroup::RIGHTS_PERMISSIONS] = [];
$rights_permissions = (new Storm_Collection($post[ZendAfi_Form_Admin_UserGroup::RIGHTS_PERMISSIONS]));
$post['rights'] = ZendAfi_Form_Admin_UserGroup::deletePrefix($rights_permissions,
ZendAfi_Form_Admin_UserGroup::RIGHT);
$this->_permissions_access = ZendAfi_Form_Admin_UserGroup::deletePrefix($rights_permissions,
ZendAfi_Form_Admin_UserGroup::PERMISSION);
unset($post[ZendAfi_Form_Admin_UserGroup::RIGHTS_PERMISSIONS]);
return $post;
}
protected function _doAfterSave($model) {
Class_UserGroup_Permission::denyAllToGroup(Class_DigitalResource::getInstance()->getPermissions(), $model);
(new Storm_Collection($this->_permissions_access))
->eachDo(
function($permission) use ($model)
{
if($permission = Class_Permission::findFirstBy(['code' => $permission])) {
$permission->permitTo($model, new Class_Entity());
}
});
}
protected function _getFormValues($model) {
$permissions = (new Storm_Model_Collection(Class_UserGroup_Permission::findAllBy(['id_group' => $model->getId()])))
->collect('permission');
$values = array_merge($model->toArray(),
[ZendAfi_Form_Admin_UserGroup::RIGHTS_PERMISSIONS =>
ZendAfi_Form_Admin_UserGroup::mergeRightsAndPermissionsWithPrefix($model->getRights(),
$model->getPermissions())]);
return $values;
}
}