summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-03-26 12:21:39 -0400
committerMichael <[email protected]>2017-03-26 12:21:39 -0400
commitf8808ebe131b34da4013b407fe58f235b6a439aa (patch)
tree3f245a4d68432355321d7da0058f05bee3fb77c7
parentec06cd1752682bb74490e73257bc49751b61ec2b (diff)
downloadproject-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.cs35
-rw-r--r--Project-Unite/Models/AddUserToRoleViewModel.cs4
-rw-r--r--Project-Unite/Views/Admin/AddUserToRole.cshtml4
-rw-r--r--Project-Unite/Views/Admin/RoleDetails.cshtml4
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>