Skip to content

Commit

Permalink
MDL-27814 blogs: Cleaning up contexts in blogs
Browse files Browse the repository at this point in the history
All blogs pages should be in system context. Blogs are in system context just about various things (course, activity etc)
  • Loading branch information
ankitagarwal committed Apr 12, 2013
1 parent b3661ab commit 68fc1cc
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 27 deletions.
11 changes: 4 additions & 7 deletions blog/edit.php
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -45,21 +45,19 @@


if (!empty($courseid) && empty($modid)) { if (!empty($courseid) && empty($modid)) {
$returnurl->param('courseid', $courseid); $returnurl->param('courseid', $courseid);
$PAGE->set_context(context_course::instance($courseid));
} }


// If a modid is given, guess courseid // If a modid is given, guess courseid
if (!empty($modid)) { if (!empty($modid)) {
$returnurl->param('modid', $modid); $returnurl->param('modid', $modid);
$courseid = $DB->get_field('course_modules', 'course', array('id' => $modid)); $courseid = $DB->get_field('course_modules', 'course', array('id' => $modid));
$returnurl->param('courseid', $courseid); $returnurl->param('courseid', $courseid);
$PAGE->set_context(context_module::instance($modid));
} }


// If courseid is empty use the system context // Blogs are always in system context.
if (empty($courseid)) { $sitecontext = context_system::instance();
$PAGE->set_context(context_system::instance()); $PAGE->set_context($sitecontext);
}


$blogheaders = blog_get_headers(); $blogheaders = blog_get_headers();


Expand All @@ -77,7 +75,6 @@
print_error('noguestentry', 'blog'); print_error('noguestentry', 'blog');
} }


$sitecontext = context_system::instance();
if (!has_capability('moodle/blog:create', $sitecontext) && !has_capability('moodle/blog:manageentries', $sitecontext)) { if (!has_capability('moodle/blog:create', $sitecontext) && !has_capability('moodle/blog:manageentries', $sitecontext)) {
print_error('cannoteditentryorblog'); print_error('cannoteditentryorblog');
} }
Expand Down
4 changes: 2 additions & 2 deletions blog/edit_form.php
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ function validation($data, $files) {


// validate course association // validate course association
if (!empty($data['courseassoc'])) { if (!empty($data['courseassoc'])) {
$coursecontext = context::instance_by_id($data['courseassoc'], IGNORE_MISSING); $coursecontext = context::instance_by_id($data['courseassoc']);


$canassociatecourse = has_capability('moodle/blog:associatecourse', $coursecontext); $canassociatecourse = has_capability('moodle/blog:associatecourse', $coursecontext);
if ($coursecontext->contextlevel == CONTEXT_COURSE && $canassociatecourse) { if ($coursecontext->contextlevel == CONTEXT_COURSE && $canassociatecourse) {
Expand All @@ -156,7 +156,7 @@ function validation($data, $files) {
// validate mod association // validate mod association
if (!empty($data['modassoc'])) { if (!empty($data['modassoc'])) {
$modcontextid = $data['modassoc']; $modcontextid = $data['modassoc'];
$modcontext = context::instance_by_id($modcontextid, IGNORE_MISSING); $modcontext = context::instance_by_id($modcontextid);


$canassociatemodule = has_capability('moodle/blog:associatemodule', $modcontext); $canassociatemodule = has_capability('moodle/blog:associatemodule', $modcontext);
if ($canassociatemodule) { if ($canassociatemodule) {
Expand Down
11 changes: 2 additions & 9 deletions blog/index.php
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@
} }


$sitecontext = context_system::instance(); $sitecontext = context_system::instance();
// Blogs are always in system context.
$PAGE->set_context($sitecontext);


// check basic permissions // check basic permissions
if ($CFG->bloglevel == BLOG_GLOBAL_LEVEL) { if ($CFG->bloglevel == BLOG_GLOBAL_LEVEL) {
Expand Down Expand Up @@ -199,15 +201,6 @@


$courseid = (empty($courseid)) ? SITEID : $courseid; $courseid = (empty($courseid)) ? SITEID : $courseid;


if (empty($entryid) && empty($modid) && empty($groupid)) {
$PAGE->set_context(context_user::instance($USER->id));
} else if (!empty($modid)) {
$PAGE->set_context(context_module::instance($modid));
} else if (!empty($courseid)) {
$PAGE->set_context(context_course::instance($courseid));
} else {
$PAGE->set_context(context_system::instance());
}


$blogheaders = blog_get_headers(); $blogheaders = blog_get_headers();


Expand Down
14 changes: 5 additions & 9 deletions blog/preferences.php
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -55,20 +55,16 @@
$PAGE->set_url($url); $PAGE->set_url($url);
$PAGE->set_pagelayout('standard'); $PAGE->set_pagelayout('standard');


if ($courseid == SITEID) { $sitecontext = context_system::instance();
require_login(); $PAGE->set_context($sitecontext);
$context = context_system::instance(); require_login($courseid);
$PAGE->set_context($context);
} else {
require_login($courseid);
$context = context_course::instance($courseid);
}


if (empty($CFG->enableblogs)) { if (empty($CFG->enableblogs)) {
print_error('blogdisable', 'blog'); print_error('blogdisable', 'blog');
} }


require_capability('moodle/blog:view', $context); // The preference is site wide not blog specific. Hence user should have permissions in site level.
require_capability('moodle/blog:view', $sitecontext);


/// If data submitted, then process and store. /// If data submitted, then process and store.


Expand Down

0 comments on commit 68fc1cc

Please sign in to comment.