public function addAction() { SxCms_Acl::requireAcl('group', 'group.add'); $group = new SxCms_Group(); if ($this->getRequest()->isPost()) { $group->setName($this->_getParam('name'))->setIdentifier($this->_getParam('identifier')); $acl = $group->getAcl(); $acl->addRole(new Zend_Acl_Role($group->getName())); foreach ($this->_getParam('acl') as $resourceId => $priveleges) { if (!$acl->has($resourceId)) { $acl->add(new Zend_Acl_Resource($resourceId)); } $acl->allow($group->getName(), $resourceId, $priveleges); } $group->setAcl($acl); $validator = new SxCms_Group_BaseValidator(); if ($validator->validate($group)) { $mapper = new SxCms_Group_DataMapper(); $mapper->save($group); $flashMessenger = $this->_helper->getHelper('FlashMessenger'); $flashMessenger->addMessage($this->admin_tmx->_('usergroupsaved')); $this->_helper->redirector->gotoSimple('index', 'group'); } } $xml = simplexml_load_file(APPLICATION_PATH . '/var/acl-resources.xml'); $this->view->acl = $xml; $this->view->group = $group; $this->view->messages = Sanmax_MessageStack::getInstance('SxCms_Group'); }
public function save(SxCms_Group $group) { $db = Zend_Registry::get('db'); $data = array('identifier' => $group->getIdentifier(), 'name' => $group->getName()); file_put_contents(APPLICATION_PATH . '/var/acl.php', serialize($group->getAcl())); if ($group->getId()) { $data['date_updated'] = new Zend_Db_Expr('CURDATE()'); $db->update('Group', $data, 'group_id = ' . $group->getId()); return true; } $data['date_created'] = new Zend_Db_Expr('CURDATE()'); $db->insert('Group', $data); $group->setId($db->lastInsertId()); return true; }