diff --git a/htdocs/projet/tasks/index.php b/htdocs/projet/tasks/index.php index 1f5f30784fe..470cd8aec24 100644 --- a/htdocs/projet/tasks/index.php +++ b/htdocs/projet/tasks/index.php @@ -28,8 +28,6 @@ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/lib/project.lib.php"); -$mode=$_REQUEST["mode"]; - $langs->load('projects'); // Security check @@ -47,9 +45,10 @@ $page = $page == -1 ? 0 : $page; /* * View */ +$mine = $_REQUEST['mode']=='mine' ? 1 : 0; $title=$langs->trans("Tasks"); -if ($mode == 'mine') $title=$langs->trans("MyTasks"); +if ($mine) $title=$langs->trans("MyTasks"); llxHeader("",$title,"Projet"); @@ -64,16 +63,16 @@ if ($_GET["id"]) $projectstatic->societe->fetch($projectstatic->societe->id); } -print_barre_liste($title, $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, "", $num); +$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1); -$task = new Task($db); +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, "", $num); // Get list of tasks in tasksarray and taskarrayfiltered // We need all tasks (even not limited to a user because a task to user // can have a parent that is not affected to him). $tasksarray=$taskstatic->getTasksArray(0, 0, $projectstatic->id, $socid); // We load also tasks limited to a particular user -$tasksrole=($_REQUEST["mode"]=='mine' ? $taskstatic->getUserRolesForProjectsOrTasks(0,$user,$projectstatic->id,0) : ''); +$tasksrole=($mine ? $taskstatic->getUserRolesForProjectsOrTasks(0,$user,$projectstatic->id,0) : ''); print ''; print ''; diff --git a/htdocs/projet/tasks/task.class.php b/htdocs/projet/tasks/task.class.php index cadf997d65e..78c0f7a3f9e 100644 --- a/htdocs/projet/tasks/task.class.php +++ b/htdocs/projet/tasks/task.class.php @@ -447,7 +447,7 @@ class Task extends CommonObject if ($mode == 0) { $sql.= " FROM (".MAIN_DB_PREFIX."projet as p, ".MAIN_DB_PREFIX."projet_task as t)"; - /*if (is_object($userp) && $userp->id) // Limit to projects affected to a user + if (is_object($userp) && $userp->id) // Limit to projects affected to a user { $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact as ec ON ec.element_id = p.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_type_contact as tc ON ec.fk_c_type_contact = tc.rowid"; @@ -456,20 +456,19 @@ class Task extends CommonObject { $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact as ec ON ec.element_id = t.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_type_contact as tc ON ec.fk_c_type_contact = tc.rowid"; - }*/ + } $sql.= " WHERE t.fk_projet = p.rowid"; $sql.= " AND p.entity = ".$conf->entity; if ($socid) $sql.= " AND p.fk_soc = ".$socid; if ($projectid) $sql.= " AND p.rowid =".$projectid; - /*if (is_object($userp)) $sql .= " AND (p.public=1 OR (ec.fk_socpeople = ".$userp->id." AND tc.active = 1 AND tc.source = 'internal' AND tc.element='project'))"; + if (is_object($userp)) $sql .= " AND (p.public=1 OR (ec.fk_socpeople = ".$userp->id." AND tc.active = 1 AND tc.source = 'internal' AND tc.element='project'))"; if (is_object($usert)) $sql .= " AND (p.public=1 OR (ec.fk_socpeople = ".$usert->id." AND tc.active = 1 AND tc.source = 'internal' AND tc.element='project_task'))"; - */ } if ($mode == 1) { $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task as t on t.fk_projet = p.rowid"; - /*if (is_object($userp) && $userp->id) // Limit to projects affected to a user + if (is_object($userp) && $userp->id) // Limit to projects affected to a user { $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact as ec ON ec.element_id = p.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_type_contact as tc ON ec.fk_c_type_contact = tc.rowid"; @@ -478,13 +477,12 @@ class Task extends CommonObject { $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact as ec ON ec.element_id = t.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_type_contact as tc ON ec.fk_c_type_contact = tc.rowid"; - }*/ + } $sql.= " WHERE p.entity = ".$conf->entity; if ($socid) $sql.= " AND p.fk_soc = ".$socid; if ($projectid) $sql.= " AND p.rowid =".$projectid; - /*if (is_object($userp) && $userp->id) $sql .= " AND (p.public=1 OR (ec.fk.socpeople = ".$userp->id." AND tc.active = 1 AND tc.source = 'internal' AND tc.element='project'))"; + if (is_object($userp) && $userp->id) $sql .= " AND (p.public=1 OR (ec.fk.socpeople = ".$userp->id." AND tc.active = 1 AND tc.source = 'internal' AND tc.element='project'))"; if (is_object($usert) && $usert->id) $sql .= " AND (p.public=1 OR (ec.fk.socpeople = ".$usert->id." AND tc.active = 1 AND tc.source = 'internal' AND tc.element='project_task'))"; - */ } $sql.= " ORDER BY p.ref, t.label"; @@ -568,13 +566,13 @@ class Task extends CommonObject $sql.= " AND ec.statut = 4"; if ($projectid) { - if ($userp) $sql.= " AND pt.rowid = ".$projectid; - if ($usert) $sql.= " AND pt.fk_projet = ".$projectid; + if ($userp) $sql.= " AND pt.fk_projet = ".$projectid; + if ($usert) $sql.= " AND pt.rowid = ".$taskid; } if ($taskid) { if ($userp) $sql.= " ERROR SHOULD NOT HAPPEN "; - if ($usert) $sql.= " AND pt.rowid = ".$projectid; + if ($usert) $sql.= " AND pt.rowid = ".$taskid; } dol_syslog("Task::getTasksForProjectOwnedByAUser sql=".$sql);