Seite 1 von 1

deaktiverte Benutzer nach x tage löschen?

Verfasst: Sa 26.Aug, 2006 13:49
von Christian_N
Hallo,
wie heißt nochmal genau der MOD der Benutzer nach X Tage automatisch löscht, die Tage im ACP einstellbar?

Dann noch frage zu den MOD, kann man auch dann diese automatische löschung für bestimmte Benutzer deaktivieren, so selbst wenn die länger als der vorgegeben Zeitspanne im ACP deaktiviert sein sollte nicht gelöscht werden?

Und wie sicher ist eigentlich der MOD hat jem. schon was drüber erfahrn?

Weil würd gern den einbauen, aba er müsste auch bestimmte Benutzer halt ignonieren das die nicht gelöscht werden.

Falls der MOD dies nicht kann, könnte man den dann irgendwie dementsprechend dafür anpassen?

Schonmal danke für die antworten.

EDIT: Hab nur ein gefunden bei phpBBhacks.com, und der ist super veraltet, von 2003 und der kann noch nicht mal das was ich wollte, vllt. müsste man den erst programmieren, das man im ACP eine Zahl an Tagen einstellt so das die Benutzer gelöscht werden und die Benutzer die man im admin_users.php stell mirs mal vllt. durch ein Checkbox von diese automatischen löschung schützt vor. Wäre sicher nicht all zu schwer, aber ich hab echt keine ahnung wie ich es selbst machen könnte alles. Damit es meine wünsche erfüllt, daher hoff ich mal, wenn es nicht so schwer ist und jem. die ein paar minute zeit hat es vllt. mal so erstmal grob programmiert und ggf. dann nach und nach es verfeinert usw. :)

EDIT2: Achja völlig vergessen, angebracht wäre ggf. auch noch das falls jem. des automatischen löschen zum opfer fällt das dieser Benutzer letzmalig noch via Mail darüber infomiert wird.

EDIT3: Mir fiel gerade was ein, ist zwar nicht so genau wie ich es haben wollte, aber zu not gehts auch und ist womöglich sogar einfacher zu realisieren.
Und zwar gibt es ja den MOD von Oxpus "Temporary Board Users" vllt. kann man ja dort in der page_header.php den teil

Code: Alles auswählen

// Check if user will be diabled or not
if ($userdata['user_disable_date'] != 0 && $userdata['user_level'] != ADMIN)
{
	$user_disable_text = sprintf($lang['User_disable_time_text'], create_date($board_config['default_dateformat'], $userdata['user_disable_date'], $board_config['board_timezone']));
}
else
{
	$user_disable_text = $lang['User_none_disable_time_text'];
}

// Disable user if needed
$current_time = time();
$sql = "SELECT user_id, username, user_email, user_lang FROM " . USERS_TABLE . "
	WHERE user_disable_date <= $current_time
		AND user_disable_date > 0
		AND user_active = 1
		AND user_level NOT IN (" . ADMIN . ", " . ANONYMOUS . ")";
if (!($result = $db->sql_query($sql)))
{
	message_die(GENERAL_ERROR, 'Could not fetch temporary users', '', __LINE__, __FILE__, $sql);
}

