public function editAction() { $this->view->navigation = $navigation = Engine_Api::_()->getApi('menus', 'core')->getNavigation('authorization_admin_main', array(), 'authorization_admin_main_level'); // Get level id if (null !== ($id = $this->_getParam('id'))) { $this->view->level = $level = Engine_Api::_()->getItem('authorization_level', $id); } else { $this->view->level = $level = Engine_Api::_()->getItemTable('authorization_level')->getDefaultLevel(); $id = $level->level_id; } $this->view->form = $form = new Authorization_Form_Admin_Level_Edit(array('public' => in_array($level->type, array('public')), 'moderator' => in_array($level->type, array('admin', 'moderator')))); $permissionsTable = Engine_Api::_()->getDbtable('permissions', 'authorization'); // Posting form if ($this->getRequest()->isPost()) { if ($form->isValid($this->getRequest()->getPost())) { $values = $form->getValues(); $level->title = $values['title']; //$level->description = $values['description']; $level->save(); // update user profile editing permissions /* $permissionsTable->setAllowed('user', $id, 'edit', $values['edit']); // destroy user-edit permission from values array so it doesnt get added to the general perm unset($values['edit']); */ // set level specific settings for profile, activity and html comments $permissionsTable->setAllowed('user', $level->level_id, $values); } } else { $form->populate($level->toArray()); $form->populate($permissionsTable->getAllowed('user', $id, array_keys($form->getValues()))); $form->getElement('title')->setValue($level->title); } }
public function editAction() { $this->view->navigation = $navigation = Engine_Api::_()->getApi('menus', 'core')->getNavigation('authorization_admin_main', array(), 'authorization_admin_main_level'); // Get level id if (null !== ($id = $this->_getParam('id'))) { $this->view->level = $level = Engine_Api::_()->getItem('authorization_level', $id); } else { $this->view->level = $level = Engine_Api::_()->getItemTable('authorization_level')->getDefaultLevel(); $id = $level->level_id; } $this->view->form = $form = new Authorization_Form_Admin_Level_Edit(array('public' => in_array($level->type, array('public')), 'moderator' => in_array($level->type, array('admin', 'moderator')))); $permissionsTable = Engine_Api::_()->getDbtable('permissions', 'authorization'); // Populate $form->populate($level->toArray()); $form->populate($permissionsTable->getAllowed('user', $id, array_keys($form->getValues()))); $messagesAuth = $permissionsTable->getAllowed('messages', $id, 'auth'); $messagesEditor = $permissionsTable->getAllowed('messages', $id, 'editor'); $form->populate(array('messages_auth' => $messagesAuth, 'messages_editor' => $messagesEditor)); $form->getElement('title')->setValue($level->title); // Check method/valid if (!$this->getRequest()->isPost()) { return; } if (!$form->isValid($this->getRequest()->getPost())) { return; } // Process $values = $form->getValues(); $level->title = $values['title']; $level->description = $values['description']; $level->save(); // get messages $messageAuth = $values['messages_auth']; unset($values['messages_auth']); $messageEditor = $values['messages_editor']; unset($values['mesages_editor']); // set level specific settings for profile, activity and html comments $permissionsTable->setAllowed('user', $level->level_id, $values); $permissionsTable->setAllowed('messages', $level->level_id, array('create' => $messageAuth == 'everyone' || $messageAuth == 'friends', 'auth' => $messageAuth)); $permissionsTable->setAllowed('messages', $level->level_id, array('editor' => $messageEditor)); // show changes saved message $form->addNotice('Your changes have been saved.'); }