Aggiornamento utente

cancel
Showing results for 
Search instead for 
Did you mean: 
konda
Member II

Aggiornamento utente

Ciao a tutti,

Avrei una domanda particolare: vorrei modificare una proprietà di un utente tramite chiamata PUT al servizio /alfresco/service/api/people/{userName}.

Tuttavia, che tipologia di utente può effettuare questa operazione? Solo l'amministratore o anche l'utente stesso? Chiedo questo perchè l'invocazione avverrebbe tramite l'utilizzo di un ticket.

Grazie
5 Replies
davidciamberlan
Alfresco Employee

Re: Aggiornamento utente

Ciao.

il webscript riporta come livello di autenticazione richiesta "user" quindi non è necessario essere amministratori per poterlo utilizzare (puoi vederlo dal descrittore richiamando l'url http://localhost:8080/alfresco/service/description/org/alfresco/repository/person/person.put).
konda
Member II

Re: Aggiornamento utente

Ciao

Sono d'accordo infatti l'invocazione funziona senza problemi e mi restituisce anche status 200 OK. Tuttavia, vedo che in realtà non ha modificato i campi che ho richiesto (nello specifico, 'mobile'). Pensi possa essere perchè l'utente con cui sono autenticato non abbia abbastanza privilegi?
davidciamberlan
Alfresco Employee

Re: Aggiornamento utente

Ciao,

Puoi postare la chiamata PUT che esegui?

Non penso sia un problema di privilegi. In ogni caso è semplice verificare: prova a ripetere la stessa chiamata con un utente amministratore e vedi se cambia qualcosa.

konda
Member II

Re: Aggiornamento utente

Ciao


<java>


HttpClient client = new HttpClient();
      String apiurl = alfrescoURL   +"/service/api/people/"+userName+"?alf_ticket="+adminTicket;
      logger.debug("Invoco: "+apiurl);
      try {
         JSONObject site = new JSONObject();

         site.put("mobile", idNotifichePush);

         PutMethod put = new PutMethod(apiurl);
         put.setRequestHeader("Content-Type", "application/json");
         put.setRequestEntity(new StringRequestEntity(site.toString(),
               "application/json", "UTF-8"));


         int status = client.executeMethod(put);

</java>

Domani verifico con un ticket da amministratore e ti faccio sapere. Così comunque la chiamata va a buon fine e restituisce status code 200.
davidciamberlan
Alfresco Employee

Re: Aggiornamento utente

Ciao,

ho fatto ulteriori verifiche… ho usato la chiamata all'api in modo analogo a come hai fatto tu e funziona (ma non ho controllato la correttezza del tuo codice!)

Invece può essere un problema di permessi. Infatti (qualcuno dei guru mi conferma questa cosa?) solo gli utenti appartenenti al gruppo amministrativo possono modificare altri utenti.

La cosa strana nel tuo caso è che ti viene restituito un codice 200 invece del 500 previsto, che ti avrebbe fatto capire subito il problema.