Page 1 of 1
Prevent moderator from editing admin topics ?
Posted: Mon Nov 12, 2007 7:49 am
by joebart72
Hi everybody ! I'm looking for a mod in order to protect administrators posts or topic. There was a mod for phpBB 2 and I think it would be useful for phpBB 3
Re: Prevent moderator from editing admin topics ?
Posted: Mon Jan 14, 2008 5:21 am
by joebart72
I think many administrators would like to protect their posts...
Is there a way moderators can't edit or delete admin posts or topics ?
Up
Re: Prevent moderator from editing admin topics ?
Posted: Mon Jan 14, 2008 6:12 am
by =alex=
good idea theres no mod like this that i know of atm
Re: Prevent moderator from editing admin topics ?
Posted: Thu Jan 17, 2008 10:38 am
by pixel001
good idea
bump ^^
Re: Prevent moderator from editing admin topics ?
Posted: Thu Aug 14, 2008 5:28 pm
by -ds-
I am bumping this as this should really have been part of the phpbb permissions core.
Here is the old phpbb 2 hack. Maybe someone with knowledge of the inner workings of phpbb 3 can change it?
Code: Select all
###############################################
## Hack Title: Improved disallow editing/deleting administrator posts
## Hack Version: 1.0.0
## Author: aboyd
## Website: http://www.outshine.com/forums/
## Description: Moderators cannot edit nor delete posts by administrators.
## Compatibility: 2.0.19
##
## Installation Level: Easy
## Installation Time: 5
##
## Files To Edit: 3
## modcp.php
## posting.php
## language/lang_english/lang_main.php
##
## Included Files: 0
##
## History:
## 1.0.0: Initial release.
##
## Author Notes:
## This was a hack by Freakin' Booty, but it wasn't EasyMod compliant, and
## phpBB 2.0.19 changed some things so that this wouldn't install. All I've
## done is make it EasyMod compliant, and compatible with phpBB 2.0.19.
##
## Support: http://www.outshine.com/forums
## Copyright: ©2003-04 Freakin' Booty ;-P - Disallow editing/deleting admin posts 0.0.2
##
###############################################
## You downloaded this hack from phpBBHacks.com, the #1 source for phpBB related downloads.
## Please visit http://www.phpbbhacks.com/forums for support.
###############################################
##
###############################################
## This hack is released under the GPL License.
## This hack can be freely used, but not distributed, without permission.
## Intellectual Property is retained by the hack author(s) listed above.
###############################################
#
#-----[ OPEN ]--------------------------------------------
#
modcp.php
#
#-----[ FIND ]--------------------------------------------
#
# 2.0.4 - 2.0.11
#
case 'delete':
if (!$is_auth['auth_delete'])
{
message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_auth_delete'], $is_auth['auth_delete_type']));
}
#
#-----[ AFTER, ADD ]--------------------------------------
#
if( $userdata['user_level'] != ADMIN )
{
$topics_sql = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? implode(',', $HTTP_POST_VARS['topic_id_list']) : $topic_id;
$sql = "SELECT t.topic_id
FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u
WHERE u.user_id = t.topic_poster
AND u.user_level = " . ADMIN . "
AND t.topic_id IN ($topics_sql)";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve topics list', '', __LINE__, __FILE__, $sql);
}
if( $db->sql_numrows($result) > 0 )
{
message_die(GENERAL_MESSAGE, $lang['Not_auth_edit_delete_admin']);
}
}
#
#-----[ OPEN ]--------------------------------------------
#
posting.php
#
#-----[ FIND ]--------------------------------------------
#
if ( empty($post_id) )
{
message_die(GENERAL_MESSAGE, $lang['No_post_id']);
}
#
#-----[ AFTER, ADD ]--------------------------------------
#
if( $userdata['user_level'] != ADMIN && ($mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete') )
{
$sql = "SELECT u.user_level
FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u
WHERE p.post_id = $post_id
AND p.poster_id = u.user_id
AND u.user_level = " . ADMIN;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve post information', '', __LINE__, __FILE__, $sql);
}
if( $row = $db->sql_fetchrow($result) )
{
message_die(GENERAL_MESSAGE, $lang['Not_auth_edit_delete_admin']);
}
}
#
#-----[ OPEN ]--------------------------------------------
#
# Make sure to edit this file for every language installed
#
language/lang_english/lang_main.php
#
#-----[ FIND ]--------------------------------------------
#
//
// That's all, Folks!
// -------------------------------------------------
#
#-----[ BEFORE, ADD ]-------------------------------------
#
//
// Disallow editing/deleting administrator posts
//
$lang['Not_auth_edit_delete_admin'] = 'You cannot edit/delete an administrator\'s posts, sorry.';
#
#-----[ SAVE/CLOSE ALL FILES ]--------------------------
#
Re: Prevent moderator from editing admin topics ?
Posted: Fri Aug 22, 2008 9:36 am
by -ds-
up?
Re: Prevent moderator from editing admin topics ?
Posted: Fri Aug 22, 2008 9:49 am
by mtrs
Why not installing
Prime Post Revisions mod, so all the edits will be logged. Then, you can track what your mods edited.
Re: Prevent moderator from editing admin topics ?
Posted: Tue Sep 16, 2008 3:17 pm
by -ds-
mtrs wrote:Why not installing
Prime Post Revisions mod, so all the edits will be logged. Then, you can track what your mods edited.
Yes, that's one option, but a rather extensive one. The logging of every edit will cause your database to increase a hell of a lot. Then having to check them etc ..
all I want to do is to disallow admin posts editing by all but admins - without having to install various other mods.
Surely all it needs is a couple of edits in a file and not a fully blown mod with extra database tables and so forth.
Re: Prevent moderator from editing admin topics ?
Posted: Tue Sep 16, 2008 4:33 pm
by RMcGirr83
You can try this.
OPEN
viewtopic.php
FIND
AFTER, ADD
FIND
AFTER ADD
FIND
Code: Select all
'U_EDIT' => (!$user->data['is_registered']
IN-LINE, FIND
IN-LINE, AFTER ADD
Code: Select all
|| ($user_cache[$poster_id]['group_id'] == '5' && $user->data['group_id'] <> '5')
OPEN
posting.php
FIND
Code: Select all
$sql = 'SELECT f.*, t.*, p.*, u.username, u.username_clean
IN-LINE, FIND
IN-LINE, AFTER ADD
Code: Select all
if ($mode == 'edit' && !$auth->acl_get('m_edit', $forum_id)
IN-LINE, FIND
Code: Select all
!$auth->acl_get('m_edit', $forum_id)
IN-LINE, AFTER ADD
Code: Select all
|| ($post_data['group_id'] == '5' && $user->data['group_id'] <> '5')
FIND
AFTER ADD
Code: Select all
if ($post_data['group_id'] == '5' && $user->data['group_id'] <> '5')
{
trigger_error('You can not edit an Administrators posts');
}
Note, hard coded language and I haven't tested it, so user beware.
Re: Prevent moderator from editing admin topics ?
Posted: Wed Sep 17, 2008 12:06 am
by tgrtgr
The code RMcGirr83 works fine
and adapting the same code I was able to avoid deletion from moderators too. But is there a centralized place where we could add those group checks to avoid any action from mods to admin post? I mean to avoid edit/deletion/moves/merges/etc.
Re: Prevent moderator from editing admin topics ?
Posted: Thu Sep 18, 2008 11:54 am
by tgrtgr
Bumping the thread.