$string['manage'] = 'Manage repositories';
$string['manageurl'] = 'Manage';
$string['manageuserrepository'] = 'Manage individual repository';
+$string['nopermissiontoaccess'] = 'No permission to access this repository';
$string['noenter'] = 'Nothing entered';
$string['operation'] = 'Operation';
$string['openpicker'] = 'Choose a file...';
class repository_exception extends moodle_exception {
}
+/**
+ * Check context
+ * @param int $ctx_id
+ * @return boolean
+ */
+function repository_check_context($ctx_id){
+ global $USER;
+ $context = get_context_instance_by_id($ctx_id);
+ $level = $context->contextlevel;
+ if ($level == CONTEXT_COURSE) {
+ if (!has_capability('moodle/course:view', $context)) {
+ return false;
+ } else {
+ return true;
+ }
+ } elseif ($level == CONTEXT_USER) {
+ $c = get_context_instance(CONTEXT_USER, $USER->id);
+ if ($c->id == $ctx_id) {
+ return true;
+ } else {
+ return false;
+ }
+ } elseif ($level == CONTEXT_SYSTEM) {
+ // it is always ok in system level
+ }
+ return false;
+}
/**
* Return repository instances
$type = $repository->type;
}
+if (!repository_check_context($ctx_id)) {
+ $err = new stdclass;
+ $err->e = get_string('nopermissiontoaccess', 'repository');
+ die(json_encode($err));
+}
+
if(file_exists($CFG->dirroot.'/repository/'.
$type.'/repository.class.php'))
{