MDL-27586 fix file_browser access control

This commit is contained in:
Petr Skoda
2011-08-06 15:45:18 +02:00
parent 3fdc622697
commit f6b07c4da5
2 changed files with 28 additions and 1 deletions
@@ -53,10 +53,20 @@ class file_info_context_course extends file_info {
* @param $filename
*/
public function get_file_info($component, $filearea, $itemid, $filepath, $filename) {
// try to emulate require_login() tests here
if (!isloggedin()) {
return null;
}
if (!$this->course->visible and !has_capability('moodle/course:viewhiddencourses', $this->context)) {
return null;
}
if (!is_viewing($this->context) and !is_enrolled($this->context)) {
// no peaking here if not enrolled or inspector
return null;
}
if (empty($component)) {
return $this;
}
+18 -1
View File
@@ -75,11 +75,28 @@ class file_info_context_module extends file_info {
* @param $filename
*/
public function get_file_info($component, $filearea, $itemid, $filepath, $filename) {
if (!is_enrolled($this->context) and !is_viewing($this->context)) {
// try to emulate require_login() tests here
if (!isloggedin()) {
return null;
}
$coursecontext = get_course_context($this->context);
if (!$this->course->visible and !has_capability('moodle/course:viewhiddencourses', $coursecontext)) {
return null;
}
if (!is_viewing($this->context) and !is_enrolled($this->context)) {
// no peaking here if not enrolled or inspector
return null;
}
$modinfo = get_fast_modinfo($this->course);
$cminfo = $modinfo->get_cm($this->cm->id);
if (!$cminfo->uservisible) {
// activity hidden sorry
return null;
}
if (empty($component)) {
return $this;
}