/** Edit a system role */ public function editsystemroleAction() { $form = new SystemRoleForm(); $this->view->form = $form; if ($this->_request->isPost()) { $formData = $this->_request->getPost(); if ($form->isValid($formData)) { $roles = new Roles(); $updateData = array('role' => $form->getValue('role'), 'description' => $form->getValue('description'), 'updated' => $this->getTimeForForms(), 'updatedBy' => $this->getIdentityForForms()); $where = array(); $where[] = $roles->getAdapter()->quoteInto('id = ?', $this->_getParam('id')); $update = $roles->update($updateData, $where); $this->_flashMessenger->addMessage($form->getValue('role') . '\'s details updated.'); $this->_redirect('/admin/systemroles/'); } else { $form->populate($formData); } } else { // find id is expected in $params['id'] $id = (int) $this->_request->getParam('id', 0); if ($id > 0) { $roles = new Roles(); $roles = $roles->fetchRow('id=' . $id); $form->populate($roles->toArray()); } } }
function editAction() { $request = new Bolts_Request($this->getRequest()); $roles_table = new Roles(); $role = null; if ($request->has('id')) { if (!is_null($request->id)) { $role = $roles_table->fetchRow($roles_table->select()->where("id = ?", $request->id)); if (!is_null($role)) { // we do not edit the guest role if ($role->shortname == "guest") { $this->_redirect("/bolts/role"); } $this->view->role = $role->toArray(); $this->view->role_tree = $roles_table->getRoleTree(null, $role->id); $this->view->inherited_ids = $roles_table->getInheritedRoles($role->id); } } } if (is_null($role)) { $this->view->role_tree = $roles_table->getRoleTree(); } if ($this->getRequest()->isPost()) { $errors = array(); if ($request->has('inherit_role')) { $parents = array(); foreach ($request->inherit_role as $inherit_role) { $parents = array_merge($parents, $roles_table->getAllAncestors($inherit_role)); } $inherit_ids = array(); foreach ($request->inherit_role as $inherit_role) { if (!in_array($inherit_role, $parents)) { $inherit_ids[] = $inherit_role; } } } if ($request->has('shortname')) { $shortname = $request->shortname; if (!Bolts_Validate::checkLength($request->shortname, 1, 255)) { $errors[] = $this->_T("Shortname must be between 1 and 255 chars."); } } else { $errors[] = $this->_T("Shortname is a requried field."); } $description = $request->description; $isadmin = (int) $request->checkbox('isadmin'); if (count($errors) == 0) { $data = array('shortname' => $shortname, 'description' => $description, 'isadmin' => $isadmin); //If we have an id, this is an update. $id = (int) $this->_request->getPost('id'); if ($id != 0) { $where = 'id = ' . $id; $roles_table->update($data, $where); } else { //We don't, this is an insert. $id = $roles_table->insert($data); } $roles_table->removeInheritedRole($id); foreach ($inherit_ids as $in_id) { $roles_table->setInheritedRole($id, $in_id); } $this->_redirect("/bolts/role"); } else { $this->view->errors = $errors; } } if ($request->has('id')) { // this is an edit $id = $request->id; if ($id > 0) { $this->view->role = $roles_table->fetchRow('id = ' . $id)->toArray(); } $this->view->inherited_ids = $roles_table->getInheritedRoles($id); } else { foreach ($roles_table->fetchAll()->toArray() as $role) { $role_choices[$role['id']] = $role['shortname']; } $this->view->role_choices = $role_choices; } }
private function restoreRoleSettings($restore_roles, $_msg = null) { try { if (count($restore_roles) > 0) { $roles = new Roles(); $roles_info = $roles->get_multiple(null); foreach ($roles_info as $_role) { $role = $roles->get($_role->id); if (is_object($role)) { if (!$role->read_only) { $roles->delete((int) $_role->id); } } } foreach ($restore_roles as $role) { $_role = Roles::getRoleInfoByID($role['id'], $fetch_mode = DB_FETCHMODE_ASSOC); if (isset($_role['id'])) { // existing role, need to update only $new_role = new Roles(); $new_role->id = $role['id']; $new_role->description = $role['description']; $new_role->name = $role['name']; $new_role->type = $role['type']; $new_role->update(); Roles::delete_role_tasks($new_role->id); if (!empty($role['tasks'])) { $tasks = array(); foreach ($role['tasks'] as $task) { $tasks[] = $task['id']; } Roles::assign_tasks_to_role($tasks, $new_role->id); } } else { $new_role = new Roles(); $new_role->description = $role['description']; $new_role->name = $role['name']; $role_id = $new_role->create(); if ($role_id && !empty($role['tasks'])) { $tasks = array(); foreach ($role['tasks'] as $task) { $tasks[] = $task['id']; } Roles::assign_tasks_to_role($tasks, $role_id); } } } $error_msg = $_msg ? $_msg : __('Default Roles settings sucessfully restored.'); } else { $error_msg = __('There is no Roles data in default XML settings file.'); } } catch (Exception $e) { $error = TRUE; $error_msg = $e->getMessage(); } return $error_msg; }
//old method for spawned networks $configure_permission = current_user_can('configure_network'); } /********/ $msg = ""; if (@$_GET['msg_id']) { $msg = $_GET['msg_id']; } if (@$_POST['role_id']) { $role = new Roles(); filter_all_post($_POST); $role->id = $_POST['role_id']; $role->description = $_POST['desc']; $role->name = $_POST['role_name']; try { $role->update(); $msg = 9009; header("Location:roles.php?msg_id={$msg}"); exit; } catch (PAException $e) { $msg = "{$e->message}"; $error = TRUE; } } if (@$_POST['submit']) { $role = new Roles(); filter_all_post($_POST); try { $role->description = $_POST['desc']; $role->name = $_POST['role_name']; $role->create();