Merge branch 'wip-MDL-61163-33' of git://github.com/marinaglancy/moodle into MOODLE_33_STABLE
This commit is contained in:
@@ -57,7 +57,7 @@ if (!$cm = get_coursemodule_from_instance('wiki', $wiki->id)) {
|
||||
|
||||
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
|
||||
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
|
||||
if (!wiki_user_can_view($subwiki, $wiki)) {
|
||||
print_error('cannotviewpage', 'wiki');
|
||||
|
||||
@@ -44,6 +44,7 @@ $capabilities = array(
|
||||
'contextlevel' => CONTEXT_MODULE,
|
||||
'archetypes' => array(
|
||||
'guest' => CAP_ALLOW,
|
||||
'frontpage' => CAP_ALLOW,
|
||||
'student' => CAP_ALLOW,
|
||||
'teacher' => CAP_ALLOW,
|
||||
'editingteacher' => CAP_ALLOW,
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ if ($compare >= $comparewith) {
|
||||
print_error('cannotcomparenewerversion', 'wiki');
|
||||
}
|
||||
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
|
||||
if (!wiki_user_can_view($subwiki, $wiki)) {
|
||||
print_error('cannotviewpage', 'wiki');
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ $context = context_module::instance($cm->id);
|
||||
|
||||
|
||||
$PAGE->set_url('/mod/wiki/files.php', array('pageid'=>$pageid));
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
|
||||
if (!wiki_user_can_view($subwiki, $wiki)) {
|
||||
print_error('cannotviewfiles', 'wiki');
|
||||
|
||||
@@ -58,7 +58,7 @@ if (!$cm = get_coursemodule_from_instance('wiki', $wiki->id)) {
|
||||
|
||||
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
|
||||
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
|
||||
if (!wiki_user_can_view($subwiki, $wiki)) {
|
||||
print_error('cannotviewpage', 'wiki');
|
||||
|
||||
+18
-1
@@ -829,4 +829,21 @@ function mod_wiki_core_calendar_provide_event_action(calendar_event $event,
|
||||
1,
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets dynamic information about a course module
|
||||
*
|
||||
* This callback is called from cm_info when checking module availability (incl. $cm->uservisible)
|
||||
*
|
||||
* Main viewing capability in mod_wiki is 'mod/wiki:viewpage' instead of the expected standardised 'mod/wiki:view'.
|
||||
* The method cm_info::is_user_access_restricted_by_capability() does not work for wiki, we need to implement
|
||||
* this callback.
|
||||
*
|
||||
* @param cm_info $cm
|
||||
*/
|
||||
function wiki_cm_info_dynamic(cm_info $cm) {
|
||||
if (!has_capability('mod/wiki:viewpage', $cm->context, $cm->get_modinfo()->get_user_id())) {
|
||||
$cm->set_available(false);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ if (!$wiki = wiki_get_wiki($subwiki->wikiid)) {
|
||||
print_error('incorrectwikiid', 'wiki');
|
||||
}
|
||||
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
|
||||
if (!wiki_user_can_view($subwiki, $wiki)) {
|
||||
print_error('cannotviewpage', 'wiki');
|
||||
|
||||
@@ -84,7 +84,7 @@ abstract class page_wiki {
|
||||
*/
|
||||
protected $tabs_options = array();
|
||||
/**
|
||||
* @var object wiki renderer
|
||||
* @var mod_wiki_renderer wiki renderer
|
||||
*/
|
||||
protected $wikioutput;
|
||||
/**
|
||||
|
||||
@@ -51,7 +51,7 @@ if (!$wiki = wiki_get_wiki($subwiki->wikiid)) {
|
||||
print_error('incorrectwikiid', 'wiki');
|
||||
}
|
||||
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
|
||||
if (!wiki_user_can_view($subwiki, $wiki)) {
|
||||
print_error('cannotviewpage', 'wiki');
|
||||
|
||||
@@ -255,17 +255,27 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
|
||||
// Now, prohibit capabilities.
|
||||
$this->setUser($this->student);
|
||||
$contextcourse1 = context_course::instance($this->course->id);
|
||||
|
||||
// Default student role allows to view wiki and create pages.
|
||||
$wikis = mod_wiki_external::get_wikis_by_courses(array($this->course->id));
|
||||
$wikis = external_api::clean_returnvalue(mod_wiki_external::get_wikis_by_courses_returns(), $wikis);
|
||||
$this->assertEquals('Test wiki 1', $wikis['wikis'][0]['intro']);
|
||||
$this->assertEquals(1, $wikis['wikis'][0]['cancreatepages']);
|
||||
|
||||
// Prohibit capability = mod:wiki:viewpage on Course1 for students.
|
||||
assign_capability('mod/wiki:viewpage', CAP_PROHIBIT, $this->studentrole->id, $contextcourse1->id);
|
||||
assign_capability('mod/wiki:viewpage', CAP_PROHIBIT, $this->studentrole->id, $contextcourse1->id, true);
|
||||
accesslib_clear_all_caches_for_unit_testing();
|
||||
course_modinfo::clear_instance_cache(null);
|
||||
|
||||
$wikis = mod_wiki_external::get_wikis_by_courses(array($this->course->id));
|
||||
$wikis = external_api::clean_returnvalue(mod_wiki_external::get_wikis_by_courses_returns(), $wikis);
|
||||
$this->assertFalse(isset($wikis['wikis'][0]['intro']));
|
||||
$this->assertEquals(0, count($wikis['wikis']));
|
||||
|
||||
// Prohibit capability = mod:wiki:createpage on Course1 for students.
|
||||
assign_capability('mod/wiki:viewpage', CAP_ALLOW, $this->studentrole->id, $contextcourse1->id, true);
|
||||
assign_capability('mod/wiki:createpage', CAP_PROHIBIT, $this->studentrole->id, $contextcourse1->id);
|
||||
accesslib_clear_all_caches_for_unit_testing();
|
||||
course_modinfo::clear_instance_cache(null);
|
||||
|
||||
$wikis = mod_wiki_external::get_wikis_by_courses(array($this->course->id));
|
||||
$wikis = external_api::clean_returnvalue(mod_wiki_external::get_wikis_by_courses_returns(), $wikis);
|
||||
|
||||
+3
-3
@@ -70,7 +70,7 @@ if ($id) {
|
||||
// Checking course instance
|
||||
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
|
||||
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
|
||||
// Checking wiki instance
|
||||
if (!$wiki = wiki_get_wiki($cm->instance)) {
|
||||
@@ -142,7 +142,7 @@ if ($id) {
|
||||
// Checking course instance
|
||||
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
|
||||
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
/*
|
||||
* Case 2:
|
||||
*
|
||||
@@ -173,7 +173,7 @@ if ($id) {
|
||||
// Checking course instance
|
||||
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
|
||||
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
|
||||
$groupmode = groups_get_activity_groupmode($cm);
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ if (!$cm = get_coursemodule_from_instance('wiki', $wiki->id)) {
|
||||
|
||||
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
|
||||
|
||||
require_login($course, true, $cm);
|
||||
require_course_login($course, true, $cm);
|
||||
|
||||
if (!wiki_user_can_view($subwiki, $wiki)) {
|
||||
print_error('cannotviewpage', 'wiki');
|
||||
|
||||
Reference in New Issue
Block a user