$num_users = $db->sql_numrows($result);
if ($num_users > 0)
{
	include($phpbb_root_path . 'includes/emailer.'.$phpEx);

	while($row = $db->sql_fetchrow($result))
	{
		$disable_user = $row['user_id'];
		$disable_email = $row['user_email'];
		$disable_name = $row['username'];
		$disable_lang = $row['user_lang'];

		$sql_disable = "UPDATE " . USERS_TABLE . "
				SET user_active = 0
				WHERE user_id = $disable_user";
		if (!($db->sql_query($sql_disable)))
		{
			message_die(GENERAL_ERROR, 'Could not disable temporary users', '', __LINE__, __FILE__, $sql);
		}

		$emailer = new emailer($board_config['smtp_delivery']);

		$emailer->from($board_config['board_email']);
		$emailer->replyto($board_config['board_email']);

		$emailer->use_template('temp_user_disable', stripslashes($disable_lang));
		$emailer->email_address($disable_email);
		$emailer->set_subject($lang['Disable_temp_account']);

		$emailer->assign_vars(array(
			'SITENAME' => $board_config['sitename'],
			'USERNAME' => str_replace("\'", "'", $disable_name),
			'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
		);

		$emailer->send();
		$emailer->reset();
	}
}
$db->sql_freeresult($result);
so anpassen, das er 2woche also 14tage später den Account löscht automatisch und eine mail versendet - muss ja irgendwie nur etwas geändert werden so das + time(60*60*24*14); // für 14tage und dann delelte form phpbb_user where user_id = x and user_active = 0 - oder so so das er prüft ist der user deaktiviert? (was die 0 ja wäre) wenn ja dann eben den befehl von löschen ausführen falls nein sollte also der betreffende user 1 sein nicht ausführn.

Ich hoff man versteht mich, im kopfchen hab ich ungefähr ja den code nur wie ich den umzusetzen habe und wo ich den hinzufügen muss das bekomm ich irgendwie net umgesetzt von kopf in die tat :( Den da ist es ja dann womöglich da es einfacher ist kann man auch gleich dann die mail letztmailig verschicken das der account gelöscht wurde etc.


EDIT4: Hat jem. schon eine simple Lösung für mich oder hab ich mich so blöd ausgedrückt, das nicht genau mich verstanden würde?
Gruß Chris

Verfasst: Mo 28.Aug, 2006 23:19
von oxpus
Nun, ich habe noch so einige andere dringende Baustellen, daher mal nur ein kurzer Einwurf:
Was soll eine Email direkt vor dem Löschen bewirken, wenn der Account dann doch eh weg ist?

Verfasst: Di 29.Aug, 2006 00:15
von Christian_N
Schon klar das noch andere dingen zu tun hast :) Deshalb frage ich allgemein :)
Naja was soll das bewirken, wenn account eh dann weg ist, naja eben damit der Benutzer bescheid weiss das sein Account gelöscht wurde.
Wenn man so ein Account löscht im ACP wird auch eine Mail verschickt, ok glaub das war jetzt nicht Standard von phpBB sonder macht der eine MOD.
Jedenfalls ist der betreffende Benutzer darüber dann informiert geworden.

Verfasst: Di 29.Aug, 2006 07:48
von oxpus
Ja, das ist auch ein MOD, ein anderer, aber ein MOD.

Verfasst: Mo 04.Sep, 2006 12:46
von Christian_N
Hat jem. schon eine Idee hier zu?
weil ich es selbst könnte sonst als notlösung, nur den MOD von Oxpus "Temporary Board Users" dulpizieren, also komplett umschreiben das man im ACP einstellt das datum wann und das dann an den tag eben gelöscht wird (falls deaktiviert ist der benutzer).

Aba denke mal es geht sicher auch noch einfacherer.

EDIT: Hab mal jetzt es wie oben geschrieben versucht klappt aber nicht aus irgend ein Grund, naja hoff mal das bald jem. die etwas mehr erfahrung haben so 5-10min zeit haben um ein simple lösung posten zu können muss ja kein riesen MOD sein ein kleines snippet (add-on), welche vllt. die installation des Temporary Board Users vorraussetzt wäre auch ausreichent.

EDIT2: Und ein Menüpunkt kann wegfalle, also es muss nicht User bedingt sein, einfach folgende sache benötig ich:
  • Prüfung ob Account deaktiviert ist
  • Falls ja nach xTage löschen (einstellung im ACP) - (notfalls reicht auch hardcodet aus dann aber mind. 14tage)
  • Bevor gelöscht wird eine letzte E-Mail an Benutzer schicken damit er bescheid, weiss das sein Account ab diesen Zeitpunkt gelöscht wurde und somit dann logischerweise keine weitere Mails mehr erhält etc.

Verfasst: Do 07.Sep, 2006 13:18
von oxpus
Sorry, ich hab nicht die Zeit dafür. Zumindest momentan...

Verfasst: Do 07.Sep, 2006 15:24
von Christian_N
ist mir schon bewussst, deshalb ging es auch an die allgemeinheit, kann ja schlecht sein das du der einzigste hier bist *gg*

Verfasst: Sa 09.Sep, 2006 19:54
von AmigaLink
Schau dir mal diesen MOD an, Christian. Inactive Users 1.1.8.
Der Arbeitet war nicht vollautomatisch, aber ich bin damit vollkommen zufrieden.
Mehr braucht man eigentlich nicht. :)

Verfasst: Sa 09.Sep, 2006 21:42
von Christian_N
Oki danke, steht zwar in English die beschreibung, aber schau mir mal den Code etc. an vllt. komm ich dahinter was der alles macht und reicht für meine vorstellung aus hoffentlich :)

Meld mich ggf. deshalb dann nochmal.

EDIT: Ist nicht ganz das was ich mir vorgestellt habe, aber solang man noch nicht soviele User hat wie u.a. hier auf Oxpus es geben *fg* geht es auch zu not damit :)
Danke für den MOD nochmal, allerdings wenn den selbst einsetzen tust, dann hast sicher ja auch die Deutsche email dateien und den deutsche Teil für der lang_admin.php, könntest noch so nett sein mir den Teil posten?

