Domanda

Ho alcuni problemi con un approccio che sto prendendo per centralizzare un calendario in MOSS. Lo scenario è che c'è 1 del calendario per l'Impresa ed eventi vengono filtrati tramite gruppi di destinatari. E 'abbastanza semplice per accendere il pubblico targeting in un calendario, la mia preoccupazione viene quando il cliente vuole auto compilare quell'evento con un valore di default in Gruppi di destinatari.

Per esempio, se un responsabile del negozio è distacco caso in cui il target di riferimento sarebbe solo il negozio, allo stesso modo se un quartiere gestore messaggi di un evento che si applicherebbe solo ai negozi nella sua / il suo distretto. L'idea è quella di tirare un gruppo di default da AD o anche il pubblico globale, se necessario, a “default” il target di riferimento in base a chi sta creando l'evento.

Sto indovinando avrei bisogno di utilizzare la classe AudienceManager e un gestore di eventi per ottenere questo compiuto.

È possibile impostare il target di riferimento tramite jQuery per un gruppo di annunci? Ho bisogno di sostituire un Gestore di eventi come ItemAdding per andare a recuperare il gruppo?

Questo mi sembra che sarebbe una richiesta abbastanza comune quando si utilizza Gruppi di destinatari con un evento del calendario, ma ho speso molto di po 'di tempo cercando di trovare esempi e sono venuto a breve.

È stato utile?

Soluzione

La mia ipotesi migliore è che si dovrebbe davvero utilizzare un ItemEventReceiver, ignorando l'evento ItemAdding e ItemUpdating (in caso l'oggetto viene modificato?), Sia chiamando lo stesso metodo SetAudience, in quel metodo si imposta il pubblico sulla base di SPCOntext.Current. Web.CurrentUser ei gruppi cui si trova, o forse qualche livello di autorizzazione personalizzato si crea

Codice incompleto:

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
}

}

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top