2011-01-19 50 views
1

私は現在プライベートディスカッション掲示板を表示するための共有ポイントwebpartを開発中です。議論は、制限されたユーザーだけが見ることができます。今のところ許可されているユーザーは次のとおりです。サイトコレクション所有者、ディスカッションボードメンバー、ディスカッションボードオーナー。Sharepointディスカッション掲示板、webpartに設定とルールを複製する

Webパーツのセキュリティは、すべてのユーザーを取得し、それらがディスカッションボードで言っ可能者に属しているかどうかを確認することです、私のセットアップ方法。

私のロジックは今働いているようですが、クライアントの心配は次のとおりです。 将来的にディスカッションボードの設定やセキュリティが変更され、ウェブパーツの設定とセキュリティがディスカッションボードと同期するように、ウェブパーツの設定を変更できますか? 今のように私の考えではなく、設定やディスカッションボードのセキュリティをコピーして、Webパーツに適用するコードを開発し、私はディスカッションボードに右直接Webパーツの設定およびセキュリティを指します、です。私の質問は今ですが、これは可能でしょうか?

私は何が起こったのかをよりよく理解するために添付の写真をご覧ください。

First Image

Second Image

答えて

0

を持っていない場合こんにちは、私は問題を修正しました!

この言葉はもの "DoesUserHavePermissions" をし...ここに私のコードスニペットは、

try 
{ 
    string strListUrl = "http://MySite.com/List/MyDiscussion/AllItems.aspx"; 
    SPUser objCurrentUser = SPContext.Current.Web.CurrentUser; 
    SPSite objSite = new SPSite(SPContext.Current.Web.Url); 
    SPWeb objWeb = objSite.OpenWeb(); 
    SPList objList = objWeb.Lists[strListUrl]; 

    if(!objList.DoesUserHavePermissions(objCurrentUser,SPBasePermissions.EditListItems)){ 
     throw new UnauthorizedAccessException("You are not authorized to view this discussion!"); 
    } 
} 
catch(UnauthorizedAccessException uae){ 
    /// some exception handling codes here 
} 

@djeegです:助けてくれてありがとう!あなたに1票を!彼らの役割は議論のみを表示しますが寄与しないためにそれらを可能にするのに:)

2

Webパーツは

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.checkpermissions.aspx

SPContext.List.CheckPermissions(SPBasePermissions.EditListItems); 

にあなただけのリストにアクセス許可を設定することができますこの方法をCheckPermissionsメソッドを使用する必要があります。

ユーザーが権限、いずれかの表示なし、または「あなたは何の権限を持っていません」というメッセージ

+0

SPBasePermissions.EditListItemsは、ユーザーがリストを表示することができません。私だけの議論を表示することが許可されているが、彼らが投稿する許可されていない特定のメンバーとのディスカッションボード上のグループを持っているので。 –

+0

ありがとうdjeeg!あなたの答えは厳密には解決策ではありませんでしたが、問題を解決する手がかりを与えてくれました。 :) –

関連する問題