Danke schonmal dafür.

Gruß Chris

Verfasst: So 10.Sep, 2006 12:59
von AmigaLink
Gerade bei vielen Benutzern ist der MOD Gold wert, wenn man die Userdatenbank aufräumen möchte. :)

Deutsche Dateien habe ich. Kann sie dir aber derzeitig nicht geben weil mein Arbeitsrechner kaputt ist und ich deswegen nur sehr eingeschränken Zugriff auf meine Daten habe.
Mein Laptop und mein Zweitrechner sind (absichtlich) nur für Notfälle Konfiguriert. Deswegen hört ihr momentan auch recht wenig von mir. :(

Verfasst: So 10.Sep, 2006 13:12
von oxpus
*mitamigalinkmitfühlt*

Verfasst: So 10.Sep, 2006 13:23
von AmigaLink
*mitamigalinkmitfühlt*
Danke. Ich bin momentan echt vom Pech verfolgt. ^6
Netzteil vom Arbeitsrechner kaputt, DVD-Player kaputt, Kaffee-Vollautomat kaputt, irgendein Idiot hat nen Aussenspiegel meines Autos abgebrochen, Brille verloren, Ärger mit der GEZ (Verwaltungsfehler), Ärger mit dem Führerschein (Behördefehler), Ärger mit einer Telefongesellschaft (mit der ich nie etwas zu tun hatte), ...
Meine Finanzen sehen so schlecht aus wie noch nie! :(

Verfasst: So 10.Sep, 2006 17:07
von oxpus
Schlechter kanns wohl einem nicht mehr gehen.
Hoffen wir mal, daß sich zumindest die Pannen der Firmen und Behörden schnell klären.
Alles andere wäre durch den aktuten Kapitalengpass wohl erstmal nicht zu lösen...

Verfasst: So 10.Sep, 2006 17:31
von Christian_N
Hm, Das macht nichts :), habe gerade mal auf www.phpbbmods.de geschaut weil die dort schon von paar MODs übersetztungen haben in Deutsch, leider aber nicht für diesen. (Werds jedenfalls dort mal gleich vorschlagen), aber hab ein andere MOD wo eine Deutsche Übersetztung dort gibt gefunden.

Nähmlich dieser hier: http://www.phpbbhacks.com/download/1427 wie ist der? Jem. schon erfahrung mit gemacht? Also sicherheitsmässig müsste er eigentlich gehn, den er hat in der include datei gleich am anfang des Hacking attempt jedenfalls drin.

Verfasst: So 10.Sep, 2006 19:56
von oxpus
Also mit phpbbmods.de habe ich keine Verträge, dort wird auch nur auf andere Seiten verwiesen.
Der MOD auf phpbbhacks.com scheint aber interessant zu sein.
Probier ihn doch aus.

Verfasst: So 10.Sep, 2006 20:37
von Christian_N
Oki doki, soweit ich aus der include datei raus fande kann tut er einigste machen, allerdings verschickt er keine Mail, aber das lässt sich dort sicher irgendwie mit rein bauen dann, da kann ich ja mal den von amigalink schaun wie dort die funktion ist mit dem versand :)

P.S. mit phpbbmods.de hab ich auch keine verträge bin dort sehr sehr sehr selten, da mein zuhause hier auf oxpus.de is :D

Verfasst: So 10.Sep, 2006 21:56
von AmigaLink
Naja - Führerschein, GEZ, Aussenspiegel & Brille haben sich bereits erledigt. Auf dem DVD-Player ist noch Garantie und dürfte somit auch kein größeres Problem darstellen. :) Der Rest wird allerdings wirklich warten müssen. ^6
Knaller find ich nur, das dies alles in so kurzer Zeit passiert ist und ausgerechnet wenn man eh gerade die Finanzen strapaziert hat (Führerschein, Motorrad & Schutzkleidung). Da muss man ja Kirre werden! :wall:

Zurück zum Thema:
Der "Admin Auto Delete Users" klingt doch recht vielversprechend und der Autor, Billy Sauls, hat einige nützliche MODs geschrieben. Womit die Qualität des MODs ja schonmal ganz gut sein dürfte. :)

Verfasst: So 10.Sep, 2006 22:47
von Christian_N
@AmigaLink: Naja drück dir mal die Daumen das der Rest auch noch was wird und bald wieder zu ruhe kommst, ist schon verrückt was so kurz alles passiert ist, also an zufälle glaub ich eigentlich nicht, aber das kann ja nichts anders gewesen sein.

