1

我正在开发一个重用以前解决方案中的一些代码的应用程序。

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

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 列表对象中删除

有什么新方法可以做到这一点?

4

1 回答 1

1

检查权限的新方法是:

List.EffectiveBasePermissions.Has(PermissionKind.Open)

于 2013-01-01T06:46:28.863 回答