ampersand83
I'm new here

Problem beim Entfernen von Benutzern über die API

Jump to solution

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

1 Solution

Accepted Solutions

Wahrscheinlich fehlt der Aufruf von "save()" auf der Projektinstanz Smiley Wink

[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".

Peter

View solution in original post

0 Kudos
5 Replies
ampersand83
I'm new here

Hat hier denn wirklich niemand eine Ahnung woran das liegen könnte?

Bin gerade echt ratlos.

0 Kudos

Hi,

vielleicht hilft es ja, das Skript hier anzuhängen/zu posten, damit sich jemand das anschauen und eine Meinung bilden kann Smiley Happy

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.");

                     }

                 }

             }

         }

0 Kudos

Wahrscheinlich fehlt der Aufruf von "save()" auf der Projektinstanz Smiley Wink

[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".

Peter
0 Kudos

Super, das funktioniert.

Wusste nicht, dass man das Projekt auch locken muss.

Werde es mir merken.

0 Kudos