@Thema: Das Billy nützliche MODs schrieb ist mir u.a. bekannt, aber glaub er hat auch für die MODs die Updates eingestellt, zumindste hab ich lang nicht mehr gelesen von ihm.
Naja, ich versuchs halt mal und hoff das ich dort irgendwie die Mail funktion noch rein bekomm, dann wärs eigentlich es ja was ich in ne gewissen art haben wollte eigentlich :)

EDIT: Hab womöglich den falsche Code oder nur an die falsche stelle es gesetzt, jedenfalls der Account wurde gelöscht, hab geschaut, allerdings was auch noch auffiel das soll er allerdings nicht tun, hab ein account mal deaktiviert, der vorher aktiviert war. Die Zeitspanne abgewartet bevor er wieder neu prüfen tut und geschaut der vorher aktiv war wurde gelöscht.

Weil er ganz einfach von regdate ab prüft und nicht ab wann der benutzer inaktiv ist.

Naja, da muss ich wohl doch den von AmigaLink nehmen hoffe das ich die Deutsche dateien auf phpbbmods.de noch bekomm dafür :)

Verfasst: Mo 11.Sep, 2006 13:45
von AmigaLink
Nur um das mal richtig zu stellen. Der "Inactive Users" ist nicht von mir! Ich hab nur meinen Download verlinkt, weil ich zu faul war auf phpBBhacks zu suchen. :)

Und das die Zeitspanne zur Prüfung der inaktiven Benutzerkonten ab der Registrierung zählt, ist logisch. Denn beim deaktivieren eines Benutzerkontos, wird kein Zeitstempel gesetzt. ;)

Verfasst: Mo 11.Sep, 2006 14:00
von Christian_N
[quote="AmigaLink";p="63905"]Nur um das mal richtig zu stellen. Der "Inactive Users" ist nicht von mir! Ich hab nur meinen Download verlinkt, weil ich zu faul war auf phpBBhacks zu suchen. :)
[/quote]
Ist mir schon klar :D [quote="AmigaLink";p="63905"]
Und das die Zeitspanne zur Prüfung der inaktiven Benutzerkonten ab der Registrierung zählt, ist logisch. Denn beim deaktivieren eines Benutzerkontos, wird kein Zeitstempel gesetzt. ;)[/quote]
Das ist mir auch klar da muss erst das noch gesetzt werden etc. und das is soviel für mich da bekomm ich erst recht nicht hin *gg*

Verfasst: Mo 11.Sep, 2006 19:33
von AmigaLink
Ich hab mal etwas für dich getrickst. :)

Eintrag in lang_admin.php:

Code: Alles auswählen

//Beginning Inactive Users
$lang['Users_Inactive'] = 'Inaktive Benutzerkonten';
$lang['Users_Inactive_Explain'] = 'Hier werden die Benutzer aufgelistet deren Account noch nicht Aktiviert ist.<br /><br />Mit "Erinnern" wird an alle ausgewählte Benutzer eine eMail zur Erinnerung geschickt.<br />Mit "Aktivieren" werden die ausgewählten Benutzer Freigeschaltet.<br />Mit "Löschen" wird den ausgewählten Benutzern eine eMail geschickt und ihr Account gelöscht!';
$lang['UI_Check_None'] = '"Account-Freischaltung" ist <b>None</b>.';
$lang['UI_Check_User'] = '"Account-Freischaltung" ist <b>User</b>';
$lang['UI_Check_Admin'] = '"Account-Freischaltung" ist <b>Admin</b>.';
$lang['UI_Check_Recom'] = '%sÄndern%s.';
$lang['UI_Removed_Users'] = 'Gelöschte Benutzer';
$lang['UI_User'] = 'Benutzer';
$lang['UI_Registration_Date'] = 'Registrierungsdatum';
$lang['UI_Last_Visit'] = 'Last Visit';
$lang['UI_Active'] = 'Active';
$lang['UI_Email_Sents'] = 'Erinnerungen';
$lang['UI_Last_Email_Sents'] = 'Letzte eMail';
$lang['UI_CheckAll'] = 'alle Makieren';
$lang['UI_UncheckAll'] = 'Makierungen aufheben';
$lang['UI_InvertChecked'] = 'Auswahl umkehren';
$lang['UI_Contact_Users'] = 'Erinnern';
$lang['UI_Delete_Users'] = 'Löschen';
$lang['UI_Activate_Users'] = 'Aktivieren';
$lang['UI_select_user_first'] = 'Du must erst einen Benutzer auswählen!';
$lang['UI_return'] = 'Klicke %shier%s um zu Inaktive Benutzer zurück zu kehren.';
$lang['UI_Deleted_Users'] = 'Der Benutzer wurde gelöscht!';
$lang['UI_Activated_Users'] = 'Der Benutzer wurde aktiviert!';
$lang['UI_Alert_Days'] = "Tage";
$lang['UI_with_zero_messages'] = "<br />0 Poster Anzeigen";
$lang['UI_Alert_Every'] = "Alle";
$lang['UI_Alert_UpTo'] = "Bis zu";
$lang['UI_Alert_Over'] = "Über";
Email-Dateien hänge ich an.

