function quiz_question_access_to_score in Quiz 8.4
Same name and namespace in other branches
- 6.4 question_types/quiz_question/quiz_question.module \quiz_question_access_to_score()
- 7.6 question_types/quiz_question/quiz_question.module \quiz_question_access_to_score()
- 7 question_types/quiz_question/quiz_question.module \quiz_question_access_to_score()
- 7.4 question_types/quiz_question/quiz_question.module \quiz_question_access_to_score()
Figure out if a user has access to score a certain result
Parameters
$vid: Question version id
$rid: Result id
Return value
True if the user has access to score the result
2 string references to 'quiz_question_access_to_score'
- long_answer.routing.yml in question_types/
long_answer/ long_answer.routing.yml - question_types/long_answer/long_answer.routing.yml
- short_answer.routing.yml in question_types/
short_answer/ short_answer.routing.yml - question_types/short_answer/short_answer.routing.yml
File
- question_types/
quiz_question/ quiz_question.module, line 114 - Quiz Question module. This module provides the basic facilities for adding quiz question types to a quiz.
Code
function quiz_question_access_to_score($vid, $rid) {
global $user;
$sql = 'SELECT * FROM {quiz_node_results_answers} WHERE result_id = :result_id AND question_vid = :question_vid';
$answer = db_query($sql, array(
':result_id' => $rid,
':question_vid' => $vid,
))
->fetch();
if (!$answer) {
return FALSE;
}
if (user_access('score any quiz')) {
return TRUE;
}
if (user_access('score taken quiz answer')) {
$uid = db_query('SELECT uid from {quiz_node_results} qnr WHERE qnr.result_id = :result_id', array(
':result_id' => $rid,
))
->fetchField();
if ($uid == $user->uid) {
return TRUE;
}
}
if (user_access('score own quiz')) {
return db_query('SELECT r.uid FROM {node_revision} r
JOIN {quiz_node_results} qnr ON (r.nid = qnr.nid)
WHERE qnr.result_id = :result_id
', array(
':result_id' => $rid,
))
->fetchField() == $user->uid;
}
}