Seite 1 von 1

Hack - Disallow editing/deleting administrator posts

Verfasst: 16.08.2004 16:50
von Angela Goldig
ich hab vor einiger zeit den hack eingebaut der auch ohne probleme läuft. (phpbb 2.03)

nun würde ich gerne dem supermod (LESS_ADMIN) das recht geben admin posts zu editieren.

ich hab das jetzt geändert in

Code: Alles auswählen

if( ( $userdata['user_level'] != ADMIN || $userdata['user_level'] != LESS_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']);





                        }





                }



in der posting.php.

aber das funktioniert nicht. muß ich da noch was ändern?

Verfasst: 16.08.2004 16:57
von Angela Goldig
ich setz mal den kompletten hack hier rein. erleichtert vielleicht einiges ;)

Code: Alles auswählen

###############################################
##	Hack Title:		Disallow editing/deleting administrator posts
##	Hack Version:	0.0.1
##	Author:			Freakin' Booty ;-P
##	Description:	Moderators cannot edit/delete posts by administrators.
##	Compatibility:	2.0.3 - 2.0.4
##
##	Installation Level: Easy
##	Installation Time: 5
##	Files To Edit: 3
##		modcp.php
##		posting.php
##		language/lang_english/lang_main.php
##
##	Included Files: 0
##		None
##
##	History:
##      0.0.1:		Initial release
##
##	Author Notes:
##		None
##
##	Support:		http://www.phpbbhacks.com/forums
##	Copyright:		©2003 Disallow editing/deleting admin posts 0.0.1 - Freakin' Booty ;-P
##
###############################################
##	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 ]--------------------------------------------
#
# Version: 2.0.3
#
switch( $mode )
{
	case 'delete':

#
#-----[ FIND ]--------------------------------------------
#
# Version: 2.0.4
#
	case 'delete':
		if (!$is_auth['auth_delete'])
		{
			message_die(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 you 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 ]--------------------------
#
# End

Verfasst: 16.08.2004 16:58
von Leuchte
Kannst du mal die posting.php als .txt abspeichern und den Link posten.
Gibt es dasUser Level 'LESS_ADMIN' durch den Mod?

btw: Sehen deine Dateien auch so aus (viele Zeilenumbrüche)?

Verfasst: 16.08.2004 17:04
von Angela Goldig
ich hab rechte für den LESS_ADMIN in sehr vielen dateien ohne problem zugefügt

posting.php als textdatei

Verfasst: 16.08.2004 17:48
von Leuchte
btw: Sehen deine Dateien auch so aus (viele Zeilenumbrüche)?
:o Ja, sehen sie! Du solltest beim Upload der Dateien auf den richtigen Modus achten. Bevor ich deine Datei editiert hab, gab es 26776! Zeilen. Jetzt sind es 1265....

Speicher diese mal ab
posting.php

Verfasst: 16.08.2004 17:51
von Angela Goldig
danke :)