Beispiel #1
0
 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.');
 }