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; }
/** * @todo Implement testAssign_tasks_to_role(). */ public function testAssign_tasks_to_role_empty_role() { //check for single tasks $tasks = 1; $role = NULL; $code = NULL; try { Roles::assign_tasks_to_role($tasks, $role); } catch (PAException $e) { $error = $e->message; $code = $e->code; } //this id should be equal to newly created id $this->assertEquals($code, REQUIRED_PARAMETERS_MISSING); }
if (@$_GET['msg']) { $msg = $_GET['msg']; } //echo '<pre>';print_r($_POST);exit; if (@$_POST['save']) { $count_role = (int) $_POST['totalcount']; for ($i = 1; $i <= $count_role; $i++) { $role_id = $_POST['link_id' . $i]; $role = new Roles(); $task_count = (int) $_POST['taskcount']; for ($j = 1; $j <= $task_count; $j++) { $task_id = $_POST['taskid' . $j]; $chk = $role_id . '~' . $task_id; if ($_POST[$chk]) { try { $role->assign_tasks_to_role($task_id, $role_id); } catch (PAException $e) { $msg = "{$e->message}"; $error = TRUE; } } else { $task_exist = Roles::is_roletask_exist($role_id, $task_id); if ($task_exist) { Roles::delete_taskrole($role_id, $task_id); } } } } header("Location:assign_tasks.php?msg=9015"); exit; }