Verfasst: Mo 11.Sep, 2006 21:44
von Christian_N
Ui besten dank, dann kann ich ja auf phpbbmods.de bescheid geben das es sich erledigt hat. :)

EDIT:1. Einbaufehler? Kann ich mir kaum vorstellen. Jedenfalls war die Zeile nicht ersetzt geworden (fehlte bei dir komplett)

Code: Alles auswählen

 $lang['UI_CheckColor'] = 'Check';
habs mal damit ersetzt und in die lang_admin.php hinzugefügt:

Code: Alles auswählen

 $lang['UI_CheckColor'] = 'Makieren';

so klick ich jetzt beim rote feld auf "Makieren" was eigentlich heiße sollte alle rote markieren tut er nichts makieren.
Denk mal das ist dann ein Bug im MOD?

2. Auch hab ich eine Errinnerungmail verschickt bei dem Link zum aktivieren fehlt der code und somit kommt dann die Meldung das der nicht mit der Datenbank übereinstimmt.

3. Und dann überhaupt ein vorschlag was besser gemacht werden könnte, wenn des Häkchen bei "0 Poster anzeigen" gesetzt ist und dann angezeigt wird, so das dann wenn man diese markiert und eine erinnerung mail z.B. schickt eine sperate bekommt, da die mit dem inhalt was die inaktive bekommen stimmt ja nicht da mit überein dann.

EDIT2: 4. Irgendwas is da bei mir falsch komplett, er zeigt noch nicht mal die inaktive Accounts an, nur wenn ich 0 Poster anzeigen klicken, dann bekomm ich die 0 Poster angezeigt, aber die inaktive zeigen aus irgend ein grund bei mir nicht an :(

EDIT3:
Christian_N hat geschrieben:2. Auch hab ich eine Errinnerungmail verschickt bei dem Link zum aktivieren fehlt der code und somit kommt dann die Meldung das der nicht mit der Datenbank übereinstimmt.
Dürfte sich erledigt habe, das problem ist er tut von die Datenbank ja das Feld "user_actkey" abfragen, wenn der Account (durch Admin eingestellt) aktiviert wurde bereits und später mal nur deaktiviert wird, ist dieses Feld "user_actkey" in der DB leer und somit kann er den nicht übermittel den Key.

EDIT5:
Christian_N hat geschrieben:EDIT2: 4. Irgendwas is da bei mir falsch komplett, er zeigt noch nicht mal die inaktive Accounts an, nur wenn ich 0 Poster anzeigen klicken, dann bekomm ich die 0 Poster angezeigt, aber die inaktive zeigen aus irgend ein grund bei mir nicht an :(
Auch das liegt an dem "user_actkey" wenn dies leer ist wird keine angezeigt, auszug aus admin_users_inactive.php

Code: Alles auswählen

 user_active = 0 AND user_actkey <> '' 
hier brauch ich das er die trotzdem anzeigt auch wenn die Tabelle leer ist spricht kein "user_actkey" erhält.
So das ich die auch ggf. löschen kann in dem fall könnte ja der Button zum "Erinnern" deaktiviert werden wenn die leer ist so das keine verschickt werden kann sondern nur gelöscht werden kann, wenn diese Feld im DB leer ist :)

EDIT6:
Christian_N hat geschrieben:in dem fall könnte ja der Button zum "Erinnern" deaktiviert werden wenn die leer ist so das keine verschickt werden kann sondern nur gelöscht werden kann, wenn diese Feld im DB leer ist :)
fällt mir gerade ein, das geht ja garnicht *fg*

Naja hab mal aus der admin_users_inactive.php den teil

Code: Alles auswählen

 AND user_actkey <> ''
gelöscht, damit alle inaktivie benutzer anzeigen, sowie den Button "Errinnern" hab ich raus genommen, da sowieso die aktivierung bei uns durch Admin folgt, brauchts wirs nicht wirklich, so das wir nur aktivieren können bzw. löschen können dort :)

Somit hat sich 2. 3. 4. bei mir erledigt, jetzt bleibt nur noch der Fehler aus mein Problem 1. hoffe das wir das noch hinbekommen :)

Gruß Chris