Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs @ 178:33e57fd1a6c9
Roles: en dominio y autoregistración
author | nelopauselli |
---|---|
date | Mon, 08 Aug 2011 12:30:37 -0300 |
parents | f17252543cbf |
children | 222362c29416 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Mon Aug 08 10:22:22 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Mon Aug 08 12:30:37 2011 -0300 @@ -31,11 +31,26 @@ if (identityProvider == IdentityProviderEnum.Twitter) persona.Twitter = username; + SetDefaultGroups(persona); + _personaRepository.Save(persona); } return true; } + private static void SetDefaultGroups(Persona persona) + { + persona.Roles.Add(Roles.Usuario); + +#if DEBUG + var administradores = new[] {"nelopauselli", "alabras", "jjmoa", "jrowies"}; +#else + var administradores = new[] {"alabras", "jrowies", "jorgegamba"}; +#endif + if (administradores.Contains(persona.Twitter)) + persona.Roles.Add(Roles.Administrador); + } + public void AddCuenta(IdentityProviderEnum identityProvider, string username) { var persona = IdentityContext.GetUsuario(); @@ -66,7 +81,13 @@ public Resultado Add(string nombre, string twitter, string mail, string blog) { var persona = new Persona(nombre) {Twitter = twitter, Mail = mail, Blog = blog}; - _personaRepository.Save(persona); + + if (!string.IsNullOrWhiteSpace(twitter)) + persona.AddCuenta(new Cuenta(IdentityProviderEnum.Twitter, twitter)); + + SetDefaultGroups(persona); + + _personaRepository.Save(persona); return new Resultado(true); }