ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5
class.ilObjExerciseAccess.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once("./Services/Object/classes/class.ilObjectAccess.php");
5 include_once './Services/AccessControl/interfaces/interface.ilConditionHandling.php';
6 
17 {
18 
22  public static function getConditionOperators()
23  {
24  include_once './Services/AccessControl/classes/class.ilConditionHandler.php';
25  return array(
28  );
29  }
30 
31 
40  public static function checkCondition($a_exc_id,$a_operator,$a_value,$a_usr_id)
41  {
42  include_once './Services/AccessControl/classes/class.ilConditionHandler.php';
43  include_once './Modules/Exercise/classes/class.ilExerciseMembers.php';
44 
45  switch($a_operator)
46  {
48  if (ilExerciseMembers::_lookupStatus($a_exc_id, $a_usr_id) == "passed")
49  {
50  return true;
51  }
52  else
53  {
54  return false;
55  }
56  break;
57 
59  return ilExerciseMembers::_lookupStatus($a_exc_id,$a_usr_id) == 'failed';
60 
61  default:
62  return true;
63  }
64  return true;
65  }
66 
67 
80  function _getCommands()
81  {
82  $commands = array
83  (
84  array("permission" => "read", "cmd" => "showOverview", "lang_var" => "show",
85  "default" => true),
86  array("permission" => "write", "cmd" => "listAssignments", "lang_var" => "edit_assignments"),
87  array("permission" => "write", "cmd" => "edit", "lang_var" => "settings")
88  );
89 
90  return $commands;
91  }
92 
94  {
95  global $ilDB;
96 
97  // #14077 - mind peer deadline, too
98 
99  $dl = null;
100  $cnt = array();
101 
102  $q = "SELECT id, time_stamp, deadline2, peer_dl".
103  " FROM exc_assignment WHERE exc_id = ".$ilDB->quote($a_obj_id, "integer").
104  " AND (time_stamp > ".$ilDB->quote(time(), "integer").
105  " OR (peer_dl > ".$ilDB->quote(time(), "integer").
106  " AND peer > ".$ilDB->quote(0, "integer")."))";
107  $set = $ilDB->query($q);
108  while($row = $ilDB->fetchAssoc($set))
109  {
110  if($row["time_stamp"] > time() &&
111  ($row["time_stamp"] < $dl || !$dl))
112  {
113  $dl = $row["time_stamp"];
114  }
115  /* extended deadline should not be presented anywhere
116  if($row["deadline2"] > time() &&
117  ($row["deadline2"] < $dl || !$dl))
118  {
119  $dl = $row["deadline2"];
120  }
121  */
122  if($row["peer_dl"] > time() &&
123  ($row["peer_dl"] < $dl || !$dl))
124  {
125  $dl = $row["peer_dl"];
126  }
127  $cnt[$row["id"]] = true;
128  }
129 
130  if($dl)
131  {
133  }
134 
135  return array(
136  "mtime" => $dl,
137  "cnt" => sizeof($cnt)
138  );
139  }
140 
144  function _checkGoto($a_target)
145  {
146  global $ilAccess;
147 
148  $t_arr = explode("_", $a_target);
149 
150  if ($t_arr[0] != "exc" || ((int) $t_arr[1]) <= 0)
151  {
152  return false;
153  }
154 
155  if ($ilAccess->checkAccess("read", "", $t_arr[1]))
156  {
157  return true;
158  }
159  return false;
160  }
161 }
162 
163 ?>
static getConditionOperators()
Get possible conditions operators.
Interface for condition handling.
const IL_CAL_UNIX
static checkCondition($a_exc_id, $a_operator, $a_value, $a_usr_id)
check condition
static period2String(ilDateTime $a_from, $a_to=null)
Return a string of time period.
Date and time handling
Class ilObjExerciseAccess.
_lookupStatus($a_obj_id, $a_user_id)
Lookup current status (notgraded|passed|failed)
Class ilObjectAccess.
global $ilDB
_checkGoto($a_target)
check whether goto script will succeed