Hallo Leute,
die Rechtehierarchie auf meinem Server ist so aufgebaut, dass eine bestimmte "nichtAdmin"-Gruppe den Gästen eine ServerGruppe zuteilen kann, mit der diese dann in andere Channel können.
Läuft ansich alles Wunderbar. Allerdings gibt es einen Schöheitsfehler. Besagte "nichtAdmin"-Gruppenmitglieder können sich untereinander ebenfalls diese Grupe zuteilen. Das ist kein Sicherheitsproblem sondern eher ein optisches Problem.
Ich möchte nun ein Skript erstellen, welches die Gruppem eines benutzers vergleicht und gegebenenfalls eine Gruppe entfernt.
Kurzform: Gehört ein user einer oder keiner von beiden Gruppen an ist alles super, gehört er beiden an, soll eine Gruppe entfernt werden!
Anhand dieses threads ts3 Auto change group server und dem darin geposteten Skript habe ich es auch soweit geschafft, dass es mir die gruppen ausliest/ ausgibt.
foreach($clients['data'] as $client)
{
echo'
<table style="border: 5px solid #00FF00" width="100%">
<tr>
<td>'.$client['client_nickname'].'</td>
<td>'.$client['clid'].'</td>
<td>'.$client['client_servergroups'].'</td>
</tr>
';
$clientinfo = $tsAdmin->clientInfo($client['clid']);
$array_errors[$client['client_nickname']] = get_errors($clientinfo);
//$gruppen = 244 and 243;
if ($clientinfo['data']['client_servergroups'] = 243 and 244) //$gruppen)
{
$array_errors[$client['client_nickname']] = get_errors($tsAdmin->serverGroupDeleteClient(243,$clientinfo["data"]["client_database_id"]));
$array_errors[$client['client_nickname']] = get_errors($tsAdmin->serverGroupAddClient(244,$clientinfo["data"]["client_database_id"]));
}
}
Alles anzeigen
In Zeile 14 habe ich auch schon versucht die Gruppen die verglichen werden sollen zu definieren.
Probleme:
Hat ein user keine der beiden Gruppen, wird ihm die höhere hinzugefügt.
Hat ein user die geringere Gruppe, wird diese entfernt und die höhere hinzugefügt.
Ich schaffe es einfach nicht das "and" zu definieren.
Ich hoffe ihr könnt mir helfen.
Gruß Chris