2008年1月17日 (木)

皆さんは、探し物をしていてどんどん脇道にそれていってしまうという経験はないですか? 私はしょっ中でして、今回も全く別のことを調べていて偶然見つけた SharePoint Designer 2007 の Tips です。

確か以前「エンドユーザーに対しては極力不要なメニューは非表示にしたい」ということから同様のご質問いただいたことがあったのですが、その時はこの Tips のようなスマートな回答ではなかったように思います。反省の意味を込め、ご紹介します。

サイドリンクバーに常に表示される [すべてのサイトコンテンツの表示] リンクを管理者以外に非表示にできます。

  1. SharePoint Designer 2007 を使用し、目的のサイトの default.master を開く
  2. 分割ビューまたコードビューに切り替える
  3. サイドリンクバーの" [すべてのサイトコンテンツの表示] リンク" 部分に該当する "SharePoint:SPSecurityTrimmedControl" タグを見つける

    Spsecuritytrimmedcontrol

  4. "SharePoint:SPSecurityTrimmedControl" タグ内の "PermissionString" 属性の値を "ViewFormPages" から "FullMask" に変更する
  5. default.master を保存する

以上です。FullMask はフルコントロールのアクセス許可レベルのことです。つまりサイトに対してフルコントロールを持つユーザーにだけ[すべてのサイトコンテンツの表示] リンクが表示されるようになります。

PermissionString 属性に指定できる他の値には "BrowseDirectories"などがあります。BrowseDirectories はSharePoint サイトのアクセス権限でいう "ディレクトリ参照" にあたります。このアクセス権限はサイトの「メンバ」および「所有者」グループに共通で含まれているため、これらのグループに所属するユーザーにだけ表示されるようになります。

主なSharePoint グループと割り当てられるアクセス許可レベル

  • サイトの所有者グループ→フルコントロール
  • サイトのメンバ→投稿
  • サイトの閲覧者→閲覧

設定可能な値は SPBasePermissions 列挙体です。詳細は次の URL を参照してください。
http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx

なお、この列挙体は SharePoint サイトのアクセス許可レベルの詳細な権限と見比べると理解しやすいです。

SharePoint サイトのアクセス許可レベルの詳細の確認

  1. [サイトの設定] ページを表示する
  2. [ユーザーと権限]セクションから[権限の設定(詳細)] をクリックする
  3. 任意のアクセス許可レベルをクリックする
    (※権限が表示されます。この内容とSPBasePermissions とが対応します)


参考: Medhat Elmasry さんのブログ(英語)


そういえば、今日またひとつ年をとりました。。。