Merge branch 'MDL-34945-master' of git://github.com/FMCorz/moodle

This commit is contained in:
Eloy Lafuente (stronk7) 2012-09-06 20:11:53 +02:00
commit 92b75df804
2 changed files with 16 additions and 6 deletions

View File

@ -1515,6 +1515,12 @@ abstract class repository {
$types = repository::get_editable_types($context);
foreach ($types as $type) {
if (!empty($type) && $type->get_visible()) {
// If the user does not have the permission to view the repository, it won't be displayed in
// the list of instances. Hiding the link to create new instances will prevent the
// user from creating them without being able to find them afterwards, which looks like a bug.
if (!has_capability('repository/'.$type->get_typename().':view', $context)) {
continue;
}
$instanceoptionnames = repository::static_function($type->get_typename(), 'get_instance_option_names');
if (!empty($instanceoptionnames)) {
$baseurl->param('new', $type->get_typename());

View File

@ -106,12 +106,16 @@ if (!empty($new)){
$type = repository::get_type_by_id($instance->options['typeid']);
}
if (isset($type) && !$type->get_visible()) {
print_error('typenotvisible', 'repository', $baseurl);
}
if (isset($type) && !$type->get_contextvisibility($context)) {
print_error('usercontextrepositorydisabled', 'repository', $baseurl);
if (isset($type)) {
if (!$type->get_visible()) {
print_error('typenotvisible', 'repository', $baseurl);
}
// Prevents the user from creating/editing an instance if the repository is not visible in
// this context OR if the user does not have the capability to view this repository in this context.
$canviewrepository = has_capability('repository/'.$type->get_typename().':view', $context);
if (!$type->get_contextvisibility($context) || !$canviewrepository) {
print_error('usercontextrepositorydisabled', 'repository', $baseurl);
}
}
/// Create navigation links