[REQUEST] "negative" Servergroupprotection

Started by Naishweb, March 06, 2016, 09:30:20 AM

Previous topic - Next topic

Naishweb

Hallo Stefan,
Hallo Gemeinde,

erstes Post für mich. Eigentlich hatte ich mich angemeldet um an einer anderen Diskussion teilzunehmen, die Allerdings bereits eine angenehmere Wendung genommen hat ;-)

Nun gut, beim all-Sonntäglichen durchstöbern der Logfiles bin ich allerdings auf ein anderes Problem auf meinem TS Server gestossen. Einige User finden es Lustig anderen Usern einer bestimmten Gruppe anderen Gruppen zu zuweisen. Klingt kompliziert.
Musikbot -> Gruppe Musikbot
Member weist Gruppe Musikbot Gruppe Member hinzu.
Klingt einfacher.

Habe mich an die Funktion Servergroupprotection erinnert. Reingeguckt, festgestellt das die Funktion kein Ignore hat :-(
Ich hatte mir folgendes vorgestellt und würde dies gern als Erweiterungsrequest einstellen:
(BTW: Achtung Zirkelbezug)

# Coma seperated list with clients which are not allowed to join in the followed Group
# ClientID, DeniedServergroupID
# Coma seperated list with groups which are not allowed to join in the followed Group
# GroupID, DeniedServergroupID



Und das i-Tüpfelchen wäre wenn eine Complaint für den der den User in die Gruppe hinzufügte geadded wird.

Stefan1200

Das verstehe ich nicht. Wie kannst du einer Servergruppe eine Servergruppe hinzufügen?

Um zu verhindern, das was anderes, als der Musik Bot in der Musik Bot Gruppe ist, lasse den Bot doch einfach die Musik Bot Gruppe schützen und packe den Musik Bot auf die Liste.

PS: Der Bot kann nicht wissen, wer wen in eine Server Gruppe packt, da dies vom TS3 Server nicht übermittelt wird. Daher erfährt der Bot erst mit mindestens einer Sekunde Verzögerung davon, das ein Client überhaupt in einer Server Gruppe ist.

Naishweb

Das Problem an der Möglichkeit bisher ist folgendes:
Die Gruppe Gast hat keinen Zugriff auf Member Channel (ich denke eine recht häufige Konstellation)
Member können User in die Gruppe Member hinzufügen.
Der Musikbot hat und braucht spezielle berechtigungen.
Einige User machen sich nun einen Jux und fügen dem Musikbot die Gruppe Gamer hinzu, was einige notwendige Rechte negiert. Teamspeak selbst bietet hier leider keine Möglichkeit dieses Recht einzuschränken, so dass dies nicht mehr Möglich ist.
Würde nun der TS3Bot die Gruppe schützen und erkennen das hier ein User in einer DeniedGroup einsortiert ist und diese Gruppe wieder entfernen wäre das Problem obsolet.
Ebenso könnten damit andere Probleme gelöst werden die ich habe, die wohl aber eher spezieller sind. Habe allerdings auch schon auf einem anderen TS ein möglicherweise ähnliches Problem gesehen:
Dieser TS hatte eine Gruppe Member, Member konnten Freunde einer Servergruppe Freunde hinzufügen. Auch hier könnte theoretisch fehlerhafterweise durch Moderatoren oder Admins die Gruppe Member und Freund gleichzeitig vergeben werden.

Ebenso würde mehr Komfort mit einhergehen, da man beispielsweise sagen könnte: WENN ich den User einer weiteren Gruppe hinzufüge ENTFERNE die alte Gruppe.

Stefan1200

Ein Musik Bot benötigt ja nur Talk und Join Power für den entsprechenden Channel, alle anderen Rechte sind ja unwichtig. Warum musst du in der Gruppe Gamer denn diese beiden Rechte negieren? Wenn du die nicht negieren würdest, würden die höheren Rechte der Musik Bot Gruppe ja weiterhin greifen.

Ich habe selbst auch noch mal geschaut: Tatsächlich gibt es keine Möglichkeit über eine Power zu sagen, wer wem eine Gruppe zuweisen darf. Das finde ich bei Hunderten von Rechten in TS3 sehr überraschend.


Quote from: naishweb on March 06, 2016, 11:34:45 AM
Ebenso würde mehr Komfort mit einhergehen, da man beispielsweise sagen könnte: WENN ich den User einer weiteren Gruppe hinzufüge ENTFERNE die alte Gruppe.

Nun, da der Bot keine Informationen über eine Änderung der Server Gruppen vom TS3 Server bekommt, ist das leider nicht so einfach realisierbar. Außerdem sehe ich darin eine große Gefahr -> Server Admin bekommt die Gruppe Normal zugewiesen, zack ist er kein Server Admin mehr.

Naishweb

#4
QuoteAußerdem sehe ich darin eine große Gefahr...
Ja, du hast nicht unrecht, es besteht natürlich eine gewisse Gefahr beim Negieren. Hier könnte man jedoch genause wie mit dem bisherigen Recht auch, die ServerAdmin Gruppe ausschliessen.

Der Musikbot hat beispielsweise das Recht Channelpasswörter zu ignorieren Gamer explizit nicht. Nur ein Beispiel von einigen. Das wenn ich das Recht nicht Explizit negieren würde er es nicht nehmen würde ist klar und ich bin mir bewusst darüber. Einige Regelungen und Konstellationen sind bewusst gewählt und gewollt. Einige Nebeneffekte jedoch leider nicht und mussten bisher ertragen werden.

QuoteNun, da der Bot keine Informationen über eine Änderung der Server Gruppen vom TS3 Server bekommt, ist das leider nicht so einfach realisierbar.
Das weißt du besser als ich. Allerdings benutze ich den Bot als Multitalent. Er ist bei mir Sheriff, Ordner, Infotante, Kumpel und auch Lückenbüßer für die Versäumnisse von Teamspeak selbst. Und hier ist leider wieder eine Lücke :-( Ob es Möglich ist diese zu stopfen oder nicht kann ICH dir nicht sagen. Ich kann nur hoffen das du meinen Featurerequest gut findest  ::)

Hatte allerdings auch ehrlich gesagt nicht damit gerechnet das dieses Feature so erheblich Arbeitsaufwändig ist :-(
Eventuell jede Minute einmal zu prüfen in welcher Gruppe ein User ist der Online ist und mit der Liste abzugleichen ob er in der Gruppe sein darf?
Und bzgl der der Gefahr könnte man theoretisch noch eine Dritte spalte adden:
# Coma seperated list with groups which are not allowed to join in the followed Group
# GroupID, DeniedServergroupID, whichGroupIdToRemove


EDIT:
Der letzte Abschnitt hört herabwürdigend an, das ist nicht meine Absicht. Ich weiss dass es Arbeitsaufwändig ist, ich meinte jedoch, ich hatte gehofft das es eben keine große Änderung sei.

EDIT2:
grad kommt mir die Idee, man könnte das ja auch einem Bot Admin als Case vorlegen und entscheiden lassen oder ihn zumindest anpoken/anschreiben.

Stefan1200

Ich habe da eine Idee, welche nur eine zusätzliche Einstellungen bei der Server Group Protection darstellt. Sobald das aktiv ist, wird von allen Clients, die sich auf der Liste befinden, alle ungeschützte Servergruppen entfernt.

Beispiel: Du überwachst die Musik Bot Gruppe und packst den Musik Bot auf die "er darf" Liste. Aktivierst du diese Funktion, dann darf nur der Musik Bot in dieser Gruppe sein, und alle anderen Gruppen werden entfernt. Das bedeutet dann aber auch, das eine Mischstruktur für alle in dieser Server Gruppe dann nicht mehr funktioniert.

Ergibt das Sinn, oder sollte da lieber eine ganz neue Bot Funktion programmiert werden?

Naishweb

Für explizit meinen Fall würde das eine Lösung darstellen, mein 2tes Problem mit den Membern könnte ich damit nicht lösen, da SpieleIcons auch removed werden würden.
Klingt sehr konfus, ist halt grad in meinem Kopf:

Für den Moment würde es eine Lücke stopfen, wäre denke ich allerdings variabler für mehr einsatzzwecke anwendbar.
Ist es Möglich nicht strikt alle anderen zu entfernen sondern aus der cfg auszulesen welche Gruppen eine Geschützte Gruppe haben|!haben darf?

Stefan1200

Quote from: naishweb on March 06, 2016, 12:30:09 PM
Für den Moment würde es eine Lücke stopfen, wäre denke ich allerdings variabler für mehr einsatzzwecke anwendbar.
Ist es Möglich nicht strikt alle anderen zu entfernen sondern aus der cfg auszulesen welche Gruppen eine Geschützte Gruppe haben|!haben darf?

So ist die Server Group Protection nie konzipiert worden. Und da die für den gewollten Zweck sehr gut funktioniert, möchte ich die vom Design her nicht ändern.

Dann muss das eine neue Funktion werden. Steht auf meiner ToDo.

Naishweb

Ließe sich der Servergroupprotection optional erstmal um die von dir erwähnte Funktion leicht ergänzen? Würde mir vorerst leichte erleichterung verschaffen. Ich muss zwar ein paar sachen umbiegen, allerdings würde ich das zumindest für die Gruppe Musikbot in Kauf nehmen, sofern es für dich nicht erheblicher Mehraufwand wäre.

Stefan1200

Quote from: naishweb on March 06, 2016, 12:41:45 PM
Ließe sich der Servergroupprotection optional erstmal um die von dir erwähnte Funktion leicht ergänzen? Würde mir vorerst leichte erleichterung verschaffen. Ich muss zwar ein paar sachen umbiegen, allerdings würde ich das zumindest für die Gruppe Musikbot in Kauf nehmen, sofern es für dich nicht erheblicher Mehraufwand wäre.

Wenn möchte ich das gleich richtig machen.

Naishweb

verstehe ich, ich werde geduldig warten  ;D

monster010

@Stefan biete die Funktion doch als Plugin an, dann brauchst du nich den Bot updateten ;-) wozu gibts denn sonst das Plugin System

@naishweb warum stellst du die benötigte Member add Power für die musikbot Gruppe nicht höher ein? So das nur noch Admins die Gruppe vergeben können? Hab ich auch so gemacht, jeder musikbot auf meinem TS muss durch einen Admin genehmigt werden -- hört sich scheiße an, aber wer scheiße baut muss bestraft werden. Klar unfair gegenüber denen die keine scheiße gemacht haben, aber so geht's überall (gute alte schulzeit)

Stefan1200

Quote from: monster010 on March 06, 2016, 02:38:45 PM
@Stefan biete die Funktion doch als Plugin an, dann brauchst du nich den Bot updateten ;-) wozu gibts denn sonst das Plugin System

