Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs @ 180:222362c29416
UI para asignación de roles
author | nelopauselli |
---|---|
date | Mon, 08 Aug 2011 16:42:52 -0300 |
parents | 33e57fd1a6c9 |
children | 212c664db5aa |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Mon Aug 08 15:24:26 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Mon Aug 08 16:42:52 2011 -0300 @@ -40,15 +40,16 @@ 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.Usuario); persona.Roles.Add(Roles.Administrador); + } } public void AddCuenta(IdentityProviderEnum identityProvider, string username) @@ -78,7 +79,7 @@ return _personaRepository.Get(id); } - public Resultado Add(string nombre, string twitter, string mail, string blog) + public Resultado Add(string nombre, string twitter, string mail, string blog, IEnumerable<string> roles) { var persona = new Persona(nombre) {Twitter = twitter, Mail = mail, Blog = blog}; @@ -87,12 +88,21 @@ SetDefaultGroups(persona); + if (roles != null) + { + persona.Roles.Clear(); + foreach (var rol in roles) + { + persona.Roles.Add(rol); + } + } + _personaRepository.Save(persona); return new Resultado(true); } - public Resultado Update(Guid id, string nombre, string twitter, string mail, string blog) + public Resultado Update(Guid id, string nombre, string twitter, string mail, string blog, IEnumerable<string> roles) { var persona = _personaRepository.Get(id); if (persona == null) @@ -106,7 +116,16 @@ //TODO: ¿que hacemos con la cuenta de twitter asociada? - return new Resultado(true); + if (roles!=null) + { + persona.Roles.Clear(); + foreach (var rol in roles) + { + persona.Roles.Add(rol); + } + } + + return new Resultado(true); } } } \ No newline at end of file