Public Member Functions | |
_checkAccess ($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id="") | |
Checks wether a user may invoke a command or not (this method is called by ilAccessHandler::checkAccess). | |
_getCommands () | |
get commands | |
_lookupCreationComplete ($a_obj_id) | |
checks wether all necessary parts of the survey are given | |
_lookupEvaluationAccess ($a_obj_id) | |
get evaluation access | |
_isSurveyParticipant ($user_id, $survey_id) | |
_lookupAnonymize ($a_obj_id) | |
_hasEvaluationAccess ($a_obj_id, $user_id) | |
_lookupOnline ($a_obj_id) | |
get status | |
_lookupFinished ($a_obj_id, $a_user_id="") | |
get finished status | |
_checkGoto ($a_target) | |
check whether goto script will succeed |
Definition at line 37 of file class.ilObjSurveyAccess.php.
ilObjSurveyAccess::_checkAccess | ( | $ | a_cmd, | |
$ | a_permission, | |||
$ | a_ref_id, | |||
$ | a_obj_id, | |||
$ | a_user_id = "" | |||
) |
Checks wether a user may invoke a command or not (this method is called by ilAccessHandler::checkAccess).
Please do not check any preconditions handled by ilConditionHandler here.
string | $a_cmd command (not permission!) | |
string | $a_permission permission | |
int | $a_ref_id reference id | |
int | $a_obj_id object id | |
int | $a_user_id user id (if not provided, current user is taken) |
Reimplemented from ilObjectAccess.
Definition at line 54 of file class.ilObjSurveyAccess.php.
References $lng, $rbacsystem, _hasEvaluationAccess(), _lookupCreationComplete(), and _lookupOnline().
{ global $ilUser, $lng, $rbacsystem, $ilAccess; if ($a_user_id == "") { $a_user_id = $ilUser->getId(); } switch ($a_permission) { case "visible": if (!ilObjSurveyAccess::_lookupCreationComplete($a_obj_id) && (!$rbacsystem->checkAccess('write', $a_ref_id))) { $ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("warning_survey_not_complete")); return false; } break; } switch ($a_cmd) { case "run": if (!ilObjSurveyAccess::_lookupCreationComplete($a_obj_id) || !(ilObjSurveyAccess::_lookupOnline($a_obj_id) == 1)) { $ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("warning_survey_not_complete")); return false; } break; case "evaluation": if (!ilObjSurveyAccess::_lookupCreationComplete($a_obj_id)) { $ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("warning_survey_not_complete")); return false; } if ($rbacsystem->checkAccess("write",$a_ref_id) || ilObjSurveyAccess::_hasEvaluationAccess($a_obj_id, $a_user_id)) { return true; } else { $ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("no_permission")); return false; } break; } return true; }
ilObjSurveyAccess::_checkGoto | ( | $ | a_target | ) |
check whether goto script will succeed
Reimplemented from ilObjectAccess.
Definition at line 327 of file class.ilObjSurveyAccess.php.
{ global $ilAccess; $t_arr = explode("_", $a_target); if ($t_arr[0] != "svy" || ((int) $t_arr[1]) <= 0) { return false; } if ($ilAccess->checkAccess("read", "", $t_arr[1])) { return true; } return false; }
ilObjSurveyAccess::_getCommands | ( | ) |
get commands
this method returns an array of all possible commands/permission combinations
example: $commands = array ( array("permission" => "read", "cmd" => "view", "lang_var" => "show"), array("permission" => "write", "cmd" => "edit", "lang_var" => "edit"), );
Reimplemented from ilObjectAccess.
Definition at line 119 of file class.ilObjSurveyAccess.php.
Referenced by ilObjSurveyListGUI::init().
{ $commands = array ( array("permission" => "read,participate", "cmd" => "infoScreen", "lang_var" => "svy_run", "default" => true), array("permission" => "write", "cmd" => "properties", "lang_var" => "edit"), array("permission" => "read", "cmd" => "evaluation", "lang_var" => "svy_evaluation") ); return $commands; }
ilObjSurveyAccess::_hasEvaluationAccess | ( | $ | a_obj_id, | |
$ | user_id | |||
) |
Definition at line 216 of file class.ilObjSurveyAccess.php.
References $q, $result, $row, $user_id, _isSurveyParticipant(), _lookupAnonymize(), and _lookupEvaluationAccess().
Referenced by _checkAccess(), ilSurveyEvaluationGUI::evaluation(), and ilObjSurveyGUI::infoScreen().
{ $evaluation_access = ilObjSurveyAccess::_lookupEvaluationAccess($a_obj_id); switch ($evaluation_access) { case 0: // no evaluation access return false; break; case 1: // evaluation access for all users if (($user_id > 0) && ($user_id != ANONYMOUS_USER_ID)) { return true; } else { return false; } break; case 2: // evaluation access for participants // check if the user with the given id is a survey participant // show the evaluation button for anonymized surveys for all users // access is only granted with the survey access code if (ilObjSurveyAccess::_lookupAnonymize($a_obj_id) == 1) return true; global $ilDB; $q = sprintf("SELECT survey_id FROM survey_survey WHERE obj_fi = %s", $ilDB->quote($a_obj_id . "") ); $result = $ilDB->query($q); if ($result->numRows() == 1) { $row = $result->fetchRow(DB_FETCHMODE_ASSOC); if (ilObjSurveyAccess::_isSurveyParticipant($user_id, $row["survey_id"])) { return true; } } return false; break; } }
ilObjSurveyAccess::_isSurveyParticipant | ( | $ | user_id, | |
$ | survey_id | |||
) |
Definition at line 178 of file class.ilObjSurveyAccess.php.
References $q, $result, and $user_id.
Referenced by _hasEvaluationAccess().
{ global $ilDB; $q = sprintf("SELECT finished_id FROM survey_finished WHERE user_fi = %s AND survey_fi = %s", $ilDB->quote($user_id . ""), $ilDB->quote($survey_id . "") ); $result = $ilDB->query($q); if ($result->numRows() == 1) { return true; } else { return false; } }
ilObjSurveyAccess::_lookupAnonymize | ( | $ | a_obj_id | ) |
Definition at line 197 of file class.ilObjSurveyAccess.php.
References $q, $result, and $row.
Referenced by _hasEvaluationAccess().
{ global $ilDB; $q = sprintf("SELECT anonymize FROM survey_survey WHERE obj_fi = %s", $ilDB->quote($a_obj_id . "") ); $result = $ilDB->query($q); if ($result->numRows() == 1) { $row = $result->fetchRow(DB_FETCHMODE_ASSOC); return $row["anonymize"]; } else { return 0; } }
ilObjSurveyAccess::_lookupCreationComplete | ( | $ | a_obj_id | ) |
checks wether all necessary parts of the survey are given
Definition at line 138 of file class.ilObjSurveyAccess.php.
References $q, $result, and $row.
Referenced by _checkAccess(), and ilObjSurveyListGUI::getProperties().
{ global $ilDB; $q = sprintf("SELECT * FROM survey_survey WHERE obj_fi=%s", $ilDB->quote($a_obj_id) ); $result = $ilDB->query($q); if ($result->numRows() == 1) { $row = $result->fetchRow(DB_FETCHMODE_OBJECT); } if (!$row->complete) { return false; } return true; }
ilObjSurveyAccess::_lookupEvaluationAccess | ( | $ | a_obj_id | ) |
get evaluation access
Definition at line 162 of file class.ilObjSurveyAccess.php.
References $q, $result, and $row.
Referenced by _hasEvaluationAccess().
{ global $ilDB; $q = sprintf("SELECT * FROM survey_survey WHERE obj_fi=%s", $ilDB->quote($a_obj_id) ); $result = $ilDB->query($q); if ($result->numRows() == 1) { $row = $result->fetchRow(DB_FETCHMODE_OBJECT); } return $row->evaluation_access; }
ilObjSurveyAccess::_lookupFinished | ( | $ | a_obj_id, | |
$ | a_user_id = "" | |||
) |
get finished status
int | $a_obj_id survey id |
Definition at line 285 of file class.ilObjSurveyAccess.php.
References $q, $result, and $row.
Referenced by ilObjSurveyListGUI::getProperties(), and ilCourseStart::isFullfilled().
{ global $ilDB, $ilUser; $finished = ""; if (!strlen($a_user_id)) $a_user_id = $ilUser->getId(); $q = sprintf("SELECT * FROM survey_survey WHERE obj_fi = %s", $ilDB->quote($a_obj_id) ); $result = $ilDB->query($q); if ($result->numRows() == 1) { $row = $result->fetchRow(DB_FETCHMODE_OBJECT); if ($row->anonymize == 1) { $q = sprintf("SELECT * FROM survey_finished, survey_anonymous WHERE survey_finished.survey_fi = %s AND survey_finished.survey_fi = survey_anonymous.survey_fi AND survey_anonymous.user_key = %s AND survey_anonymous.survey_key = survey_finished.anonymous_id", $ilDB->quote($row->survey_id), $ilDB->quote(md5($a_user_id) . "") ); } else { $q = sprintf("SELECT * FROM survey_finished WHERE survey_fi = %s AND user_fi = %s", $ilDB->quote($row->survey_id), $ilDB->quote($a_user_id) ); } $result = $ilDB->query($q); if ($result->numRows() == 1) { $row = $result->fetchRow(DB_FETCHMODE_OBJECT); $finished = (int)$row->state; } } return $finished; }
ilObjSurveyAccess::_lookupOnline | ( | $ | a_obj_id | ) |
get status
Definition at line 265 of file class.ilObjSurveyAccess.php.
References $q, $result, and $row.
Referenced by _checkAccess(), and ilObjSurveyListGUI::getProperties().
{ global $ilDB; $q = sprintf("SELECT * FROM survey_survey WHERE obj_fi=%s", $ilDB->quote($a_obj_id) ); $result = $ilDB->query($q); if ($result->numRows() == 1) { $row = $result->fetchRow(DB_FETCHMODE_OBJECT); } return $row->status; }