Das Plugin System ist dafür da, damit andere Leute mit Java Kenntnissen Plugins für den Bot schreiben können. Ob nun intern oder extern macht kein Unterschied für mich, da alle Funktionen intern auch nur Plugins sind. ;)


Quote from: monster010 on March 06, 2016, 02:38:45 PM
@naishweb warum stellst du die benötigte Member add Power für die musikbot Gruppe nicht höher ein? So das nur noch Admins die Gruppe vergeben können? Hab ich auch so gemacht, jeder musikbot auf meinem TS muss durch einen Admin genehmigt werden -- hört sich scheiße an, aber wer scheiße baut muss bestraft werden. Klar unfair gegenüber denen die keine scheiße gemacht haben, aber so geht's überall (gute alte schulzeit)

naishweb hat ja das Problem, das seine Musikbots zusätzlich noch in andere Gruppen gesteckt werden. In der anderen Server Gruppe werden Rechte von der eigentlichen Gruppe des Musikbots negiert, was dann Probleme verursacht. Und das kannst du mit der needed_add Power nicht verhindern.

monster010

Quote from: Stefan1200 on March 06, 2016, 02:59:25 PM
naishweb hat ja das Problem, das seine Musikbots zusätzlich noch in andere Gruppen gesteckt werden. In der anderen Server Gruppe werden Rechte von der eigentlichen Gruppe des Musikbots negiert, was dann Probleme verursacht. Und das kannst du mit der needed_add Power nicht verhindern.
Jut, mit der i_group_needed_member_add_power nicht, aber es müsste mit i_client_needed_permission_modify_power gehn. Der Musikbot gruppe dort einen wert geben und schon kann nur noch jemand mit genügend i_client_permission_modify_power den Bots eine Gruppe geben -- Problem gelöst =)

Quote from: Stefan1200 on March 06, 2016, 02:59:25 PM
Das Plugin System ist dafür da, damit andere Leute mit Java Kenntnissen Plugins für den Bot schreiben können. Ob nun intern oder extern macht kein Unterschied für mich, da alle Funktionen intern auch nur Plugins sind. ;)

Für dich machts keinen Unterschied, aber für mich schon weil ich dann auch den Bot Updaten muss =D wenn du es als Plugin machst, brauch ich meinen Bot nich updaten =D

Stefan1200

Quote from: monster010 on March 06, 2016, 05:17:44 PM
Jut, mit der i_group_needed_member_add_power nicht, aber es müsste mit i_client_needed_permission_modify_power gehn. Der Musikbot gruppe dort einen wert geben und schon kann nur noch jemand mit genügend i_client_permission_modify_power den Bots eine Gruppe geben -- Problem gelöst =)

@ naishweb: Testest du das mal?