function quiz_question_access_to_score in Quiz 7.6
Same name and namespace in other branches
- 8.4 question_types/quiz_question/quiz_question.module \quiz_question_access_to_score()
- 6.4 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
$result_id: 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_menu in question_types/
long_answer/ long_answer.module - Implements hook_menu().
- short_answer_menu in question_types/
short_answer/ short_answer.module - Implements hook_menu().
File
- question_types/
quiz_question/ quiz_question.module, line 93 - 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, $result_id) {
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' => $result_id,
':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' => $result_id,
))
->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' => $result_id,
))
->fetchField() == $user->uid;
}
}