commit c0565623264a3511450742806fe504089c35f26d Author: Richard Mansfield Date: Tue Apr 26 14:05:19 2011 +1200 Fix check of overriding view start/stop dates (bug #746182) Change-Id: I7e43f010672cafbfe114deeef85fa00d523555a2 Signed-off-by: Richard Mansfield diff --git a/htdocs/lib/mahara.php b/htdocs/lib/mahara.php index 0d61430..1c4e97a 100644 --- a/htdocs/lib/mahara.php +++ b/htdocs/lib/mahara.php @@ -1450,8 +1450,15 @@ function can_view_view($view_id, $user_id=null, $usertoken=null, $mnettoken=null $user_id = $USER->get('id'); } + require_once(get_config('docroot') . 'lib/view.php'); + $view = new View($view_id); + + $overridestart = $view->get('startdate'); + $overridestop = $view->get('stopdate'); + $allowedbyoverride = (empty($overridestart) || $overridestart < $dbnow) && (empty($overridestop) || $overridestop > $dbnow); + $publicviews = get_config('allowpublicviews'); - if ($publicviews) { + if ($allowedbyoverride && $publicviews) { if (!$usertoken) { $usertoken = get_cookie('viewaccess:'.$view_id); } @@ -1461,6 +1468,10 @@ function can_view_view($view_id, $user_id=null, $usertoken=null, $mnettoken=null } if (!$USER->is_logged_in()) { + if (!$allowedbyoverride) { + return false; + } + // check public $publicprofiles = get_config('allowpublicprofiles'); if ($publicviews || $publicprofiles) { @@ -1508,9 +1519,6 @@ function can_view_view($view_id, $user_id=null, $usertoken=null, $mnettoken=null } } - require_once(get_config('docroot') . 'lib/view.php'); - $view = new View($view_id); - if ($USER->can_edit_view($view)) { return true; } @@ -1522,6 +1530,10 @@ function can_view_view($view_id, $user_id=null, $usertoken=null, $mnettoken=null } } + if (!$allowedbyoverride) { + return false; + } + // Check access for loggedin, friends, user, group $access = get_records_sql_array(' SELECT accesstype AS type,