2

I have implemented sharepoint hosted app for getting user level permissions on a list using javascript and rest api. Here is my code,

'use strict';
var hostweburl;
var appweburl;

var context = SP.ClientContext.get_current();
var user = context.get_web().get_currentUser();

// This code runs when the DOM is ready and creates a context object which is needed to use the SharePoint object model
$(document).ready(function () {
    hostweburl = _spPageContextInfo.siteAbsoluteUrl;
    appweburl = _spPageContextInfo.siteServerRelativeUrl;
    alert(hostweburl);
    alert(appweburl);
    getListUserEffectivePermissions();
});

function getListUserEffectivePermissions() {
    var listTitle = 'MyList_Deepa';
    //var account = 'i%3A0%23.f%7Cmembership%7Cuser%40abhishek@sarasamerica.com&@target=';

    var endpointUrl = "'" + appweburl + "'/_api/SP.AppContextSite(@target)/web/lists/getbytitle('" + listTitle + "')/getusereffectivepermissions(@user)?@user='i%3A0%23.f%7Cmembership%7Cuser%40abhishek@sarasamerica.com&@target='" + hostweburl + "'";

    //var endpointUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + MyList_Deepa + "')/getusereffectivepermissions(@u)?@u='" + encodeURIComponent(account) + "'";;
    return $.ajax({
        url: endpointUrl,
        dataType: 'json',
        headers: {
            "accep": "application/json;odata=verbose",
            "X-RequestDigest": $("#_REQUESTDIGEST").val()
        }
    });
}

function parseBasePermissions(value) {
    var permissions = new SP.BasePermissions();
    permissions.initPropertiesFromJson(value);
    var permLevels = [];
    for (var permLevelName in SP.PermissionKind.prototype) {
        if (SP.PermissionKind.hasOwnProperty(permLevelName)) {
            var permLevel = SP.PermissionKind.parse(permLevelName);
            if (permissions.has(permLevel)) {
                permLevels.push(permLevelName);
            }
        }
    }
    return permLevels;
}

getListUserEffectivePermissions().done(function (data) {
    var roles = parseBasePermissions(data.d.GetUserEffectivePermissions);
    console.log(roles);
});

Error: Failed to load resource: the server responded with a status of 404 (Not Found).

Please anybody can give solution to resolve the problem.

GOPAL YADAV
  • 1,181
  • 2
  • 9
  • 18

0 Answers0