diff --git a/Project-Unite/Controllers/DeveloperController.cs b/Project-Unite/Controllers/DeveloperController.cs index 62be944..9e3d6c0 100644 --- a/Project-Unite/Controllers/DeveloperController.cs +++ b/Project-Unite/Controllers/DeveloperController.cs @@ -15,18 +15,24 @@ namespace Project_Unite.Controllers // GET: Developer public ActionResult Index() { + if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP")) + return new HttpStatusCodeResult(403); ViewBag.Developer = true; return View(); } public ActionResult Releases() { + if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP")) + return new HttpStatusCodeResult(403); var db = new ApplicationDbContext(); return View(db.Downloads); } public ActionResult AddRelease() { + if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP")) + return new HttpStatusCodeResult(403); if (!ACL.Granted(User.Identity.Name, "CanReleaseBuild")) return new HttpStatusCodeResult(403); ViewBag.Developer = true; @@ -41,6 +47,8 @@ namespace Project_Unite.Controllers [ValidateAntiForgeryToken] public ActionResult AddRelease(PostDownloadViewModel model) { + if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP")) + return new HttpStatusCodeResult(403); if (!ACL.Granted(User.Identity.Name, "CanReleaseBuild")) return new HttpStatusCodeResult(403); if (!ModelState.IsValid) @@ -121,6 +129,17 @@ namespace Project_Unite.Controllers return RedirectToAction("Releases"); } + + [Authorize] + public ActionResult Wiki() + { + if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP")) + return new HttpStatusCodeResult(403); + ViewBag.Developer = true; + var db = new ApplicationDbContext(); + var cats = db.WikiCategories; + return View(cats); + } } diff --git a/Project-Unite/Models/WikiModels.cs b/Project-Unite/Models/WikiModels.cs index ac6c6cb..dffed26 100644 --- a/Project-Unite/Models/WikiModels.cs +++ b/Project-Unite/Models/WikiModels.cs @@ -1,10 +1,32 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; +using System.Web.Mvc; namespace Project_Unite.Models { + public class AddWikiCategoryViewModel + { + public AddWikiCategoryViewModel() + { + + } + + public List Parents { get; set; } + + + [Required(AllowEmptyStrings = false, ErrorMessage ="Please name your category.")] + [MinLength(5, ErrorMessage ="Your category's name must be at least 5 characters long.")] + [MaxLength(25, ErrorMessage ="Your category's name must be at most 25 characters long.")] + public string Name { get; set; } + + + [Required(AllowEmptyStrings = false, ErrorMessage = "Please select a parent category.")] + public string ParentId { get; set; } + } + public class WikiCategory { public string Id { get; set; } diff --git a/Project-Unite/Project-Unite.csproj b/Project-Unite/Project-Unite.csproj index d94fc9c..33cb81c 100644 --- a/Project-Unite/Project-Unite.csproj +++ b/Project-Unite/Project-Unite.csproj @@ -543,6 +543,7 @@ + diff --git a/Project-Unite/Views/Developer/Wiki.cshtml b/Project-Unite/Views/Developer/Wiki.cshtml new file mode 100644 index 0000000..f83d9c5 --- /dev/null +++ b/Project-Unite/Views/Developer/Wiki.cshtml @@ -0,0 +1,34 @@ +@model IEnumerable +@{ + ViewBag.Title = "Wiki"; +} + +

Wiki

+ +

The ShiftOS Wiki can be used to hold everything from coding guides to character details and everything in between.

+ +

Here you can manage categories.

+ + + + + + + + + + @foreach(var wiki in Model) + { + + + + + + } +
CategoryPagesActions
@wiki.Name@wiki.Pages.Count() + Edit + Delete + +
\ No newline at end of file