1

以前のソリューションのコードを再利用するアプリに取り組んでいます。

ユーザーがデータを集約できるように、サイト コレクション内のすべての Web で特定の種類のリストをすべてユーザーに表示するという考え方です。

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 List オブジェクトから削除されたため

これを行う新しい方法は何ですか?

4

1 に答える 1

1

アクセス許可を確認する新しい方法は次のとおりです。

List.EffectiveBasePermissions.Has(PermissionKind.Open)

于 2013-01-01T06:46:28.863 に答える