From dbce55459fae3568c3cd69562b5fe37bc7493d1c Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 11 May 2017 10:14:48 -0400 Subject: Jesus. *looks at the atmosphere with major thoights of the mess he has created* --- Project-Unite/ACL.cs | 2 +- Project-Unite/Controllers/ModeratorController.cs | 12 ++--- Project-Unite/Global.asax.cs | 60 ++++++++++++------------ Project-Unite/Views/Admin/Index.cshtml | 6 +-- Project-Unite/Views/Moderator/UserDetails.cshtml | 44 ++++++++++++----- Project-Unite/Views/Shared/_Layout.cshtml | 60 ++++++++++++------------ 6 files changed, 99 insertions(+), 85 deletions(-) diff --git a/Project-Unite/ACL.cs b/Project-Unite/ACL.cs index c0567d9..5155573 100644 --- a/Project-Unite/ACL.cs +++ b/Project-Unite/ACL.cs @@ -169,7 +169,7 @@ namespace Project_Unite userRoles.Add(db.Roles.FirstOrDefault(r => r.Id == usrRole.RoleId) as Role); } var userRole = userRoles.OrderByDescending(m => m.Priority).FirstOrDefault(); - return hpr.ActionLink(usr.DisplayName, "ViewProfile", "Profiles", new { id = usr.DisplayName }, new { style = userRole == null ? "color:white;" : @"color: " + userRole.ColorHex }); + return hpr.ActionLink(usr.DisplayName, "ViewProfile", "Profiles", new { id = usr.DisplayName }, new { id="uname_" + usr.Id, style = userRole == null ? "color:white;" : @"color: " + userRole.ColorHex }); } } diff --git a/Project-Unite/Controllers/ModeratorController.cs b/Project-Unite/Controllers/ModeratorController.cs index 99ef8b7..04e40de 100644 --- a/Project-Unite/Controllers/ModeratorController.cs +++ b/Project-Unite/Controllers/ModeratorController.cs @@ -104,24 +104,18 @@ namespace Project_Unite.Controllers return Redirect(returnUrl); } - [HttpPost] - [ValidateAntiForgeryToken] - public ActionResult ChangeUserName(string id, ApplicationUser model, string returnUrl = "") + public ActionResult ChangeUserName(string id, string newName) { var db = new ApplicationDbContext(); var usr = db.Users.FirstOrDefault(x => x.Id == id); if (usr == null) return new HttpStatusCodeResult(404); - usr.DisplayName = model.DisplayName; + usr.DisplayName = newName; db.SaveChanges(); - if (string.IsNullOrWhiteSpace(returnUrl)) - return RedirectToAction("Users"); - else - return Redirect(returnUrl); - + return new HttpStatusCodeResult(200); } public ActionResult Lock(string id) diff --git a/Project-Unite/Global.asax.cs b/Project-Unite/Global.asax.cs index 41208ad..79df7eb 100644 --- a/Project-Unite/Global.asax.cs +++ b/Project-Unite/Global.asax.cs @@ -37,6 +37,23 @@ namespace Project_Unite migrator.Update(); + + var addr = HttpContext.Current.Request.UserHostAddress; + var db = new ApplicationDbContext(); + var ip = db.BannedIPs.FirstOrDefault(i => i.Address == addr); + if (ip != null) + { + //The user is banned. Anally rape their ability to get on here. + this.Response.StatusCode = 403; + this.CompleteRequest(); + return; + } + + + } + + protected void Application_EndRequest(object s, EventArgs e) + { string raw_url = Request.Url.ToString().Replace("//", "\\\\"); string[] split = raw_url.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries); @@ -44,7 +61,7 @@ namespace Project_Unite string actionname = "Index"; string controllername = "Home"; - if(split.Length > 1) + if (split.Length > 1) { controllername = split[1]; if (split.Length == 3) @@ -57,14 +74,14 @@ namespace Project_Unite var mod = ctl.GetCustomAttributes(false).FirstOrDefault(x => x is RequiresModerator); var dev = ctl.GetCustomAttributes(false).FirstOrDefault(x => x is RequiresDeveloper); - bool fail = false; + bool? fail = false; if (adm != null) - fail = (bool)!User.Identity?.IsAdmin(); + fail = !User?.Identity?.IsAdmin(); if (mod != null) - fail = (bool)!User.Identity?.IsModerator(); + fail = !User?.Identity?.IsModerator(); if (dev != null) - fail = (bool)!User.Identity?.IsDeveloper(); + fail = !User?.Identity?.IsDeveloper(); var act = ctl.GetMethods(BindingFlags.Public | BindingFlags.Instance).FirstOrDefault(x => x.Name == actionname); @@ -75,38 +92,23 @@ namespace Project_Unite bool? fail2 = true; if (adm != null) - fail2 = User.Identity?.IsAdmin(); - if (mod != null) - fail2 = User.Identity?.IsModerator(); + fail2 = User?.Identity?.IsAdmin(); + if (mod != null) + fail2 = User?.Identity?.IsModerator(); if (dev != null) - fail2 = User.Identity?.IsDeveloper(); + fail2 = User?.Identity?.IsDeveloper(); - if (fail2 != null) - fail = fail || !(bool)fail2; + bool realfail = (fail == null) ? true : (bool)fail; + bool realfail2 = (fail2 == null) ? true : (bool)fail2; - if (fail == true) + realfail = realfail || !realfail2; + + if (realfail == true) { string url = "http://" + this.Request.Url.Host.Replace("http://", "").Replace("https://", "") + "/Home/AccessDenied"; Response.Redirect(url, true); return; } - - var addr = HttpContext.Current.Request.UserHostAddress; - var db = new ApplicationDbContext(); - var ip = db.BannedIPs.FirstOrDefault(i => i.Address == addr); - if (ip != null) - { - //The user is banned. Anally rape their ability to get on here. - this.Response.StatusCode = 403; - this.CompleteRequest(); - return; - } - - - } - - protected void Application_EndRequest(object s, EventArgs e) - { var db = new ApplicationDbContext(); if (Request.IsAuthenticated) { diff --git a/Project-Unite/Views/Admin/Index.cshtml b/Project-Unite/Views/Admin/Index.cshtml index 552f80c..4839e31 100644 --- a/Project-Unite/Views/Admin/Index.cshtml +++ b/Project-Unite/Views/Admin/Index.cshtml @@ -209,7 +209,7 @@ git clone https://github.com/MichaelTheShifter/Project-Unite @foreach (var user in db.Users.ToArray()) { -