Freischaltungslink per E-Mail nur an bestimmte Admins...?

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
ll
Mitglied
Beiträge: 5
Registriert: 15.05.2007 12:55

Freischaltungslink per E-Mail nur an bestimmte Admins...?

Beitrag von ll »

Hallo zusammen,

wir haben für Kunden diverse Foren installiert. Haben uns selbst auch als Admin angelegt.

Nun hat der Kunde aber soviel Spam erhalten, das wir das Forum auf "Aktivierung durch Admin" umschalten mussten.

Da der Kunde das Forum selbst "moderiert" schaltet er auch die User selber frei. Und das sind nicht wenige ;-)

Allerdings erhalten wir, die wir auch Admin sind, jetzt etliche E-Mails am Tag in der wir neu angemeltete User freischalten sollen.

Nun meine Frage:

Wie kann ich bestimmten Admins ersparen diese Freischalte-E-mails zu erhalten?

Vielen Dank.

Gruss

Andreas
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Wenn du einen Blick in die Datei includes/usercp_register.php wirfst, dann wirst du folgenden Code finden:

Code: Alles auswählen

else if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN )
 				{
 					$sql = 'SELECT user_email, user_lang 
 						FROM ' . USERS_TABLE . '
 						WHERE user_level = ' . ADMIN;
 					
 					if ( !($result = $db->sql_query($sql)) )
 					{
 						message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql);
 					}
 					
 					while ($row = $db->sql_fetchrow($result))
 					{
 						$emailer->from($board_config['board_email']);
 						$emailer->replyto($board_config['board_email']);
 						
 						$emailer->email_address(trim($row['user_email']));
 						$emailer->use_template("admin_activate", $row['user_lang']);
 						$emailer->set_subject($lang['Reactivate']);
 
 						$emailer->assign_vars(array(
 							'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)),
 							'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']),
 
 							'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey)
 						);
 						$emailer->send();
 						$emailer->reset();
 					}
 					$db->sql_freeresult($result);
 				}
Ich gehe davon aus dass sich die gewünschten Admins nicht ständig ändern, so dass es ein paar hartcodierte Werte tun sollten und wir das ganze nicht über den Adminbereich steuern müssen.

Gleich am Anfang des obigen Codes findet eine SQL Abfrage statt, in der die Administratoren gesucht werden. Wenn wir hier nur nach den gewünschten Admins suchen, dann sollten die übrigen keine Mail mehr bekommen.
Ändere daher dieses Segment des obigen Codes:

Code: Alles auswählen

$sql = 'SELECT user_email, user_lang 
 						FROM ' . USERS_TABLE . '
 						WHERE user_level = ' . ADMIN;
in das hier:

Code: Alles auswählen

$adminliste_empfaenger = '2,4,6';
$sql = 'SELECT user_email, user_lang 
 						FROM ' . USERS_TABLE . '
 						WHERE user_level = ' . ADMIN . " AND user_id IN ($adminliste_empfaenger)";
Hier werden nun die Admins mit der ID 2, 4 und 6 gewählt. Zur Sicherheit aber auch nur, wenn sie tatsächlich Admin sind. Diese IDs einfach durch die gewünschten Werte ersetzen (ID's kann man zum Beispiel über die Profile der User herausbekommen, sie stehen dann als u=... in der Adresszeile des Browsers) und jeden Wert vom vorherigen immer mit einem Komma trennen (Leerzeichen sind auch erlaubt, müssen aber zusätzlich zu den Kommas eingegeben werden, sonst gibt's einen Syntaxfehler). Nach dieser Änderung sollten nur noch die gelisteten Admins eine Mail bekommen. Sollte einer dieser User aus irgend einem Grund zum normalen User degradiert werden dann bekommt er auch keine Mails mehr, selbst wenn er in dieser Liste steht. Bitte sichere aber vorher alle Dateien und die Datenbank, ich habe diese Änderung nicht selbst getestet.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“