From ac5fc5953426befb1232106ade9e42ff239d9b63 Mon Sep 17 00:00:00 2001 From: Frederic Massart Date: Thu, 7 Mar 2013 16:14:00 +0800 Subject: [PATCH] MDL-37852 repository: Admins can't access user instances settings --- admin/repositoryinstance.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/admin/repositoryinstance.php b/admin/repositoryinstance.php index fa4a230d59e..b5eab73ffea 100644 --- a/admin/repositoryinstance.php +++ b/admin/repositoryinstance.php @@ -62,6 +62,9 @@ $return = true; if (!empty($edit) || !empty($new)) { if (!empty($edit)) { $instance = repository::get_instance($edit); + if (!$instance->can_be_edited_by_user()) { + throw new repository_exception('nopermissiontoaccess', 'repository'); + } $instancetype = repository::get_type_by_id($instance->options['typeid']); $classname = 'repository_' . $instancetype->get_typename(); $configs = $instance->get_instance_option_names(); @@ -118,10 +121,12 @@ if (!empty($edit) || !empty($new)) { $return = true; } else if (!empty($delete)) { $instance = repository::get_instance($delete); - //if you try to delete an instance set as readonly, display an error message if ($instance->readonly) { - throw new repository_exception('readonlyinstance', 'repository'); - } + // If you try to delete an instance set as readonly, display an error message. + throw new repository_exception('readonlyinstance', 'repository'); + } else if (!$instance->can_be_edited_by_user()) { + throw new repository_exception('nopermissiontoaccess', 'repository'); + } if ($sure) { if ($instance->delete($downloadcontents)) { $deletedstr = get_string('instancedeleted', 'repository');