使用 javascript(ecmascript) 获取列表的用户/组权限 [英] Get User/Group Permissions for List using javascript(ecmascript)

查看:50
本文介绍了使用 javascript(ecmascript) 获取列表的用户/组权限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 javascript 对象模型来检索列表的用户/组列表及其在列表级别的权限.到目前为止,我有它返回一个成员对象,但我无法获得有关该成员的任何信息.当我尝试使用 rAssignment.get_member().get_id() 或 rAssignment.get_member().get_title() 时出现错误.

I am trying to use the javascript object model to retrieve a list of users/groups for a list and their permissions at the list level. So far I have this which returns a member object but I cant get any information about the member. When I try to use rAssignment.get_member().get_id(), or rAssignment.get_member().get_title() I get an error.

        //Get List Permissions
        function getListPerms() {
            var clientContext = new SP.ClientContext();
            var siteColl = clientContext.get_site();
            var site = clientContext.get_web();
            listSecurableObject = site.get_lists().getByTitle($("[name='ListSlct']").val());
            listRoleAssignments = listSecurableObject.get_roleAssignments();
            clientContext.load(listRoleAssignments);
            clientContext.executeQueryAsync(Function.createDelegate(this, this.getListPerms_onQuerySucceeded),Function.createDelegate(this, this.getListPerms_onQueryFailed));
       }
       function getListPerms_onQuerySucceeded() {
            var listPerms="";
            listPerms += '<table border="1">';
            listPerms += '<tr>';
            listPerms += '<td align="center">ID</td>';
            listPerms += '</tr>';
            var listPermsEnumerator =  this.listRoleAssignments.getEnumerator();
            while (listPermsEnumerator.moveNext()) {
                var rAssignment = listPermsEnumerator.get_current();
                listPerms += '<tr>';
                listPerms += '<td align="center">' + rAssignment.get_member() +  '</td>';
                listPerms += '</tr>';
            }
            listPerms += '</table>';
            document.getElementById('listPermsTable').innerHTML = listPerms;
       }
       function getListPerms_onQueryFailed(sender, args) {
           alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
       }

推荐答案

尝试更改您的 clientContext.load() 函数调用,如下所示:

Try changing your clientContext.load() function call as follows:

clientContext.load(listSecurableObject, 'Include(RoleAssignments, RoleAssignments.Include(Member))');

现在在 getListPerms_onSucceeded() 方法中,您应该能够通过 listSecurableObject.get_roleAssignments() 进行枚举并获得类似于您已经在这样做的成员(尽管您可能想要使用 rAssignment.get_member().get_loginName() ).

Now in the getListPerms_onSucceeded() method you ought to be able to enumerate through listSecurableObject.get_roleAssignments() and get the members similar to how you're already doing it (although you'll probably want to use rAssignment.get_member().get_loginName() ).

这篇关于使用 javascript(ecmascript) 获取列表的用户/组权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