Come posso inviare notifiche del flusso di lavoro a tutti gli utenti in un ruolo Sitecore? Ad esempio, il passaggio successivo nel flusso di lavoro è l'approvazione o il rifiuto da parte del reparto legale. Come posso fare in modo che Sitecore invii e-mail a tutti gli utenti nel ruolo di Responsabile dell'approvazione legale? Sto cercando di evitare di mantenere una lista di distribuzione e vorrei prendere gli indirizzi email degli utenti in modo dinamico.Invio di e-mail a tutti gli utenti in un ruolo specifico dal flusso di lavoro Sitecore
5
A
risposta
8
La sicurezza di Sitecore si basa sul modello di sicurezza ASP.NET. Quindi, è possibile utilizzare API ASP.NET standard per ottenere gli utenti di un certo ruolo:
var users = System.Web.Security.Roles.GetUsersInRole("yourdomain\yourrole");
E più tardi scorrere l'utenti trovati e leggere la proprietà e-mail:
foreach (var user in users)
{
var membershipUser = System.Web.Security.Membership.GetUser(user);
var email = membershipUser.Email;
// use this email to send the message to that user
}
potrei sbagliarmi in dettagli sulla sintassi, ma sono sicuro che puoi capirlo conoscendo l'idea generale.
3
Per risolvere l'appartenenza indiretta è possibile utilizzare lo Sitecore.Security.Accounts.RolesInRolesManager
che restituisce anche gli account utente che sono parte indiretta del ruolo specificato.
RolesInRolesManager.GetUsersInRole(Role.FromName(roleName), true)
Questi utenti sono in ruoli Sitecore. Come ottengo gli utenti nei ruoli Sitecore? Ho modificato la domanda. –
Hm, sembra che non l'abbia chiarito e la tua domanda non la menziona esplicitamente: quale versione di Sitecore stai usando? –
Voglio dire, le versioni precedenti alla 6.0 avevano il proprio sistema di sicurezza e le relative API. Quindi, se stai usando 5.X, l'esempio sopra non funzionerà per te ... Altrimenti, dovrebbe funzionare come avviene per i ruoli e gli utenti di Sitecore tramite l'API di sicurezza ASP.NET standard –