REST Api : Come recuperare le informazioni utente con il metodo “SiteUserInfoList”.

Come riportato in un articolo precedente, tra le maggiori novità introdotte con SharePoint 2013 c’è il supporto alle operazioni REST che restituiscono dati nel formato Odata (Open Data Protocoll).

Le soluzioni basate su REST usano lo standard HTTP con i verbi: GET,PUT,POST,DELETE permettendoci quindi di sviluppare una vera e propria libreria per i metodi CRUD.

La funzione che prenderemo in considerazione in questo caso ci consente di recuperare le informazioni (User Properties) dell’utente corrente o più in generale di un dato utente , passando come argomento l’ID.  Le applicazioni pratiche sono tante, ad esempio potremmo creare una piccola rubrica da visualizzare nella “Home Page”. Il metodo in esame è compatibile con le piattaforme : “Shaepoint Online”, “SharePoint 2013” e “SharePoint 2013 Foundation”.

Passiamo ai ‘fatti’ ma prima una  premessa : la soluzione è a titolo di esempio.

Pagina ASPX.

Apriamo con “SharePoint Designer” la pagina dove vogliamo mostrare le informazioni e in corrispondenza dell’elemento “PlaceHolder” con ID=’PlaceHolderAdditionalPageHead’ aggiungiamo i riferimenti ai file javascript seguenti:

  • /_layouts/15/MicrosoftAjax.js
  • /_layouts/15/sp.runtime.js
  • /_layouts/15/sp.js
  • /_layouts/15/sp.requestexecutor.js
  • /Style Library/jquery-1.9.1.min.js
  • /Style Library/RESTUser.js

I primi 4 file sono standard, “jquery-1.9.1.min.js” si trova disponibile  in rete ed infine “RESTUser.js” è il file che aggiungeremo per eseguire tutto il codice di interesse. Per concludere, aggiungiamo in un punto qualunque della pagina questo elemento HTML di tipo DIV con ID=’infoUser’.

In questo div, mostreremo il risultato.

File Javascript : RESTUser.

Aggiungiamo quindi nella ‘Style Library’ un file con esenstensione ‘JS’ e copiamo all’interno il codice seguente:

'use strict';
var context = SP.ClientContext.get_current();
var user = context.get_web().get_currentUser();
var idUser = 0;

// Questa codice viene eseguito quando DOM è pronto e crea un oggetto contesto necessario per utilizzare il modello a oggetti di SharePoint
$(document).ready(function () {
    getUserId();
});
// Con questa funzione recuperiamo l'ID dell'utente corrente
function getUserId() {    
    context.load(user);
    context.executeQueryAsync(onGetUserIdSuccess, onGetUserIdFail);
}
// Questa funzione viene eseguita se la chiamata sopra indicata ha esito positivo e prosegue con la chiamata alla funzione che recupera le informazioni utente tramite chiamata REST.

function onGetUserIdSuccess() {
    idUser = user.get_id();   
    getinfo(idUser); //recupero le Info con l'ID passato
    
}
// Questa funzione viene eseguita se la chiamata precedente ha esito negativo
function onGetUserIdFail(sender, args) {
    alert('Failed to get user ID. Error:' + args.get_message());
}

function getinfo(id) {
    //Eseguo il metodo 'SiteUserInfoList' compatibile con tutte le //versioni, anche la Foundation 
    jQuery.ajax({
        url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/SiteUserInfoList/Items(" + id + ")?$select=Title,Name,EMail",
        type: "GET",                
        headers: {
            "accept": "application/json;odata=verbose",
        },
        success: function (data) {
            ShowData(data);
        },
        error: function (err) {
            alert(JSON.stringify(err));
        }
    });
}

//Per concludere, la funzione che mostra le info recuperate
 function ShowData(data) {     
var html = [];     html.push("<table>");     
var results = data.d.results;     
html.push("<tr>");      
html.push("<td>");      
html.push("Benvenuto,<strong>" +data.d.Title+"</strong>");      
html.push("</td>");     
html.push("</tr>");  
html.push("<tr>");   
html.push("<td>");      
html.push("Email:" +data.d.EMail);      
html.push("</td>");     
html.push("</tr>");                
html.push("</table>");     
$('#infoUser').html(html.join('')); }

 

A video vedremo al posto del div, le informazioni riportate nella tabella HTML:

Benvenuto, Amministratore
Email : amm@email.it

Buon lavoro!

Annunci

Informazioni su masiciliano

Analista programmatore, seguo da anni con interesse la piattaforma di collaboration 'Sharepoint'; argomento principale del blog.
Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...