diff options
| author | Michael <[email protected]> | 2017-03-26 12:21:39 -0400 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-03-26 12:21:39 -0400 |
| commit | f8808ebe131b34da4013b407fe58f235b6a439aa (patch) | |
| tree | 3f245a4d68432355321d7da0058f05bee3fb77c7 | |
| parent | ec06cd1752682bb74490e73257bc49751b61ec2b (diff) | |
| download | project-unite-f8808ebe131b34da4013b407fe58f235b6a439aa.tar.gz project-unite-f8808ebe131b34da4013b407fe58f235b6a439aa.tar.bz2 project-unite-f8808ebe131b34da4013b407fe58f235b6a439aa.zip | |
Ability to add user to role
| -rw-r--r-- | Project-Unite/Controllers/AdminController.cs | 35 | ||||
| -rw-r--r-- | Project-Unite/Models/AddUserToRoleViewModel.cs | 4 | ||||
| -rw-r--r-- | Project-Unite/Views/Admin/AddUserToRole.cshtml | 4 | ||||
| -rw-r--r-- | Project-Unite/Views/Admin/RoleDetails.cshtml | 4 |
4 files changed, 42 insertions, 5 deletions
diff --git a/Project-Unite/Controllers/AdminController.cs b/Project-Unite/Controllers/AdminController.cs index afb75d3..4453ed3 100644 --- a/Project-Unite/Controllers/AdminController.cs +++ b/Project-Unite/Controllers/AdminController.cs @@ -548,21 +548,50 @@ This user has been anonymized by an administrator."; } // GET: Admin/AddUserToRole - public ActionResult AddUserToRole() + public ActionResult AddUserToRole(string id = "") { ViewBag.Admin = true; + var model = new AddUserToRoleViewModel(); + + if (id == "") + id = "user"; + model.RoleId = id; + model.Users = new List<SelectListItem>(); + foreach (var u in db.Users.ToArray()) + { + var user = u as ApplicationUser; + model.Users.Add(new SelectListItem + { + Value = user.Id, + Text = user.DisplayName + }); + } + + + model.Roles = new List<SelectListItem>(); + foreach(var role in db.Roles.ToArray()) + { + var r = role as Role; + model.Roles.Add(new SelectListItem + { + Value = r.Id, + Text = r.Name + }); + } + return View(new AddUserToRoleViewModel()); } // POST: Admin/AddUserToRole [HttpPost] + [ValidateAntiForgeryToken] public async Task<ActionResult> AddUserToRole(AddUserToRoleViewModel model) { - var r = db.Roles.FirstOrDefault(role => role.Name == model.RoleId); + var r = db.Roles.FirstOrDefault(role => role.Id == model.RoleId); var user = db.Users.FirstOrDefault(u => u.DisplayName == model.Username); var uMan = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); - var isInRole = await uMan.IsInRoleAsync(user.Id, r.Id); + var isInRole = await uMan.IsInRoleAsync(user.Id, r.Name); if(isInRole) { diff --git a/Project-Unite/Models/AddUserToRoleViewModel.cs b/Project-Unite/Models/AddUserToRoleViewModel.cs index 4cd37ec..e16da31 100644 --- a/Project-Unite/Models/AddUserToRoleViewModel.cs +++ b/Project-Unite/Models/AddUserToRoleViewModel.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Web; +using System.Web.Mvc; namespace Project_Unite.Models { @@ -13,5 +14,8 @@ namespace Project_Unite.Models [DisplayName("Role")] public string RoleId { get; set; } + + public List<SelectListItem> Roles { get; set; } + public List<SelectListItem> Users { get; set; } } }
\ No newline at end of file diff --git a/Project-Unite/Views/Admin/AddUserToRole.cshtml b/Project-Unite/Views/Admin/AddUserToRole.cshtml index 386507c..d91124a 100644 --- a/Project-Unite/Views/Admin/AddUserToRole.cshtml +++ b/Project-Unite/Views/Admin/AddUserToRole.cshtml @@ -11,11 +11,11 @@ <table class="table-condensed"> <tr> <td>@Html.DisplayNameFor(model => model.Username)</td> - <td>@Html.TextBoxFor(model => model.Username)</td> + <td>@Html.DropdownListFor(model => model.Username, Model.Users, new { @class = "form-control" })</td> </tr> <tr> <td>@Html.DisplayNameFor(model => model.RoleId)</td> - <td>@Html.TextBoxFor(model => model.RoleId)</td> + <td>@Html.DropDownListFor(model => model.RoleId, Model.Roles, new { @class = "form-control" })</td> </tr> </table> diff --git a/Project-Unite/Views/Admin/RoleDetails.cshtml b/Project-Unite/Views/Admin/RoleDetails.cshtml index 25b4146..404e0a0 100644 --- a/Project-Unite/Views/Admin/RoleDetails.cshtml +++ b/Project-Unite/Views/Admin/RoleDetails.cshtml @@ -20,6 +20,10 @@ <p>Below is a list of users in this role.</p> +<ul class="nav nav-pills"> + <li><a href="@Url.Action("AddUserToRole", new { id = Model.Id })"><span class="glyphicon glyphicon-plus"></span> Add user to role</a></li> +</ul> + <table class="table"> <tr> <th style="width:65%">User</th> |
