我正在开发一款可以重用以前解决方案中某些代码的应用。
这个想法是向用户显示网站集中所有网站中某种类型的所有列表,以便用户可以聚合一些数据。
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列表对象中删除
这样做的新方法是什么?
答案 0 :(得分:1)
检查权限的新方法是:
List.EffectiveBasePermissions.Has(PermissionKind.Open)