diff --git a/Helios/Controllers/LoginController.cs b/Helios/Controllers/LoginController.cs index a7f79babbcca79f2c2d4920300b4e1ff74941932..c743abb6c3efc5c8eda71fce372672d9381aee1e 100644 --- a/Helios/Controllers/LoginController.cs +++ b/Helios/Controllers/LoginController.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Helios.Source; -using Microsoft.AspNetCore.Http; +using Helios.Models; +using Helios.Source; using Microsoft.AspNetCore.Mvc; namespace Helios.Controllers @@ -17,18 +13,35 @@ namespace Helios.Controllers _loginService = service; } - public IActionResult UserLogin(string emailAddress, string password) + public ActionResult Index() { - Login login = _loginService.GetLogin(emailAddress, password); + Login login = new Login(); - if (login.IsValidUser) + return View(login); + } + + public ActionResult Login(Login userLogin) + { + var userAccount = _loginService.GetLogin(userLogin.EmailAddress, userLogin.Password); + + if (userAccount.IsAdmin) { - return View(); + return RedirectToAction("Admin"); } else { - return View(); + return RedirectToAction("User"); } } + + public ActionResult User() + { + return View(); + } + + public ActionResult Admin() + { + return View(); + } } } \ No newline at end of file diff --git a/Helios/Helios.csproj b/Helios/Helios.csproj index 9ac6a6603ec6c13eed653231c619281da2a19be8..fc9d27436ca1afc4e77c5d53f73a0b8fe23f2f93 100644 --- a/Helios/Helios.csproj +++ b/Helios/Helios.csproj @@ -11,9 +11,11 @@ <None Remove="Npgsql" /> <None Remove="Microsoft.VisualStudio.Web.CodeGeneration.Design" /> <None Remove="Swashbuckle.AspNetCore" /> + <None Remove="Views\Login\" /> </ItemGroup> <ItemGroup> <Folder Include="Source\" /> + <Folder Include="Views\Login\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Npgsql" Version="6.0.4" /> diff --git a/Helios/Models/Login.cs b/Helios/Models/Login.cs new file mode 100644 index 0000000000000000000000000000000000000000..f55038f5b6853401e29501076ead4be2dcf964b6 --- /dev/null +++ b/Helios/Models/Login.cs @@ -0,0 +1,20 @@ +using System; +using System.ComponentModel; + +namespace Helios.Models +{ + public class Login + { + [DisplayName("Email Address")] + public string EmailAddress { get; set; } + + [DisplayName("Password")] + public string Password { get; set; } + + public bool IsValidUser { get; set; } + public bool IsAdmin { get; set; } + + public Login(){ } + } +} + diff --git a/Helios/Source/Login.cs b/Helios/Source/Login.cs deleted file mode 100644 index 1a4531fb393f3b6e31e5dd1878392ffa511b92ff..0000000000000000000000000000000000000000 --- a/Helios/Source/Login.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -namespace Helios.Source -{ - public class Login - { - public string EmailAddress { get; set; } - public bool IsValidUser { get; set; } - public bool IsAdmin { get; set; } - - public Login(string emailAddress) - { - EmailAddress = emailAddress; - } - } -} - diff --git a/Helios/Source/LoginService.cs b/Helios/Source/LoginService.cs index c07b5c696e49a20c90d74f070e4f36d072853494..84ccbc32dfd59733ba9bfb97159bf6940a98554d 100644 --- a/Helios/Source/LoginService.cs +++ b/Helios/Source/LoginService.cs @@ -1,5 +1,6 @@ using System; using Npgsql; +using Helios.Models; namespace Helios.Source { @@ -18,8 +19,9 @@ namespace Helios.Source { this.password = password; - Login userLogin = new Login(email); + Login userLogin = new Login(); + userLogin.EmailAddress = email; userLogin = GetUserDetails(userLogin); return userLogin; diff --git a/Helios/Views/Login/Admin.cshtml b/Helios/Views/Login/Admin.cshtml new file mode 100644 index 0000000000000000000000000000000000000000..b8fba06befc2c524501547db6b2aae38208baebe --- /dev/null +++ b/Helios/Views/Login/Admin.cshtml @@ -0,0 +1,8 @@ + + +@{ + ViewData["Title"] = "Admin Page"; +} + + +<h1>Hello admin, welcome to the admin page!</h1> \ No newline at end of file diff --git a/Helios/Views/Login/Index.cshtml b/Helios/Views/Login/Index.cshtml new file mode 100644 index 0000000000000000000000000000000000000000..4e26b1ec6fc440897a6688c96457aed7fc04c917 --- /dev/null +++ b/Helios/Views/Login/Index.cshtml @@ -0,0 +1,38 @@ +@model Helios.Models.Login + +@{ + ViewData["Title"] = "Home Page"; +} + +@using (Html.BeginForm(actionName: "Login", controllerName: "Login", Model)) +{ + <div class="form-horizontal"> + + <div class="form-group"> + <div class="row"> + <div class="col-md-12"> + <h5>Log into you account</h5> + + </div> + </div> + <div class="row"> + <div class="col-md-4"> + @Html.LabelFor(model => model.EmailAddress, htmlAttributes: new { @class = "control-label col-md-6 ", @style = "font-weight: bold" }) + @Html.EditorFor(model => model.EmailAddress, new { htmlAttributes = new { @class = "form-control" } }) + </div> + </div> + <div class="row"> + <div class="col-md-4"> + @Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label col-md-6 ", @style = "font-weight: bold" }) + @Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control", @type = "password" } }) + </div> + </div> + </div> + + <div class="form-group" style="margin-top: 40px"> + <div> + <button type="submit" value="Save" class="btn btn-primary">Login</button> + </div> + </div> + </div> +} \ No newline at end of file diff --git a/Helios/Views/Login/User.cshtml b/Helios/Views/Login/User.cshtml new file mode 100644 index 0000000000000000000000000000000000000000..3f56d89184537540dea330fcdd9e106eeade0d4a --- /dev/null +++ b/Helios/Views/Login/User.cshtml @@ -0,0 +1,7 @@ + +@{ + ViewData["Title"] = "User Page"; +} + + +<h1>Hello user, welcome to the user page!</h1> \ No newline at end of file diff --git a/Helios/Views/Shared/_Layout.cshtml b/Helios/Views/Shared/_Layout.cshtml index 6924f3d6c4085f9bf1bd5b176281bed1e84db86c..7727b3cff896d43c1293dbb02e070d625c384c3b 100644 --- a/Helios/Views/Shared/_Layout.cshtml +++ b/Helios/Views/Shared/_Layout.cshtml @@ -38,7 +38,7 @@ <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Events">Events</a> </li> <li class="nav-item"> - <a class="nav-link text-dark" asp-area="" asp-controller="Login" asp-action="Login">Login</a> + <a class="nav-link text-dark" asp-area="" asp-controller="Login" asp-action="Index">Login</a> </li> </ul> </div>