0

SharePoint でホストされるアプリにアクセス許可レベルを実装しようとしています。カスタム リスト「アクセス許可」を作成し、さまざまなユーザーとそのロールを追加しています。

カスタム リスト "Products" をリスト ビュー Web パーツとして表示するページ List.aspx を作成しました。ページ List.aspx は、ユーザーの役割を「アクセス許可」リストに対してチェックし、ページはこの役割に関してコンテンツを表示または非表示にすることができます。問題は、ユーザーが "Lists/Products/Allitems.aspx" または "Lists/Permissions/Allitems.aspx" に移動しようとすると、リスト アイテムが表示されることです。

すべてのコード チェックは JavaScript で行われ、セキュリティ リスクがあることはわかっていますが、これは私のユーザーには有効です。カスタム JavaScript コードを Allitems.aspx に挿入する方法を見つけて、ユーザーがそれを表示する権限を持っているかどうかを確認するだけです。

ここでのすべてはアプリ Web で行われ、ホスト Web で使用するものは何もありません。

4

1 に答える 1

1

これに対する回避策を見つけました。基本的に私がしたことは、リストビューを直接アクセスできないようにすることです。これを実現するには、リストのSchema.xmlを開き、「JSLink」を置き換えます。

から

<JSLink>clienttemplates.js</JSLink>

<JSLink>~site/Scripts/OverrideListView.js</JSLink>

次に、新しいファイルScripts/OverrideListView.jsを作成し、次のコードを追加します。

document.write("<style>body {display:none; };</style>");

Lists/Permissions/Allitems.aspxに直接アクセスしてみてください。空白のページが表示されます。

これは基本的に、カスタム JS コードをリスト ビューに挿入する方法です。現在のユーザーのアクセス許可をサイト レベルでチェックし、それに関してこのビューを再表示するためのコードを追加したり、適切な役割やアクセス許可を持っていない場合はユーザーをホームページにリダイレクトしたりすることもできます。

于 2014-10-31T12:08:43.290 に答える