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);