diff --git a/blocks/search/block_search.php b/blocks/search/block_search.php index 436af7fe8c058..1aeb08c085efd 100644 --- a/blocks/search/block_search.php +++ b/blocks/search/block_search.php @@ -46,6 +46,7 @@ function get_content() { '
' . '' . '' + . '' . '' . '
'; diff --git a/lang/en/search.php b/lang/en/search.php index f2b49ecc60def..4e2f25aa7710e 100644 --- a/lang/en/search.php +++ b/lang/en/search.php @@ -63,6 +63,7 @@ $string['score'] = 'Score'; $string['search'] = 'Search'; $string['searching'] = 'Searching in ...'; +$string['searchnotpermitted'] = 'You are not allowed to do a search'; $string['seconds'] = 'seconds'; $string['solutions'] = 'Solutions'; $string['statistics'] = 'Statistics'; diff --git a/search/query.php b/search/query.php index db2898e5acb50..2af22bd2b125e 100644 --- a/search/query.php +++ b/search/query.php @@ -37,6 +37,8 @@ require_once('../config.php'); require_once($CFG->dirroot.'/search/lib.php'); + $block_instanceid = required_param('block_instanceid', PARAM_INT);// Block Instance ID + if ($CFG->forcelogin) { require_login(); } @@ -44,6 +46,15 @@ if (empty($CFG->enableglobalsearch)) { print_error('globalsearchdisabled', 'search'); } + //Check user's permissions against the block instance from which the user came + if (empty($block_instanceid)) { + print_error('searchnotpermitted', 'search'); + } + if (!$DB->record_exists('block_instances', array('id' => $block_instanceid, 'blockname' => 'search'))) { + print_error('searchnotpermitted', 'search'); + } + $contextblock = get_context_instance(CONTEXT_BLOCK, $block_instanceid); + require_capability('moodle/block:view', $contextblock); $adv = new stdClass(); @@ -63,6 +74,7 @@ if ($advanced) { $url->param('a', '1'); } + $url->param('block_instanceid', $block_instanceid); $PAGE->set_url($url); /// discard harmfull searches @@ -166,8 +178,8 @@ // print the header $site = get_site(); $PAGE->set_context(get_context_instance(CONTEXT_SYSTEM)); - $PAGE->navbar->add($strsearch, new moodle_url('/search/index.php')); - $PAGE->navbar->add($strquery, new moodle_url('/search/stats.php')); + $PAGE->navbar->add($strsearch, new moodle_url('/search/query.php?block_instanceid=' . $block_instanceid)); + $PAGE->navbar->add($strquery, new moodle_url('/search/stats.php?block_instanceid=' . $block_instanceid)); $PAGE->set_title($strsearch); $PAGE->set_heading($site->fullname); echo $OUTPUT->header(); @@ -195,16 +207,18 @@ +       - | - + | + box_start(); ?> + @@ -269,8 +283,8 @@ diff --git a/search/stats.php b/search/stats.php index be43343725f85..8ecb097f6f008 100644 --- a/search/stats.php +++ b/search/stats.php @@ -21,6 +21,8 @@ require_once('../config.php'); require_once($CFG->dirroot.'/search/lib.php'); +$block_instanceid = required_param('block_instanceid', PARAM_INT);// Block Instance ID + /// checks global search is enabled if ($CFG->forcelogin) { @@ -30,6 +32,15 @@ if (empty($CFG->enableglobalsearch)) { print_error('globalsearchdisabled', 'search'); } + //Check user's permissions against the block instance from which the user came + if (empty($block_instanceid)) { + print_error('searchnotpermitted', 'search'); + } + if (!$DB->record_exists('block_instances', array('id' => $block_instanceid, 'blockname' => 'search'))) { + print_error('searchnotpermitted', 'search'); + } + $contextblock = get_context_instance(CONTEXT_BLOCK, $block_instanceid); + require_capability('moodle/block:view', $contextblock); /// check for php5, but don't die yet @@ -44,10 +55,13 @@ $site = get_site(); - $PAGE->set_url('/search/stats.php'); + $url = new moodle_url('/search/stats.php'); + $url->param('block_instanceid', $block_instanceid); + $PAGE->set_url($url); + $PAGE->set_context(get_context_instance(CONTEXT_SYSTEM)); - $PAGE->navbar->add($strsearch, new moodle_url('/search/index.php')); - $PAGE->navbar->add($strquery, new moodle_url('/search/stats.php')); + $PAGE->navbar->add($strsearch, new moodle_url('/search/query.php?block_instanceid=' . $block_instanceid)); + $PAGE->navbar->add($strquery, new moodle_url('/search/stats.php?block_instanceid=' . $block_instanceid)); $PAGE->set_title($strsearch); $PAGE->set_heading($site->fullname); echo $OUTPUT->header();
- - + +
|  |