From b7c751a60cf801ec6bc97e5ba86738d81d5dd6f2 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Thu, 6 Mar 2014 10:02:07 +0800 Subject: [PATCH] MDL-32699 wiki: only edit capability is required to restore wiki revision --- mod/wiki/pagelib.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/mod/wiki/pagelib.php b/mod/wiki/pagelib.php index 2e756125fe2..48f831a374e 100644 --- a/mod/wiki/pagelib.php +++ b/mod/wiki/pagelib.php @@ -1834,11 +1834,15 @@ class page_wiki_restoreversion extends page_wiki { } function print_content() { - global $CFG, $PAGE; + global $PAGE; - require_capability('mod/wiki:managewiki', $this->modcontext, NULL, true, 'nomanagewikipermission', 'wiki'); + $wiki = $PAGE->activityrecord; + if (wiki_user_can_edit($this->subwiki, $wiki)) { + $this->print_restoreversion(); + } else { + echo get_string('cannoteditpage', 'wiki'); + } - $this->print_restoreversion(); } function set_url() { @@ -2152,10 +2156,10 @@ class page_wiki_confirmrestore extends page_wiki_save { function print_content() { global $CFG, $PAGE; - require_capability('mod/wiki:managewiki', $this->modcontext, NULL, true, 'nomanagewikipermission', 'wiki'); - $version = wiki_get_version($this->version->id); - if (wiki_restore_page($this->page, $version->content, $version->userid)) { + $wiki = $PAGE->activityrecord; + if (wiki_user_can_edit($this->subwiki, $wiki) && + wiki_restore_page($this->page, $version->content, $version->userid)) { redirect($CFG->wwwroot . '/mod/wiki/view.php?pageid=' . $this->page->id, get_string('restoring', 'wiki', $version->version), 3); } else { print_error('restoreerror', 'wiki', $version->version);