diff --git a/mod/forum/lib.php b/mod/forum/lib.php
index 443612f001b..7ba8e0171ca 100644
--- a/mod/forum/lib.php
+++ b/mod/forum/lib.php
@@ -1126,7 +1126,7 @@ function forum_print_post(&$post, $courseid, $ownpost=false, $reply=false, $link
global $THEME, $USER, $CFG;
- static $stredit, $strdelete, $strreply, $strparent, $threadedmode, $isteacher;
+ static $stredit, $strdelete, $strreply, $strparent, $threadedmode, $isteacher, $adminedit;
if (empty($stredit)) {
$stredit = get_string("edit", "forum");
@@ -1135,6 +1135,7 @@ function forum_print_post(&$post, $courseid, $ownpost=false, $reply=false, $link
$strparent = get_string("parent", "forum");
$threadedmode = (!empty($USER->mode) and ($USER->mode == FORUM_MODE_THREADED));
$isteacher = isteacher($courseid);
+ $adminedit = (isadmin() and !empty($CFG->admineditalways));
}
echo "id\">";
@@ -1213,8 +1214,8 @@ function forum_print_post(&$post, $courseid, $ownpost=false, $reply=false, $link
}
$age = time() - $post->created;
- if ($ownpost) {
- if ($age < $CFG->maxeditingtime) {
+ if ($ownpost or $adminedit) {
+ if (($age < $CFG->maxeditingtime) or $adminedit) {
echo "wwwroot/mod/forum/post.php?edit=$post->id\">$stredit | ";
}
}
diff --git a/mod/forum/post.php b/mod/forum/post.php
index 9330047ff50..8c0bd6553ba 100644
--- a/mod/forum/post.php
+++ b/mod/forum/post.php
@@ -204,13 +204,15 @@
} else if (isset($edit)) { // User is editing their own post
+ $adminedit = (isadmin() and !empty($CFG->admineditalways));
+
if (! $post = forum_get_post_full($edit)) {
error("Post ID was incorrect");
}
- if ($post->userid <> $USER->id) {
+ if (($post->userid <> $USER->id) and !$adminedit) {
error("You can't edit other people's posts!");
}
- if ((time() - $post->created) > $CFG->maxeditingtime) {
+ if (((time() - $post->created) > $CFG->maxeditingtime) and !$adminedit) {
error( get_string("maxtimehaspassed", "forum", format_time($CFG->maxeditingtime)) );
}
if ($post->parent) {