ようこそ SharePoint Fan へ ログイン | 登録 | ヘルプ

SharePoint Developer

SharePointのカスタマイズねたを中心としたブログです。

タグ

過去の投稿

SharePointのお勧め

SharePointフォーラム

開発者向け

最新のコメント

購読



MCPD | Enterprise Application Developer

MCTS | SQL Server 2005

MCSD

にほんブログ村 IT技術ブログへ

ブロ電™切符

カスタムアクションを特定の権限を持つユーザーにだけ表示する方法
カスタムアクションを使うと、SharePointに様々な機能を組み込むことができるようになりとても便利ですが、機能によっては特定の権限を持つユーザーにだけ使わせたいといったことが出てくると思います。

そんな場合にどうすればよいのか、調べてみました。

カスタムアクションの定義で、カスタムアクションの使用を許可する権限をRights属性に指定します。
例えば、アイテムの追加権限を持っている場合だけカスタムアクションを使用できるようにするには、以下のような定義を書きます。

<CustomAction
  Id="OriversCustomActionDisplayFormToolbar"
  Location="DisplayFormToolbar"
  Sequence="1"
  RegistrationType="List"
  RegistrationId="104"
  Rights="AddListItems"
  Title="表示フォームのツール バー" >
  <UrlAction
    Url="_layouts/oriverscustomaction.aspx"/>
</CustomAction>

このカスタムアクションをサイトに登録して動作を確認してみます。

まずはアイテムの追加権限を持っているユーザーの場合・・・
「表示フォームのツール バー」がツールバーに表示されました。


次にアイテムの追加権限を持っていないユーザーの場合・・・
「表示フォームのツールバー」がツールバーに表示されません。


ということで、期待どおりの動作をしてくれました。

Rights属性に指定できる値については、SDKに細かく説明があるのでそちらを参照してください。
http://msdn2.microsoft.com/ja-jp/library/microsoft.sharepoint.spbasepermissions.aspx


では次に、サイト管理者だけにカスタムアクションの使用を許可する時の方法です。
この場合は先ほどのRights属性を使わずに、RequireSiteAdministrator属性を使います。
以下に例を示します。

<CustomAction
  Id="OriversCustomActionDisplayFormToolbar"
  Location="DisplayFormToolbar"
  Sequence="1"
  RegistrationType="List"
  RegistrationId="104"
  RequireSiteAdministrator="true"
  Title="表示フォームのツール バー" >
  <UrlAction
    Url="_layouts/oriverscustomaction.aspx"/>
</CustomAction>

RequireSiteAdministrator属性に「true」を指定します。
ちなみにデフォルト値は「false」です。なので、RequireSiteAdministrator属性を指定しない場合にはサイト管理者以外の人にもカスタムアクションが表示されるわけです。


最後に、Rights属性とRequireSiteAdministrator属性の両方が指定されていた場合にどうなるか調べてみました。
定義は以下のようになります。

<CustomAction
  Id="OriversCustomActionDisplayFormToolbar"
  Location="DisplayFormToolbar"
  Sequence="1"
  RegistrationType="List"
  RegistrationId="104"
  Rights="AddListItems"
  RequireSiteAdministrator="true"

  Title="表示フォームのツール バー" >
  <UrlAction
    Url="_layouts/oriverscustomaction.aspx"/>
</CustomAction>

結果は、サイト管理者でないとカスタムアクションが表示されませんでした。
RequireSiteAdministrator属性のほうが強いわけですね。

手軽に権限の制御もできるし、カスタムアクションはかなり使えそうですねー。

公開 2007年8月26日 1:40 投稿者 おりば~ず

タグ :

コメント

# re: カスタムアクションを特定の権限を持つユーザーにだけ表示する方法 @ 2007年8月28日 10:45

そうそう、Rights・・・

思いっきり勘違いしてました。

charcoal

# re: カスタムアクションを特定の権限を持つユーザーにだけ表示する方法 @ 2007年8月30日 0:57

いやー、思ったとおりに動いてよかったです。

どうなることかとドキドキしちゃいました(^^ゞ

おりば~ず

匿名のコメントは無効です