From: <var...@us...> - 2025-07-30 07:57:03
|
Revision: 11200 http://sourceforge.net/p/phpwiki/code/11200 Author: vargenau Date: 2025-07-30 07:57:02 +0000 (Wed, 30 Jul 2025) Log Message: ----------- Add access checks for plugins AppendText, CreatePage and WikiAdminDeleteAcl (patches by Christof Meerwald) Modified Paths: -------------- trunk/lib/plugin/AppendText.php trunk/lib/plugin/CreatePage.php trunk/lib/plugin/WikiAdminDeleteAcl.php trunk/pgsrc/ReleaseNotes Modified: trunk/lib/plugin/AppendText.php =================================================================== --- trunk/lib/plugin/AppendText.php 2025-05-05 19:11:33 UTC (rev 11199) +++ trunk/lib/plugin/AppendText.php 2025-07-30 07:57:02 UTC (rev 11200) @@ -106,6 +106,13 @@ return HTML(); } + if (!mayAccessPage('change', $pagename)) { + $message = HTML::div(); + $message->setAttr('class', 'error'); + $message->pushContent(HTML::p(fmt("Access denied to change page “%s”.", $pagename))); + return $message; + } + $page = $dbi->getPage($pagename); $message = HTML(); Modified: trunk/lib/plugin/CreatePage.php =================================================================== --- trunk/lib/plugin/CreatePage.php 2025-05-05 19:11:33 UTC (rev 11199) +++ trunk/lib/plugin/CreatePage.php 2025-07-30 07:57:02 UTC (rev 11200) @@ -85,6 +85,13 @@ return $this->error(_("Page name too long")); } + if (!mayAccessPage('create', $s)) { + $message = HTML::div(); + $message->setAttr('class', 'error'); + $message->pushContent(HTML::p(fmt("Access denied to change page “%s”.", $s))); + return $message; + } + $param = array('action' => 'edit'); if ($template and $dbi->isWikiPage($template)) { $param['template'] = $template; Modified: trunk/lib/plugin/WikiAdminDeleteAcl.php =================================================================== --- trunk/lib/plugin/WikiAdminDeleteAcl.php 2025-05-05 19:11:33 UTC (rev 11199) +++ trunk/lib/plugin/WikiAdminDeleteAcl.php 2025-07-30 07:57:02 UTC (rev 11200) @@ -50,20 +50,25 @@ $perm->sanify(); foreach ($pages as $pagename) { // check if unchanged? we need a deep array_equal - $page = $dbi->getPage($pagename); - setPagePermissions($page, $perm); - $result->setAttr('class', 'feedback'); - $result->pushContent(HTML::p(fmt("ACL deleted for page “%s”", $pagename))); - $current = $page->getCurrentRevision(); - $version = $current->getVersion(); - $meta = $current->_data; - $text = $current->getPackedContent(); - $meta['summary'] = sprintf(_("ACL deleted for page “%s”"), $pagename); - $meta['is_minor_edit'] = 1; - $meta['author'] = $request->_user->UserName(); - unset($meta['mtime']); // force new date - $page->save($text, $version + 1, $meta); - $count++; + if (mayAccessPage('change', $pagename)) { + $page = $dbi->getPage($pagename); + setPagePermissions($page, $perm); + $result->setAttr('class', 'feedback'); + $result->pushContent(HTML::p(fmt("ACL deleted for page “%s”", $pagename))); + $current = $page->getCurrentRevision(); + $version = $current->getVersion(); + $meta = $current->_data; + $text = $current->getPackedContent(); + $meta['summary'] = sprintf(_("ACL deleted for page “%s”"), $pagename); + $meta['is_minor_edit'] = 1; + $meta['author'] = $request->_user->UserName(); + unset($meta['mtime']); // force new date + $page->save($text, $version + 1, $meta); + $count++; + } else { + $result->setAttr('class', 'error'); + $result->pushContent(HTML::p(fmt("Access denied to change page “%s”.", $pagename))); + } } if ($count) { $dbi->touch(); Modified: trunk/pgsrc/ReleaseNotes =================================================================== --- trunk/pgsrc/ReleaseNotes 2025-05-05 19:11:33 UTC (rev 11199) +++ trunk/pgsrc/ReleaseNotes 2025-07-30 07:57:02 UTC (rev 11200) @@ -1,4 +1,4 @@ -Date: Mon, 5 May 2025 19:51:55 +0000 +Date: Wed, 30 Jul 2025 09:42:13 +0000 Mime-Version: 1.0 (Produced by PhpWiki 1.6.6) Content-Type: application/x-phpwiki; pagename=ReleaseNotes; @@ -9,6 +9,10 @@ <<CreateToc with_toclink||=1 headers||=1,2,3 width=300px position=right>> +== 1.6.7 2025-XX-XX Marc-Etienne Vargenau, Christof Meerwald == + +* Add access checks for plugins AppendText, CreatePage and WikiAdminDeleteAcl (patches by Christof Meerwald) + == 1.6.6 2025-05-05 Marc-Etienne Vargenau, Christof Meerwald == * Fix PDO SQL syntax (patch by Christof Meerwald) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |