ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
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
4include_once("./Services/Object/classes/class.ilObjectAccess.php");
5include_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 static 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
93 static function _lookupRemainingWorkingTimeString($a_obj_id)
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 // :TODO: mind personal deadline?
131
132 if($dl)
133 {
135 }
136
137 return array(
138 "mtime" => $dl,
139 "cnt" => sizeof($cnt)
140 );
141 }
142
146 static function _checkGoto($a_target)
147 {
148 global $ilAccess;
149
150 $t_arr = explode("_", $a_target);
151
152 if ($t_arr[0] != "exc" || ((int) $t_arr[1]) <= 0)
153 {
154 return false;
155 }
156
157 if ($ilAccess->checkAccess("read", "", $t_arr[1]))
158 {
159 return true;
160 }
161 return false;
162 }
163}
164
165?>
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_UNIX
@classDescription Date and time handling
static _lookupStatus($a_obj_id, $a_user_id)
Lookup current status (notgraded|passed|failed)
Class ilObjExerciseAccess.
static _checkGoto($a_target)
check whether goto script will succeed
static _getCommands()
get commands
static checkCondition($a_exc_id, $a_operator, $a_value, $a_usr_id)
check condition
static getConditionOperators()
Get possible conditions operators.
static _lookupRemainingWorkingTimeString($a_obj_id)
Class ilObjectAccess.
static period2String(ilDateTime $a_from, $a_to=null)
Return a string of time period.
Interface for condition handling.
global $ilDB