diff --git a/LanAdeptAdmin/Views/User/Details.cshtml b/LanAdeptAdmin/Views/User/Details.cshtml index 41b9a23..eca7620 100644 --- a/LanAdeptAdmin/Views/User/Details.cshtml +++ b/LanAdeptAdmin/Views/User/Details.cshtml @@ -1,43 +1,58 @@ @model LanAdeptData.Model.User @{ - ViewBag.Title = "Details"; + ViewBag.Title = "Détails d'un utilisateur"; ViewBag.Sidebar = "_Sidebar_User"; } -

Details

+

+ Détails - @Model.CompleteName +
+ @Html.ActionLink("Modifier", "Edit", new { id = Model.UserID }, new { @class = "btn btn-primary" }) + @Html.ActionLink("Retour", "Index", null, new { @class = "btn btn-default" }) +
+ +

+
+ +@if (!string.IsNullOrWhiteSpace(TempData["Error"] as string)) +{ + +} +@if (!string.IsNullOrWhiteSpace(TempData["Success"] as string)) +{ + +}
-

User

-
-
-
- @Html.DisplayNameFor(model => model.Role.Name) -
- -
- @Html.DisplayFor(model => model.Role.Name) -
- -
- @Html.DisplayNameFor(model => model.Email) -
- -
- @Html.DisplayFor(model => model.Email) -
- -
- @Html.DisplayNameFor(model => model.CompleteName) -
- -
- @Html.DisplayFor(model => model.CompleteName) -
- -
+
+ +
+ Nom complet +
+ +
+ @Html.DisplayFor(model => model.CompleteName) +
+ +
+ Email +
+ +
+ @Html.DisplayFor(model => model.Email) +
+ +
+ Rôle +
+ +
+ @Html.DisplayFor(model => model.Role.Name) +
+
-

- @Html.ActionLink("Edit", "Edit", new { id = Model.UserID }) | - @Html.ActionLink("Back to List", "Index") -

diff --git a/LanAdeptAdmin/Views/User/Edit.cshtml b/LanAdeptAdmin/Views/User/Edit.cshtml index 17f5e0d..5da932c 100644 --- a/LanAdeptAdmin/Views/User/Edit.cshtml +++ b/LanAdeptAdmin/Views/User/Edit.cshtml @@ -1,11 +1,11 @@ @model LanAdeptAdmin.Views.Users.ModelController.EditModel @{ - ViewBag.Title = "Edit"; + ViewBag.Title = "Modifier un utilisateur"; ViewBag.Sidebar = "_Sidebar_User"; } -

Edit

+

Modifier un utilisateur

@using (Html.BeginForm()) { @@ -20,8 +20,7 @@
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
- @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } }) - @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" }) + @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control", @readonly="readonly" } })
diff --git a/LanAdeptAdmin/Views/User/Index.cshtml b/LanAdeptAdmin/Views/User/Index.cshtml index 4f8ff0d..c764856 100644 --- a/LanAdeptAdmin/Views/User/Index.cshtml +++ b/LanAdeptAdmin/Views/User/Index.cshtml @@ -11,6 +11,19 @@

Liste des utilisateurs


+@if (!string.IsNullOrWhiteSpace(TempData["Error"] as string)) +{ + +} +@if (!string.IsNullOrWhiteSpace(TempData["Success"] as string)) +{ + +} + diff --git a/LanAdeptAdmin/Views/User/ModelController/EditModel.cs b/LanAdeptAdmin/Views/User/ModelController/EditModel.cs index 178d4aa..e5c7ad7 100644 --- a/LanAdeptAdmin/Views/User/ModelController/EditModel.cs +++ b/LanAdeptAdmin/Views/User/ModelController/EditModel.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; @@ -18,9 +19,11 @@ public class EditModel public string Email { get; set; } [Required] + [DisplayName("Nom complet")] public string CompleteName { get; set; } [Required] + [DisplayName("Rôle")] public int RoleID { get; set; } public SelectList RoleList { get; set; } @@ -28,6 +31,7 @@ public class EditModel public EditModel() { } public EditModel(User user) { + UserID = user.UserID; Email = user.Email; CompleteName = user.CompleteName; RoleID = user.RoleID; diff --git a/LanAdeptAdmin/Views/User/ModelController/UserController.cs b/LanAdeptAdmin/Views/User/ModelController/UserController.cs index 970c10d..bd4fe54 100644 --- a/LanAdeptAdmin/Views/User/ModelController/UserController.cs +++ b/LanAdeptAdmin/Views/User/ModelController/UserController.cs @@ -15,6 +15,8 @@ namespace LanAdeptAdmin.Controllers { public class UserController : Controller { + private const string ERROR_INVALID_ID = "Désolé, une erreur est survenue. Merci de réessayer dans quelques instants"; + UnitOfWork uow = UnitOfWork.Current; [Authorize] @@ -63,18 +65,38 @@ public ActionResult Edit(int? id) [HttpPost] [Authorize] [ValidateAntiForgeryToken] - public ActionResult Edit([Bind(Include = "UserID,Email,Password,Salt,CompleteName,RoleID")] User user) + public ActionResult Edit([Bind(Include = "UserID,CompleteName,RoleID")] EditModel model) { + User user = uow.UserRepository.GetByID(model.UserID); + if (user == null) + { + TempData["Error"] = ERROR_INVALID_ID; + return RedirectToAction("Index"); + } + Role role = uow.RoleRepository.GetByID(model.RoleID); + if (role == null) + { + TempData["Error"] = ERROR_INVALID_ID; + return RedirectToAction("Details", new { id = user.UserID }); + } + if (ModelState.IsValid) { + user.CompleteName = model.CompleteName; + user.Role = role; + uow.UserRepository.Update(user); uow.Save(); - return RedirectToAction("Index"); + + TempData["Success"] = "Les changements ont bien été enregistré"; + return RedirectToAction("Details", new { id = user.UserID }); } - ViewBag.RoleID = new SelectList(uow.RoleRepository.Get(), "RoleID", "Name", user.RoleID); + + ViewBag.RoleID = new SelectList(uow.RoleRepository.Get(), "RoleID", "Name", model.RoleID); return View(user); } +#if DEBUG [Authorize] public ActionResult Delete(int? id) { @@ -101,5 +123,6 @@ public ActionResult DeleteConfirmed(int id) return RedirectToAction("Index"); } +#endif } }