替换SP2013中List对象的DoesUserHavePermissions

时间:2013-01-01 00:00:36

标签: sharepoint

我正在开发一款可以重用以前解决方案中某些代码的应用。

这个想法是向用户显示网站集中所有网站中某种类型的所有列表,以便用户可以聚合一些数据。

static public List<SPListMeta> AllSiteAnnouncementsLists(ClientContext clientContext)
{
    var returnList = new List<SPListMeta>();
    var per = new BasePermissions();
    per.Set(PermissionKind.Open);
    if (clientContext.Site.RootWeb.DoesUserHavePermissions(per).Value)
    {
        var rootWebLists = clientContext.Site.RootWeb.Lists;

        returnList.AddRange(from List oList in rootWebLists
                            where oList.DoesUserHavePermissions(SPBasePermissions.ViewListItems) &&
                            where oList.BaseTemplate == (int)ListTemplateType.Announcements
                            select new SPListMeta(oList));
        var collWebs =
            clientContext.Site.OpenWebById(clientContext.Site.RootWeb.Id).GetSubwebsForCurrentUser(null);
        foreach(Web oWeb in collWebs)
        {

        }
    }
    return returnList;
}

不起作用且似乎没有替代品的关键线是

oList.DoesUserHavePermissions(SPBasePermissions.ViewListItems)

因为已从CSOM列表对象中删除

这样做的新方法是什么?

1 个答案:

答案 0 :(得分:1)

检查权限的新方法是:

List.EffectiveBasePermissions.Has(PermissionKind.Open)