ID-Wechsel 1.1 |
dennosius
Mitglied
Dabei seit: 21.12.04
Beiträge: 2
|
|
Titel: ID-Wechsel 1.0
Version: 1.0
Beschreibung: ID-Wechsel 1.0
Addon für WBB 2.3.3 (mit anderen Versionen nicht getestet)
Beschreibung:
Ein Benutzer, der mehrere Forum-Accounts hat, kann zwischen diesen Accounts problemlos hin- und herwechseln. Das ist praktisch z.B. für Rollenspiel-Foren. Er trägt dazu bei allen Neben-IDs den Namen seiner Haupt-ID unter Profil>Einstellungen ein. Die Passwörter müssen zuvor schon identisch sein; das Passwort kann dann nur noch bei der Haupt-ID für alle IDs gleichzeitig geändert werden.
Der User sieht dann ein Drop-Down-Menü, wo er bequem den Benutzer auswählen kann (Haupt-ID ist dort mit einem * markiert). Er landet nach dem ID-Wechsel nicht auf der Startseite, sondern wieder genau da, wo er war (praktisch, wenn einem vor der Beitragserstellung auffällt, dass man mit der falschen ID eingelogged ist).
Copyright, Credits & Disclaimer:
Ich, Dennis Jlussi, habe dieses Addon erstellt auf Ideengrundlage eines Hacks für WBB Lite von 'Jump'. Irgendwelche Lizenzbestimmungen spare ich mir, macht mit dem Code, was Ihr wollt; wer den nötigen Anstand hat, wird meinen Namen auch bei Weiterentwicklungen sicherlich in den Credits erwähnen.
Der Einbau geschieht auf eigene Gefahr. Ich kann nicht dafür garantieren, dass das Addon das tut, was es soll und auch nicht dafür, dass keine Daten verloren gehen oder keine Sicherheitslücken entstehen. Das Addon sollte nur von Leuten eingebaut werden, die den Code nachvollziehen können und wissen, was sie tun.
Demo:
http://www.tropicali.de - Das Micronation-Rollenspiel mit karibischem Flair.
Einbauzeit:
Je nach Geschick ca. 15 bis 30 Minuten.
Sicherheitsaspekte:
Es ist erforderlich, dass der Benutzer für alle seine Accounts das gleiche Passwort einstellt. Wenn das Passwort irgendwie von einem Dritten in Erfahrung gebracht wird, kann er also auf einmal mehrere Accounts kapern. Allerdings dürfte es ohnehin gängige Praxis sein, dass ein Benutzer für seine Accounts das gleiche Passwort einstellt.
Wenn zwei Benutzer das gleiche Passwort haben und der eine den anderen als Haupt-ID einträgt, dann kann er dessen Account kapern. Dass das zufällig passiert, dürfte allerdings extrem unwahrscheinlich sein und wer weiß, welcher andere Benutzer das gleiche Passwort verwendet, kann den Account auch ohne dieses Addon kapern.
Zum Thema SQL Injektionen: Soweit die originalen Formulare im UserCP geändert werden, werden die übernommenen Formularvariablen exakt so aufbereitet, wie die WBB-Originalvariablen. Die einzige Formularvariable aus der neuen changeuser.php, die in eine Datenbankabfrage übernommen wird, wird vorher durch intval() aufbereitet. Insofern dürften durch das Addon keine zusätzlichen Sicherheitslücken entstehen.
Verbesserungswürdig:
Der Admin hat im ACP keine Kontrolle über diese Usereinstellungen, eventuelle Eingriffe müssen daher direkt in der Datenbank erfolgen. Schön wäre in dem Zusammenhang vielleicht auch, das Feature nur für bestimmte Gruppen zu erlauben.
Die Texte im UserCP sollten vielleicht in Sprachvariablen übernommen werden.
Der User kann durch Direkteingabe der URL das Verbot umgehen, unter einer Neben-ID das Passwort zu ändern.
Ein hübsches Setup-Programm habe ich auch nicht geschrieben.
----
Demo: http://www.tropicali.de
weiter zum Download
Dateianhang: |
ucbild.png (8 KB, 1.789 mal heruntergeladen)
|
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von dennosius: 08.12.05 11:35.
|
|
14.11.05 12:11 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Badboy023
Mitglied
Dabei seit: 12.02.05
Beiträge: 54
Herkunft: Von Mama Forenversion: 2.3
|
|
Hallo,
ich hab diesen Hack installiert. Aber irgendwas funktionier nicht! Kannst du mir helfen. Wo stell ich denn ein, dass eine ID eine Haupt oder Neben ID ist?
Gruß
|
|
07.12.05 16:49 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|
Bei mir geht das im Firefox überhaupt nicht! Bim IE geht es wunderbar aber im FF werde ich sofort abgemeldet wenn ich auch nur auf den Drop Down Button klicke!
Edit: So das Problem mit dem FF hab ich nun gelöst aber:
Jetzt bleibt nicht mehr setehn was man bei EInstellung ändern als Haupt ID angibt! Ich schreib z.B. die Zahl 1 rein aber die bleibt nicht da!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von .::Undertaker::.: 27.03.06 15:20.
|
|
20.03.06 22:34 |
E-Mail
Finden
Als Freund hinzufügen
|
|
propag
Mitglied
Dabei seit: 29.03.06
Beiträge: 26
|
|
Du musst den namen eingeben nicht die ID!
Ich hab das so gelöst das es nur Moderator und Admins benutzen können.
Aber das Problem ist das diese ja auch User-Accounts haben!
Wie kriege ich es hin, das noch eine andere Benutzergruppe das angucken kann?
So sollte es normal sein:
<if($wbbuserdata['userid'])><then>
So habe ich die Auswahlbox in den Footer:
<if($wbbuserdata['a_acp_or_mcp'])><then>
Also kann man das noch ändern? das noch eine bestimmte Benutzergruppe oder nur bestimmte Benutzer die ich in den Code hier reinschreibe, das sehen können, was daraufhin(Auswahlbox) folgt?
|
|
05.04.06 02:16 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|
Zitat: |
Original von propag
Du musst den namen eingeben nicht die ID!
Ich hab das so gelöst das es nur Moderator und Admins benutzen können.
Aber das Problem ist das diese ja auch User-Accounts haben!
Wie kriege ich es hin, das noch eine andere Benutzergruppe das angucken kann?
So sollte es normal sein:
<if($wbbuserdata['userid'])><then>
So habe ich die Auswahlbox in den Footer:
<if($wbbuserdata['a_acp_or_mcp'])><then>
Also kann man das noch ändern? das noch eine bestimmte Benutzergruppe oder nur bestimmte Benutzer die ich in den Code hier reinschreibe, das sehen können, was daraufhin(Auswahlbox) folgt? |
Das Problem ist ja das ich nix in die Box eingeben kann! Da ist ja der Fehler! Hab mal geguckt bzw. Manuell die DB verändert. Es wird nix rausgelesen und auch nix riengeschrieben!
|
|
05.04.06 14:23 |
E-Mail
Finden
Als Freund hinzufügen
|
|
propag
Mitglied
Dabei seit: 29.03.06
Beiträge: 26
|
|
hmm, hast du den HAUPTNAMEN eingegeben! Nicht die Nummer sondern den Namen!
Und ACHJA das Passwort muss vorher gleich gemacht werden!
Also du hast XY-Acc und YY-ACC und XX-ACC
Du musst bei YY-ACC und XX-ACC in die Einstellungen und da XY eingeben!
Aber vorher natürlich PW gleichsetzen!
|
|
06.04.06 19:57 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|
Sachma hörst du mir eigentlich nicht zu? Ich hab kein Problem mit der Hauptid usw.! Erst ma muss alles aus der Datenbank ausglesen werden und reingeschrieben werden! Dann können wir darüber reden! Da li
|
|
06.04.06 22:36 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Yogi
Mitglied
Dabei seit: 11.01.06
Beiträge: 278
|
|
Hi,
gibts hierzu was neues?
Das ist eigentlcih genau das was ich suche... Allerdings so, das es nur die Admins nutzen können...
so long
__________________
|
|
11.05.06 15:56 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|
SO das es nur die Admins nutzen können ist einfach umzuwandeln.....Kann ich selber auch (nur halt ohne das man es per ACP umschalten kann wer das kann) Aber das teil bei mir eh nicht geht......Werd ich das wohl auch nicht machen
|
|
11.05.06 17:33 |
E-Mail
Finden
Als Freund hinzufügen
|
|
propag
Mitglied
Dabei seit: 29.03.06
Beiträge: 26
|
|
Alles was nur admins sehen sollen gehört hierrein:
<if($wbbuserdata['a_can_use_acp']==1 && $wbbuserdata['a_acp_or_mcp']==1)><then>
INHALT DER NUR VON ADMINS ZUSEHEN SEIN SOLL!
</then></if>
|
|
11.05.06 21:57 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Kirauni
Mitglied
Dabei seit: 03.07.05
Beiträge: 6
|
|
Wirklich praktisch. So etwas haben sich viele meiner Rollenspieler schon gewünscht. Allerdings verläuft der Einbau nicht ganz reibungslos, da es wohl einen Fehler in der Anleitung gibt.
Keine Ahnung, ob an diesem Hack noch gearbeitet wird, aber wenn man ihn einbauen will, muss man folgenden Schritt abändern:
ange anfang
if (isset(
4. usercp.php bearbeiten
code: |
1:
2:
3:
|
Suche: (grobe Richtung: um Zeile 470)
$db->unbuffered_query("UPDATE bb".$n."_users SET parentid='".intval($r_parentid)."', showemail='".intval($r_showemail)."', admincanemail='".intval($r_admincanemail)."', usercanemail='".intval($r_usercanemail)."', invisible='".intval($r_invisible)."', usecookies='".intval($r_usecookies)."', styleid='".intval($r_styleid)."', daysprune='".intval($r_daysprune)."', timezoneoffset='".addslashes(htmlspecialchars($r_timezoneoffset))."', startweek='".intval($r_startweek)."', dateformat='".addslashes($r_dateformat)."', timeformat='".addslashes($r_timeformat)."', emailnotify='".intval($r_emailnotify)."', notificationperpm='".intval($r_notificationperpm)."', receivepm='".intval($r_receivepm)."', emailonpm='".intval($r_emailonpm)."', pmpopup='".intval($r_pmpopup)."', umaxposts='".intval($r_umaxposts)."', showsignatures='".intval($r_showsignatures)."', showavatars='".intval($r_showavatars)."', showimages='".intval($r_showimages)."', threadview='".intval($r_threadview)."', langid='".intval($r_langid)."'".(($wbbuserdata['isgroupleader'] == 1) ? (", emailonapplication='".intval($r_emailonapplication)."'") : ("")).", usewysiwyg='".intval($r_usewysiwyg)."' WHERE userid = '$wbbuserdata[userid]'", 1);
|
|
Den Teil parentid='".intval($r_parentid)."', gibt es im originalen Quellcode vom WBB nicht. Wie auch? Ich denke, das wird für den Hack benötigt. Lässt man diese Stelle weg, findet die Suchfunktion die entsprechende Stelle.
entsprechend muss man diesen Teil ohne ".intval($r_parentid)." dann durch Folgendes ersetzen:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
|
//Userchange anfang
if (isset($_POST['recipients'])) {
$r_parent = wbb_trim($_POST['recipients']);
list($r_parentid) = $db->query_first("SELECT userid FROM bb".$n."_users WHERE username = '".addslashes($r_parent)."' && parentid=0 && password='".$wbbuserdata['password']."' && userid!='".$wbbuserdata['userid']."'");
if (!($r_parentid>0)) {
$r_parentid = NULL;
} else {
list($childid) = $db->query_first("SELECT userid FROM bb".$n."_users WHERE parentid='".$wbbuserdata['userid']."'");
if ($childid>0) $r_parentid = NULL;
}
}
// $db->unbuffered_query("UPDATE bb".$n."_users SET showemail='".intval($r_showemail)."', admincanemail='".intval($r_admincanemail)."', usercanemail='".intval($r_usercanemail)."', invisible='".intval($r_invisible)."', usecookies='".intval($r_usecookies)."', styleid='".intval($r_styleid)."', daysprune='".intval($r_daysprune)."', timezoneoffset='".addslashes(htmlspecialchars($r_timezoneoffset))."', startweek='".intval($r_startweek)."', dateformat='".addslashes($r_dateformat)."', timeformat='".addslashes($r_timeformat)."', emailnotify='".intval($r_emailnotify)."', notificationperpm='".intval($r_notificationperpm)."', receivepm='".intval($r_receivepm)."', emailonpm='".intval($r_emailonpm)."', pmpopup='".intval($r_pmpopup)."', umaxposts='".intval($r_umaxposts)."', showsignatures='".intval($r_showsignatures)."', showavatars='".intval($r_showavatars)."', showimages='".intval($r_showimages)."', threadview='".intval($r_threadview)."', langid='".intval($r_langid)."'".(($wbbuserdata['isgroupleader'] == 1) ? (", emailonapplication='".intval($r_emailonapplication)."'") : ("")).", usewysiwyg='".intval($r_usewysiwyg)."' WHERE userid = '$wbbuserdata[userid]'", 1);
$db->unbuffered_query("UPDATE bb".$n."_users SET parentid='".intval($r_parentid)."', showemail='".intval($r_showemail)."', admincanemail='".intval($r_admincanemail)."', usercanemail='".intval($r_usercanemail)."', invisible='".intval($r_invisible)."', usecookies='".intval($r_usecookies)."', styleid='".intval($r_styleid)."', daysprune='".intval($r_daysprune)."', timezoneoffset='".addslashes(htmlspecialchars($r_timezoneoffset))."', startweek='".intval($r_startweek)."', dateformat='".addslashes($r_dateformat)."', timeformat='".addslashes($r_timeformat)."', emailnotify='".intval($r_emailnotify)."', notificationperpm='".intval($r_notificationperpm)."', receivepm='".intval($r_receivepm)."', emailonpm='".intval($r_emailonpm)."', pmpopup='".intval($r_pmpopup)."', umaxposts='".intval($r_umaxposts)."', showsignatures='".intval($r_showsignatures)."', showavatars='".intval($r_showavatars)."', showimages='".intval($r_showimages)."', threadview='".intval($r_threadview)."', langid='".intval($r_langid)."'".(($wbbuserdata['isgroupleader'] == 1) ? (", emailonapplication='".intval($r_emailonapplication)."'") : ("")).", usewysiwyg='".intval($r_usewysiwyg)."' WHERE userid = '$wbbuserdata[userid]'", 1);
//Userchange Ende
|
|
Der Rest der Anleitung scheint wieder zu stimmen. So hat es jedenfalls bei mir mit dem Einbau geklappt und man kann nun als Rollenspieler bequem zwischen mehreren Accounts umschalten. Ich habe das mit dem Wbb 2.3.6 getestet.
Nur würde ich Admins dringend davon abraten, ihren Account mit anderen zu verbinden. Vergesst nicht: Wenn ein Passwort genackt wird, sind alle Accounts geknackt, die damit verbunden worden sind!
Aber für reine Rollenspielaccounts ist das mit Sicherheit eine praktische Lösung
Danke für die Erweiterung!
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Kirauni: 03.08.07 16:05.
|
|
01.08.07 23:25 |
E-Mail
Finden
Als Freund hinzufügen
|
|
onesworld
gesperrt 02/05/10
Dabei seit: 11.05.09
Beiträge: 722
|
|
Zitat: |
Original von JennyCursed
Gibts noch irgendeinen support zu dem Style. |
Was für ein Style?
|
|
20.05.09 08:34 |
Finden
Als Freund hinzufügen
|
|
JennyCursed
Cube und Jumper Fan :)
Dabei seit: 04.08.05
Beiträge: 67
Fähigkeiten: WBB2 Anfänger Herkunft: nähe Wien Forenversion: 2.3
|
|
Sorry Tippfehler, war mit meinen Gedanken schon weiter, meinte natürlich Hack
|
|
20.05.09 12:09 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Kirauni
Mitglied
Dabei seit: 03.07.05
Beiträge: 6
|
|
Also ich bin mir nicht sicher, was den Support angeht. Aber was die Fehler in der Anleitung angeht, da ist vieles hier im Thema verbessert worden. Die Person, die dir den Hack einbaut, sollte sich das hier einfach mal durchlesen
|
|
21.05.09 09:52 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|