Top Menu

Friday, October 4, 2013

User Profile Properties through JSOM

Following is the code to get the current user's Profile Properties through JSOM (JavaScript Object Model) in SharePoint 2013.
<script src="/_layouts/15/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="/_layouts/15/Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="/_layouts/15/init.js" type="text/javascript"></script>
<script src="/_layouts/15/sp.runtime.js" type="text/javascript"></script>
<script src="/_layouts/15/sp.js" type="text/javascript"></script>
<script src="/_layouts/15/SP.UserProfiles.js" type="text/javascript"></script>

<script type="text/javascript">

    //$(document).ready(function(){
        SP.SOD.executeOrDelayUntilScriptLoaded(getUserProperties, 'SP.UserProfiles.js');
    //});

    var userProfileProperties;

    function getUserProperties() {

        var clientContext = new SP.ClientContext.get_current();
        var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
        userProfileProperties = peopleManager.getMyProperties();
        clientContext.load(userProfileProperties);
        clientContext.executeQueryAsync(onRequestSuccess, onRequestFail);
    }

    // This function runs if the executeQueryAsync call succeeds.
    function onRequestSuccess() {
        var messageText = "<b>";
        if (userProfileProperties.get_userProfileProperties()['Title'] != "")
            messageText += userProfileProperties.get_userProfileProperties()['Title'];
        if (userProfileProperties.get_userProfileProperties()['SPS-Department'] != "")
            messageText += ", " + userProfileProperties.get_userProfileProperties()['SPS-Department'];
        if (messageText.length > 5)
            messageText += "<br/>";
        if (userProfileProperties.get_userProfileProperties()['Office'] != "")
            messageText += userProfileProperties.get_userProfileProperties()['Office'];
        if (userProfileProperties.get_userProfileProperties()['WorkPhone'] != "")
            messageText += ", " + userProfileProperties.get_userProfileProperties()['WorkPhone'];
        messageText += "</b>";
        $get("results").innerHTML = messageText;
    }

    // This function runs if the executeQueryAsync call fails.
    function onRequestFail(sender, args) {
        $get("results").innerHTML = "Error: " + args.get_message();
    }

</script>

<div id="results"></div>

No comments:

Post a Comment

Official SharePoint Documentation

I have recently contributed to the official SharePoint documentation for developement. Check it out here: https://docs.microsoft.com/en-us...