MDL-34695 wiki: ensure the correct individual subwiki is used/created for a user

This commit is contained in:
Jonathon Fowler
2012-11-01 12:27:56 +08:00
committed by Rossiani Wijaya
parent 67ba0081ba
commit f2ce3d0239
2 changed files with 11 additions and 1 deletions
+5
View File
@@ -49,6 +49,11 @@ if ($wid) {
print_error('incorrectwikiid', 'wiki');
}
if (!$subwiki = wiki_get_subwiki_by_group($wiki->id, $currentgroup, $userid)) {
// trap anomalous parameters that would lead to a shared subwiki being created for an individual user
if ($wiki->wikimode == 'individual' && $userid == 0) {
throw new coding_exception('Tried creating a shared subwiki in \'individual\' mode. This shouldn\'t happen.');
}
// create subwiki if doesn't exist
$subwikiid = wiki_add_subwiki($wiki->id, $currentgroup, $userid);
$subwiki = wiki_get_subwiki($subwikiid);
+6 -1
View File
@@ -947,8 +947,13 @@ class page_wiki_create extends page_wiki {
$groupid = '0';
}
if (empty($this->subwiki)) {
// trap anomalous parameters that would lead to a shared subwiki being created for an individual user
if ($PAGE->activityrecord->wikimode == 'individual' && $this->uid == 0) {
throw new coding_exception('Tried creating a shared subwiki in \'individual\' mode. This shouldn\'t happen.');
}
// If subwiki is not set then try find one and set else create one.
if (!$this->subwiki = wiki_get_subwiki_by_group($this->wid, $groupid)) {
if (!$this->subwiki = wiki_get_subwiki_by_group($this->wid, $groupid, $this->uid)) {
$swid = wiki_add_subwiki($PAGE->activityrecord->id, $groupid, $this->uid);
$this->subwiki = wiki_get_subwiki($swid);
}