Search the FirstSpirit Knowledge Base
Ich habe ein kleines Problem. Ich versuche mit einem Skript bestimmte Benutzer aus einer Gruppe (hier die Administratoren Gruppe) zu entfernen.
Gemäß meiner Logging Ausgaben werden diese auch erfolgreich entfernt und sind auch wenn ich mir das entsprechende Gruppen Objekt mit Hilfe der Beanshell Konsole anschauen nicht mehr der Gruppe zugeordnet. Schaue ich aber im Admin Client sind sie nach wie vor da.
Starte ich dann den Java Client neu und schaue mir hier das entsprechende Gruppenobjekt nochmal in der Beanshellkonsole an sind die zuvor vermeintlich gelöschten Benutzer auch hier wieder da.
Muss ich das Löschen denn nochmal irgendwie extra bestätigen (so in Form eines Commits) damit die Benutzer auch wirklich physikalisch aus der Gruppe entfernt werden. Kann zumindest in der API nix entsprechendes dazu finden.
Ich bin für jeden Tipp dankbar.
Viele Grüße,
Stefan
Wahrscheinlich fehlt der Aufruf von "save()" auf der Projektinstanz
[EDIT]
Da hat sich der Sourcecode-Post mit meinem zeitlich überschnitten. Es fehlt sowohl das "lock()", "save()" und das "unlock()".
Bitte nach dem "lock()" einen "try .. finally" Block beginnen, das "unlock()" gehört in das "finally".
Hat hier denn wirklich niemand eine Ahnung woran das liegen könnte?
Bin gerade echt ratlos.
Hi,
vielleicht hilft es ja, das Skript hier anzuhängen/zu posten, damit sich jemand das anschauen und eine Meinung bilden kann
Gruß
Stefan
Gute Idee! 🙂
Hier der entsprechende Ausschnitt:
project = context.getProject();
projectGroups = project.getGroups();
for(group:projectGroups){
if(group.getName().equals("Administrators")){
users = group.getUsers();
for(i=0;i<users.length;i++){
if(!users[i].getLoginName().equals("Admin")&& !users[i].getLoginName().equals("pmanager")){
if(group.removeUser(users[i])){
context.logInfo("Benutzer "+users[i].getRealname()+" erfolgreich aus Gruppe "+group.getName()+" entfernt.");
}
else{
context.logInfo("Benutzer "+users[i].getRealname()+" konnte nicht aus Gruppe "+group.getName()+" entfernt werden.");
}
}
}
}
Wahrscheinlich fehlt der Aufruf von "save()" auf der Projektinstanz
[EDIT]
Da hat sich der Sourcecode-Post mit meinem zeitlich überschnitten. Es fehlt sowohl das "lock()", "save()" und das "unlock()".
Bitte nach dem "lock()" einen "try .. finally" Block beginnen, das "unlock()" gehört in das "finally".
Super, das funktioniert.
Wusste nicht, dass man das Projekt auch locken muss.
Werde es mir merken.