Install the Drupal Tasks module.
Edit tasks.module
Search for the test ‘Get the list of tasks to display’ The next line will be this SQL statement:
$result = dbquery("SELECT n.nid, u.name AS assignedname, u.data FROM {node
} n INNER JOIN {tasks} t ON t.nid = n.nid LEFT JOIN {users} u ON u.uid = t.assig
nedto WHERE n.status = 1 AND n.type='tasks' AND t.taskparent = %d %s ORDER BY
%s", $node->nid, $complete, $orderby);
Remove n.status = 1 AND
That is, replace is with:
$result = dbquery("SELECT n.nid, u.name AS assignedname, u.data FROM {node
} n INNER JOIN {tasks} t ON t.nid = n.nid LEFT JOIN {users} u ON u.uid = t.assig
nedto WHERE n.type='tasks' AND t.taskparent = %d %s ORDER BY
%s", $node->nid, $complete, $orderby);
This causes the list of tasks to display all tasks, including ones that are ‘unpublished’.
Enable the Tasks Module through the ‘Administer’ web interface.
In ‘Administer’ – ‘content types’, Edit that ‘Task’ content type. Under ‘Publishing Options’, un-check ‘Published’.
Now you have a private task list hidden from the outside world.