0

MOSSでカレンダーを一元化するために採用しているアプローチに懸念があります。シナリオでは、エンタープライズ用のカレンダーが1つあり、イベントはオーディエンスターゲティングによってフィルタリングされます。カレンダーでオーディエンスターゲティングをオンにするのはかなり簡単です。クライアントがそのイベントにターゲットオーディエンスのデフォルト値を自動入力したい場合に懸念が生じます。

たとえば、店長がイベントを投稿する場合、ターゲットオーディエンスは店舗のみになります。同様に、地区マネージャーがイベントを投稿する場合、それは自分の地区の店舗にのみ適用されます。アイデアは、ADまたは必要に応じてグローバルオーディエンスからデフォルトグループをプルし、イベントの作成者に基づいてターゲットオーディエンスを「デフォルト」にすることです。

これを実現するには、AudienceManagerクラスとイベントハンドラーを使用する必要があると思います。

JQueryを介してターゲットオーディエンスをADグループに設定できますか?グループに移動して取得するには、ItemAddingなどのイベントハンドラーをオーバーライドする必要がありますか?

これは、カレンダーイベントでターゲットオーディエンスを利用する場合にかなり一般的な要求のようですが、例を見つけるためにかなりの時間を費やし、不足しています。

4

1 に答える 1

0

私の推測では、実際にItemEventReceiverを使用して、ItemAddingイベントとItemUpdatingイベントをオーバーライドし(アイテムが編集された場合)、どちらも同じメソッドSetAudienceを呼び出します。このメソッドでは、SPCOntext.Current.Web.CurrentUserに基づいてオーディエンスを設定します。そして彼が所属するグループ、またはおそらくあなたが作成するいくつかのカスタム許可レベル

不完全なコード:

protected override ItemAdding(properties)
{
  SetAudience(properties.ListItem)
}

protected override ItemUpdating(properties)
{
  SetAudience(properties.ListItem)
}

private void SetAudience(SPListItem item)
{
  // get current user's groups
  // check if user is a member of store managers / district managers group
  // get all audiences below this user (i.e. all stores in district or single store
  // add relevant audiences to item
}

}

于 2009-08-14T22:52:51.877 に答える