diff Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 9:c90492faf268

Se implementa seguridad a través del constructor y no como parámetro Se valida autenticación al Publicar.
author juanjose.montesdeocaarbos
date Sat, 12 Feb 2011 12:22:36 -0300
parents cae27d7eb697
children 9d6b28a696d1
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Sat Feb 12 11:12:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Sat Feb 12 12:22:36 2011 -0300
@@ -27,9 +27,10 @@
 		{
 			if (!evento.Fecha.HasValue)
 				throw new ValidationException();
-			
 			if (_publicador != null)
 				_publicador.Publicar(evento);
+            if (EsAutenticado(_seguridad))
+                throw new ValidationException();
             _eventosPublicados.Add(evento);
 		}
 
@@ -50,7 +51,7 @@
 		{
 			if (string.IsNullOrWhiteSpace(van.Titulo))
 				throw new ValidationException();
-            if (_seguridad.GetPrincipal() == null || _seguridad.GetPrincipal().Identity == null)
+            if (EsAutenticado(_seguridad))
                 throw new ValidationException();
 			_eventosPropuestos.Add(van);
 		}
@@ -64,5 +65,10 @@
         {
             return _eventosPublicados;
         }
+
+        private bool EsAutenticado(ISeguridad seguridad) {
+            return seguridad != null && seguridad.GetPrincipal() != null && seguridad.GetPrincipal().Identity != null
+                && string.IsNullOrWhiteSpace(seguridad.GetPrincipal().Identity.Name);
+        }
     }
 }
\ No newline at end of file