cancel
Showing results for 
Search instead for 
Did you mean: 

Récupérer le rôle de l'utilisateur connecté

goktan
Champ in-the-making
Champ in-the-making
Bonjour,

je suis en train de faire un évaluateur en Java et j'ai besoin de savoir s'il l'utilisateur connecté est coordinateur. Je dois faire ce test en Java or je ne sais pas quelle classe utiliser.

Merci de vos réponses !!!!!!!!
8 REPLIES 8

jayjayecl
Confirmed Champ
Confirmed Champ
Utilise le bean authorityService

goktan
Champ in-the-making
Champ in-the-making
Merci beaucoup de ta réponse, comment on l'utilise ??

jayjayecl
Confirmed Champ
Confirmed Champ
désolé, je me suis trompé :
permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, allow, includeContainingAuthorities, includeContainingPermissions)

tu trouveras le sens des paramètres sur la javadoc, mais ils sont faciles a deviner.

Cette methode te renvoie un Set<NodeRef>, tu n'as plus qu'à vérifier si l'espace en question se trouve dans ce Set<NodeRef>

rivarola
Champ on-the-rise
Champ on-the-rise
Je ne suis pas sûr d'avoir compris exactement ce que veux faire goktan mais s'il s'agit juste de vérifier si un utilisateur est coordinateur sur un noeud (l'espace courant par exemple), je préfère utiliser :

permissionService.hasPermission(nodeRef, "Coordinator");

goktan
Champ in-the-making
Champ in-the-making
merci de vos réponses précieuses !!

o fait rivarola, ta ligne de code retourne koi o just, c un booléan ? est-ce ke je pe l'utiliser dans un "if" ?

goktan
Champ in-the-making
Champ in-the-making
Au fait voici mon évaluateur, peut-être que cela vous aidera :


public boolean evaluate(Node node) {
      Path path = node.getNodePath();
      
      boolean afficher = false;

               String parent=path.get(path.size()-1).toString();  //on récupère l'espace courant
      
              // tester si l'utilisateur connecté est coordinateur, si le test est réussi on met afficher à true ;
      
      return afficher;
}

jayjayecl
Confirmed Champ
Confirmed Champ
Je ne suis pas sûr d'avoir compris exactement ce que veux faire goktan mais s'il s'agit juste de vérifier si un utilisateur est coordinateur sur un noeud (l'espace courant par exemple), je préfère utiliser :

permissionService.hasPermission(nodeRef, "Coordinator");


C'est vrai que c'est nettement mieux !

rivarola
Champ on-the-rise
Champ on-the-rise
Dans ton cas c'est encore plus simple : il y a une méthode hasPermission directement sur le Node.
Prend exemple sur ce qu'ont fait les développeurs d'Alfresco dans leurs propres évaluateurs :
public class CheckinDocEvaluator extends BaseActionEvaluator
{
   private static final long serialVersionUID = 5398249535631219663L;

   /**
    * @see org.alfresco.web.action.ActionEvaluator#evaluate(org.alfresco.web.bean.repository.Node)
    */
   public boolean evaluate(Node node)
   {
      return (node.hasAspect(ContentModel.ASPECT_WORKING_COPY) &&
              node.getProperties().get(ContentModel.PROP_WORKING_COPY_MODE) == null &&
              node.hasPermission(PermissionService.CHECK_IN));
   }
}