Comment puis-je configurer un défaut Public cible sur un événement de calendrier dans Sharepoint?

StackOverflow https://stackoverflow.com/questions/1278883

Question

J'ai des problèmes avec une approche que je vais prendre pour centraliser un calendrier dans MOSS. Le scénario est qu'il ya 1 calendrier pour l'entreprise et événements sont filtrés par ciblage d'audience. Il est heureux de tourner assez simple ciblage d'audience dans un calendrier, ma préoccupation vient quand le client veut automatiquement remplir cet événement avec une valeur par défaut dans les publics cibles.

Par exemple, si un gestionnaire de magasin est l'affichage de l'événement le public cible serait que le magasin, même si un des postes de directeur de district un événement, il ne serait applicable aux magasins dans son / son quartier. L'idée est de tirer un groupe par défaut de AD ou même un public international si nécessaire, pour « défaut » le public cible en fonction de qui crée l'événement.

Je suppose que je vais avoir besoin d'utiliser la classe AudienceManager et un gestionnaire d'événements pour obtenir ce accompli.

Puis-je définir le public cible via JQuery à un groupe AD? Ai-je besoin de passer outre un gestionnaire d'événements comme ItemAdding pour aller récupérer le groupe?

Cela semble que ce serait une demande assez commun lors de l'utilisation des publics cibles avec un événement de calendrier mais j'ai passé assez de peu de temps à essayer de trouver des exemples et je suis venu court.

Était-ce utile?

La solution

Ma meilleure estimation est que vous devez bien utiliser un ItemEventReceiver, redéfinissant la ItemAdding et l'événement ItemUpdating (Incase l'élément est modifié?), À la fois appeler la même méthode SetAudience, dans cette méthode vous définissez le public sur la base SPCOntext.Current. Web.CurrentUser et les groupes dont il est, ou peut-être un certain niveau d'autorisation personnalisé vous créez

Code incomplet:

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
}

}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top