Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/PersonaController.cs @ 179:1deccd6c3cb2
Aplicando seguridad x roles en sitio web
author | nelopauselli |
---|---|
date | Mon, 08 Aug 2011 15:24:26 -0300 |
parents | f17252543cbf |
children | 222362c29416 |
rev | line source |
---|---|
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
1 using System; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
2 using System.Linq; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
3 using System.Web.Mvc; |
179 | 4 using AltNetHispano.Agendas.Domain; |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
5 using AltNetHispano.Agendas.Factories; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
6 using AltNetHispano.Agendas.Web.Models; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
7 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
8 namespace AltNetHispano.Agendas.Web.Controllers |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
9 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
10 public class PersonaController : Controller |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
11 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
12 public ActionResult Index() |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
13 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
14 var personas = AgendaFactory.GetPersonaService(); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
15 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
16 var model = new PersonaIndexModel {Items = from p in personas.GetAll() select new PersonaDto{Id=p.Id, Nombre = p.Nombre}}; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
17 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
18 return View(model); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
19 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
20 |
179 | 21 [CustomAuthorize(Roles = Roles.Administrador)] |
22 public ActionResult Nueva() | |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
23 { |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
24 var model = new PersonaNewModel(); |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
25 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
26 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
27 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
28 [HttpPost] |
179 | 29 [CustomAuthorize(Roles = Roles.Administrador)] |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
30 public ActionResult Nueva(PersonaNewModel model) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
31 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
32 if (ModelState.IsValid) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
33 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
34 var personas = AgendaFactory.GetPersonaService(); |
157
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
35 var r = personas.Add(model.Nombre, model.Twitter, model.EMail,model.Blog); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
36 if (r.Succeful) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
37 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
38 this.AddNotification("Los datos fueron guardados"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
39 return RedirectToAction("Index"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
40 } |
157
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
41 this.AddError(r.Message); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
42 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
43 |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
44 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
45 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
46 |
179 | 47 [CustomAuthorize(Roles = Roles.Administrador)] |
48 public ActionResult Modificar(string id) | |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
49 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
50 var personas = AgendaFactory.GetPersonaService(); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
51 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
52 var persona = personas.GetById(new Guid(id)); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
53 if (persona==null) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
54 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
55 this.AddError("No se encontró la persona que intenta modificar"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
56 return RedirectToAction("Index"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
57 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
58 |
157
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
59 var model = new PersonaEditModel |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
60 { |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
61 Id = persona.Id.ToString(), |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
62 Nombre = persona.Nombre, |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
63 Twitter = persona.Twitter, |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
64 EMail = persona.Mail, |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
65 Blog = persona.Blog |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
66 }; |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
67 |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
68 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
69 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
70 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
71 [HttpPost] |
179 | 72 [CustomAuthorize(Roles = Roles.Administrador)] |
73 public ActionResult Modificar(PersonaEditModel model) | |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
74 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
75 if (ModelState.IsValid) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
76 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
77 var personas = AgendaFactory.GetPersonaService(); |
157
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
78 var r = personas.Update(new Guid(model.Id), model.Nombre, model.Twitter, model.EMail, model.Blog); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
79 if (r.Succeful) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
80 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
81 this.AddNotification("Los datos fueron guardados"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
82 return RedirectToAction("Index"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
83 } |
157
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
84 this.AddError(r.Message); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
85 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
86 |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
87 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
88 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
89 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
90 } |