hasIdentity()) {
$userIDsNamespace = Zend_Session::namespaceGet('userIDs');
if($userIDsNamespace['membershipID'] ==''){
$this->_redirect('/user/index');
}
$this->configMapper = new Application_Model_ConfigMapper();
$this->membershipMapper = new Application_Model_MembershipMapper();
$this->membership = new Application_Model_Membership();
$this->membershipMapper->find($userIDsNamespace['membershipID'],$this->membership);
$this->db = Zend_Db_Table::getDefaultAdapter();
} else {
$this->_helper->redirector('login', 'auth');
}
$this->page = $this->_request->getParam('page'); }
public function indexAction()
{
$result = $this->_request->getParam('addresult');
if($result != ""){
$pbsNotifier = new Pbs_Notifier();
$this->view->notification = $pbsNotifier->notify('create',$result);
}
$result = $this->_request->getParam('deleteresult');
if($result != ""){
$pbsNotifier = new Pbs_Notifier();
$this->view->notification = $pbsNotifier->notify('delete',$result);
}
$result = $this->_request->getParam('modifyresult');
if($result != ""){
$pbsNotifier = new Pbs_Notifier();
$this->view->notification = $pbsNotifier->notify('modify',$result);
}
$groupID = $this->membership->getGroupID();
//TODO ACL Darf er Configs sehen?
if(false)
$this->_redirect('/user/index');
$this->configMapper = new Application_Model_ConfigMapper();
$groupMapper = new Application_Model_GroupMapper();
if(true){
//TODO nur Configs von Admins
$this->view->configlist = $this->configMapper->findBy(array('groupID' => $this->membership->getGroupID()));
}else{
$this->view->configlist = $this->configMapper->findBy(array('membershipID' => $this->membership->getID()));
}
foreach ($this->view->configlist as $config){
$config->setGroupID("[".$config->getGroupID()."] ".$groupMapper->find($config->getGroupID())->getTitle());
}
// Search
$search = $this->_request->getParam('search');
$mySearch = new Pbs_Search();
$mySearch->setSearchTerm($search);
$mySearch->setModule('config');
$this->view->searchform = $mySearch->searchForm();
if($search != ''){
$this->view->search = $mySearch->getSearchTerm();
$this->view->configlist = $mySearch->search($this->view->configlist);
}
// Pagination
$pagination = new Pbs_Pagination();
$pagination->setPerPage(2);
$pagination->setElement($this->view->configlist);
$pagination->setRequestPage($this->_request->getParam('page'));
$pagination->setPageUrl('/user/config/index'.((isset($this->view->search))?'/search/'.$this->view->search:''));
$this->view->configlist = $pagination->getElements();
$this->view->pagination = $pagination->pagination($pageurl);
$this->view->page = $pagination->getRequestPage();
$this->view->configlist = $this->view->configlist;
}
public function searchAction(){
$this->_redirect('/user/config/index/search/'.($_GET['search']));
}
public function createconfigAction()
{
//TODO ACL Darf er Configs erstellen?
if(false)
$this->_redirect('/user/config/index/page/'.$this->page.'/addresult/forbidden');
if (!isset($_POST["createconfig"])){
$configForm = new user_Form_Config(array('action' => 'createconfig','rights' => null,'page'=>$this->page));
} else {
$configForm = new user_Form_Config(array('action' => 'createconfig','rights' => null,'page'=>$this->page),$_POST);
if ($configForm->isValid($_POST)) {
$config = new Application_Model_Config($_POST);
$config->setCreated(time());
$config->setMembershipID($this->membership->getID());
$config->setGroupID($this->membership->getGroupID());
try {
$this->configMapper->save($config);
}catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
$this->_redirect('/user/config/index/page/'.$this->page.'/addresult/error');
}
$this->_redirect('/user/config/index/page/'.$this->page.'/addresult/ok');
}
}
$this->view->configForm = $configForm;
}
public function editconfigAction()
{
//TODO ACL Darf er Configs editieren?
if(false)
$this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/forbidden');
$configID = $this->_request->getParam('configID');
if (!is_numeric($configID))
$this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/error');
$groupID = $this->membership->getGroupID();
$config = new Application_Model_Config();
$this->configMapper->find($configID, $config);
if($config->getMembershipID() != null){
if($this->membership->getID() != $config->getMembershipID())
$this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/forbidden');
}else{
if($this->membership->getGroupID() != $config->getGroupID())
$this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/forbidden');
}
if (!isset($_POST["editconfig"])){
$configForm = new user_Form_Config(array('action' => 'editconfig','rights' => 'meta','page'=>$this->page));
$configForm->populate($config->toArray());
}else{
$configForm = new user_Form_Config(array('action' => 'editconfig','rights' => 'meta','page'=>$this->page),$_POST);
if ($configForm->isValid($_POST)) {
$configold = $config;
$config = new Application_Model_Config($_POST);
$config->setCreated(time());
$config->setMembershipID($this->membership->getID());
$config->setGroupID($this->membership->getGroupID());
$config->setID($configID);
if($configold->getShellscript() != $config->getShellscript()){
//TODO ACL Is he allowed to edit other than Metadata?
if(false)
$this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/forbidden');
}
try {
$this->configMapper->save($config);
}catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
$this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/error');
}
$this->_redirect('/user/config/index/page/'.$this->page.'/modifyresult/ok');
}
}
$this->view->configForm = $configForm;
}
public function deleteconfigAction()
{
//TODO ACL Darf er Configs löschen?
if(false)
$this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/forbidden');
try{
$configID = $this->_request->getParam('configID');
if (!is_numeric($configID))
$this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/error');
$config = new Application_Model_Config();
$this->configMapper->find($configID,$config);
if($config->getMembershipID() != null){
if($this->membership->getID() != $config->getMembershipID())
$this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/forbidden');
}else{
if($this->membership->getGroupID() != $config->getGroupID())
$this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/forbidden');
}
$this->configMapper->delete($config);
}catch(Zend_Exception $e){
echo "Caught exception: " . get_class($e) . "
";
echo "Message: " . $e->getMessage() . "
";
$this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/error');
}
$this->_redirect('/user/config/index/page/'.$this->page.'/deleteresult/ok');
}
}