Forum > TeamSpeak Userabgleich
DOTLAN Intranet / Portal >> Konfiguration, Erweiterungen, Addons > TeamSpeak Userabgleich |
Antwort erstellen |
Autor | Thema: TeamSpeak Userabgleich | ||||
|
|
||||
NEW Clan: Freaknet Postings: 124 |
Ich habe heute TeamSpeak mit MySQL-Anbindung installiert. Die TeamSpeak Userdaten liegen in der gleichen DB wie dotlan. Auch die Passworte lasse ich in beiden Systemen mit MD5 verschlüsseln. Ist es möglich ... bzw. ja, ist es, aber wie ... dass alle User die in dotlan registriert sind sich auch in den TeamSpeak-Server einloggen können? Kann man da irgendwie die Tabellen in eine Richtung verknüpfen? __________________ https://www.freaknet.de/ |
||||
|
|
||||
NEW Clan: dotlan.net Postings: 1252 |
Du kannst dir ein Script bauen das die Tabellen kopiert von dotlan nach teamspeak. Vielleicht kann man ja im Teamspeak die SQL Befehle angeben zum abfragen der Daten. Das weiß ich aber nicht.
|
||||
|
|
||||
NEW Clan: Kein Clan Postings: 43 |
direkt möglich ist es nicht, weil sowohl teamspeak als auch dotlan eigene tabellenlayouts verwenden, die sich wohl eher nicht entsprechen. der automatische datenabgleich auf datenbankebene wär erst mit mysql5 möglich, was teamspeak nicht unterstützt. (zumindest nicht 2.0, für 3 ist es "evtl geplant") wie griffon schon gesagt hat, ein php script wär möglich, weiß aber nicht inwieweit das in echtzeit agieren kann. |
||||
|
|
||||
NEW Clan: Freaknet Postings: 124 |
Falls sich da jemand parallel zu uns mit beschäftigen mag, hier unsere Überlegungen dazu. Es muss dazu noch gesagt werden, dass wir eine Gruppe Vereinsmitglieder haben, die in der userg2u mit group_id=2 stehen, kann weglassen wer will: Wir nehmen aus der Tabelle "user" die Felder "id", "nick", "passwort" und "joinus" (ein unix-timestamp). Des weiteren holen wir aus der Tabelle "userg2u" SELECT user_id FROM userg2u WHERE group_id = "2" -> Vereinsmitglieder. Dann schreiben wir die Daten wie folgt in die Tabelle "ts2_clients": i_client_id = id (aus user) i_client_server_id = 1 (der Freaknet TeamSpeak Server) b_client_privilege_serveradmin = 0 (für alle, -1 für Vereinsmitglieder) s_client_name = nick (aus user) s_client_password = passwort (aus user) dt_client_created = joinus (unix timestamp) gewandelt in Format DDMMYYYYHHMMSS000 dt_client_lastonline ... setzt sich automatisch, nicht drum kümmern __________________ https://www.freaknet.de/ |
||||
|
|
||||
NEW Clan: Freaknet Postings: 124 |
So, nach gründlicher Überlegung habe ich folgendes festgestellt: wenn man am Anfang zusätzlich abfragt, welche User-IDs es in der ts2_clients Tabelle schon gibt, dann weiss man, ob man INSERT für neue, UPDATE für alte oder DELETE für nicht mehr existente User benutzen muss. __________________ https://www.freaknet.de/ |
||||
|
|
||||
NEW Clan: Kein Clan Postings: 43 |
es muss natürlich bedacht werden, dass man aufm teamspeakserver niemals das "register with server" recht vergeben sollte, sprich, dass man sich nur über die seite registrieren darf. sonst werden die tabellen schnell unübersichtlich.
|
||||
|
|
||||
NEW Clan: Freaknet Postings: 124 |
So, hiermit bekomme ich bisher zumindest eine Tabelle ausgegeben, in der alle Werte schonmal richtig sind. Bis auf die Tatsache, dass Vereinsmitglieder so keine Serveradmin-Rechte bekommen.
Das UPDATE muss noch auf die anderen Felder ausgeweitet werden, da habe ich bisher nicht herausgefunden ob man das alles in eine Abfrage hauen kann. Dann fehlt wie gesagt noch der Teil, der entscheidet ob Serveradmin oder nicht. Und es wird auch noch nicht geschaut, ob es in der TeamSpeak-Datenbank (noch) User gibt, die in der dotlan DB schon gelöscht wurden. Da fehlen mir derzeit einfach die Ansätze, vielleicht mag das ja jemand verbessern und erweitern. [Editiert von Funstar am 24.Jan.2006 um 19:17] __________________ https://www.freaknet.de/ |
||||
|
|
||||
NEW Clan: Kein Clan Postings: 43 |
du kannst in einem update einiges machen: UPDATE tabelle SET spalte1=wert1, spalte2=wert2, ... WHERE id=$id nur als beispiel. bin nicht sicher, ob das hier geht: UPDATE tabelle1 as t, tabelle2 as a SET t.spalte=wert, a.spalte=wert, WHERE t.id=$id AND t.user=a.id |
||||
|
|
||||
NEW Clan: Freaknet Postings: 124 |
Okay, dann wären wir nun mit dem Verbesserungsvorschlag von griffon und dem Tipp von C.ZI an folgendem Punkt angelangt:
__________________ https://www.freaknet.de/ |
||||
|
|
||||
NEW Clan: Freaknet Postings: 124 |
Weitere Überlegung: die Frage ob man nun INSERT für einen neuen User oder UPDATE für einen existierenden User nehmen soll und weitere Schleifen die prüfen, ob ein User in ts2_clients existiert, der in user nicht (mehr) vorhanden ist und somit gelöscht werden müsste ... kann man sich alles sparen. Einfach am Anfang des Scripts die Tabelle leeren! Es werden demnach alle Zeilen mit INSERT eingefügt. In user nicht mehr vorhandene User werden nicht neu angelegt und gut ist. Das sähe dann so aus (meine ich):
[Editiert von Funstar am 26.Jan.2006 um 20:33] __________________ https://www.freaknet.de/ |
||||
|
|
||||
NEW Clan: Freaknet Postings: 124 |
Nun die vorläufig letzte Version des Scripts. Es ist nun lauffähig und der Quelltext dokumentiert. Es leert die Tabelle ts2_clients und legt im Anschluss alle aktiven dotlan-User als TeamSpeak-User an (inkl. der dotlan-Passwörter). In einer weiteren Schleife bekommen dann alle User einer bestimmten dotlan-Gruppe Serveradmin-Rechte. Zum Schluss wird noch der Superadmin wieder angelegt. Alle benötigten Daten werden über die Variablen im Kopf eingetragen, im Quelltext muss nichts geändert werden. Ach ja: die TeamSpeak-Tabellen müssen in der gleichen Datenbank wie dotlan liegen. Ist aber kein Problem.
[Editiert von Funstar am 28.Jan.2006 um 20:46] __________________ https://www.freaknet.de/ |
||||
|
|
||||
NEW Clan: Postings: 7 |
hi! sowas suche ich auch! gibt es eine auch eine kleine anleitung wie es ich in dotlan einbauen kann? wenn nicht kann einer mal eine anleitung mache wie man es macht! ich bin zu doof für sowas! gruss casi |
||||
|
|
||||
NEW Clan: Da-Ruler Postings: 65 |
Das würde mich auch noch interessieren wie man sowas einbinden kann! |
||||
|
|
||||
NEW Clan: Mitten aus Deutschland e.V. Postings: 438 |
ich glaube das iss nur ne Datei die man einmalig im DOTLAN Verzeiochnis ausführen muss
|
||||
|
|
||||
NEW Clan: Freaknet Postings: 124 |
Nicht ganz. Du musst vorher TeamSpeak auf MySQL-Datenbank umbiegen (das ist schonmal ein heiden Spass), danach die MySQL-Tabellen in die gleiche Datenbank wie dotlan bauen (das wiederum ist einfach, Tabellennamen überschneiden sich nicht) und dann eben das Script um Zugangsdaten für die Datenbank ergänzen und gelegentlich ausführen (immer mal wieder, wenn neue Nutzer angelegt wurden). __________________ https://www.freaknet.de/ |
||||
|
|
||||
NEW Clan: Da-Ruler Postings: 65 |
Hi, kann man Teamspeak 3 auch so in die Seite einbauen? Ein addon scheint es ja dafür zu geben: http://addons.teamspeak.com/directo...-Framework.html Vieleicht kann ja jemand etwas Basteln gruß TripleX |
||||
[ Antwort erstellen ] |