From 4219ffab434cdccb9fb322cc0ad8b81f7b31fc39 Mon Sep 17 00:00:00 2001 From: David Monllao Date: Wed, 15 Aug 2012 16:02:52 +0800 Subject: [PATCH] MDL-34910 blog Remove new entry link when the context doesn't allows to add new entries --- blog/locallib.php | 51 ++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/blog/locallib.php b/blog/locallib.php index 9a07fbace76..168faf1212b 100644 --- a/blog/locallib.php +++ b/blog/locallib.php @@ -663,27 +663,42 @@ class blog_listing { $userid = optional_param('userid', null, PARAM_INT); if (empty($userid) || (!empty($userid) && $userid == $USER->id)) { - $addurl = new moodle_url("$CFG->wwwroot/blog/edit.php"); - $urlparams = array('action' => 'add', - 'userid' => $userid, - 'courseid' => optional_param('courseid', null, PARAM_INT), - 'groupid' => optional_param('groupid', null, PARAM_INT), - 'modid' => optional_param('modid', null, PARAM_INT), - 'tagid' => optional_param('tagid', null, PARAM_INT), - 'tag' => optional_param('tag', null, PARAM_INT), - 'search' => optional_param('search', null, PARAM_INT)); - - foreach ($urlparams as $var => $val) { - if (empty($val)) { - unset($urlparams[$var]); + + $canaddentries = true; + if ($modid = optional_param('modid', null, PARAM_INT)) { + if (!has_capability('moodle/blog:associatemodule', context_module::instance($modid))) { + $canaddentries = false; + } + } + if ($courseid = optional_param('courseid', null, PARAM_INT)) { + if (!has_capability('moodle/blog:associatecourse', context_course::instance($courseid))) { + $canaddentries = false; } } - $addurl->params($urlparams); - $addlink = ''; - echo $addlink; + if ($canaddentries) { + $addurl = new moodle_url("$CFG->wwwroot/blog/edit.php"); + $urlparams = array('action' => 'add', + 'userid' => $userid, + 'courseid' => $courseid, + 'groupid' => optional_param('groupid', null, PARAM_INT), + 'modid' => $modid, + 'tagid' => optional_param('tagid', null, PARAM_INT), + 'tag' => optional_param('tag', null, PARAM_INT), + 'search' => optional_param('search', null, PARAM_INT)); + + foreach ($urlparams as $var => $val) { + if (empty($val)) { + unset($urlparams[$var]); + } + } + $addurl->params($urlparams); + + $addlink = ''; + echo $addlink; + } } } -- 2.43.0