Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions ASI.Basecode.WebApp/ASI.Basecode.WebApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,40 @@
<UserSecretsId>872bac6a-ed64-4226-a559-064bd37b166e</UserSecretsId>
</PropertyGroup>

<ItemGroup>
<Compile Remove="Views\NewFolder1\**" />
<Compile Remove="Views\NewFolder\**" />
<Compile Remove="Views\Shared\NewFolder\**" />
<Content Remove="Views\NewFolder1\**" />
<Content Remove="Views\NewFolder\**" />
<Content Remove="Views\Shared\NewFolder\**" />
<EmbeddedResource Remove="Views\NewFolder1\**" />
<EmbeddedResource Remove="Views\NewFolder\**" />
<EmbeddedResource Remove="Views\Shared\NewFolder\**" />
<EntityDeploy Remove="Views\NewFolder1\**" />
<EntityDeploy Remove="Views\NewFolder\**" />
<EntityDeploy Remove="Views\Shared\NewFolder\**" />
<None Remove="Views\NewFolder1\**" />
<None Remove="Views\NewFolder\**" />
<None Remove="Views\Shared\NewFolder\**" />
<TypeScriptCompile Remove="Views\NewFolder1\**" />
<TypeScriptCompile Remove="Views\NewFolder\**" />
<TypeScriptCompile Remove="Views\Shared\NewFolder\**" />
</ItemGroup>

<ItemGroup>
<Compile Remove="Controllers\HomeController1.cs" />
<Compile Remove="Controllers\NotifProfileController.cs" />
<Compile Remove="Views\Shared\Index1.cshtml.cs" />
</ItemGroup>

<ItemGroup>
<Content Remove="Views\Shared\Calendar.cshtml" />
<Content Remove="Views\Shared\Component.razor" />
<Content Remove="Views\Shared\Index.cshtml" />
<Content Remove="Views\Shared\Index1.cshtml" />
</ItemGroup>

<ItemGroup>
<None Remove="appsettings.json.rej" />
</ItemGroup>
Expand Down Expand Up @@ -39,4 +73,12 @@
<ItemGroup>
<Folder Include="wwwroot\img\" />
</ItemGroup>

<ItemGroup>
<UpToDateCheckInput Remove="Views\Shared\Calendar.cshtml" />
</ItemGroup>

<ItemGroup>
<_ContentIncludedByDefault Remove="Views\Shared\Calendar.cshtml" />
</ItemGroup>
</Project>
52 changes: 49 additions & 3 deletions ASI.Basecode.WebApp/Controllers/AccountController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public class AccountController : ControllerBase<AccountController>
private readonly TokenProviderOptionsFactory _tokenProviderOptionsFactory;
private readonly IConfiguration _appConfiguration;
private readonly IUserService _userService;
private const string AdminUserId = "admin"; // Temporary admin user ID

/// <summary>
/// Initializes a new instance of the <see cref="AccountController"/> class.
Expand Down Expand Up @@ -77,7 +78,7 @@ public ActionResult Login()
/// <param name="model">The model.</param>
/// <param name="returnUrl">The return URL.</param>
/// <returns> Created response view </returns>
[HttpPost]
/*[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl)
{
Expand All @@ -92,7 +93,7 @@ public async Task<IActionResult> Login(LoginViewModel model, string returnUrl)

return RedirectToAction("Index", "Home");

/*var loginResult = _userService.AuthenticateUser(model.UserId, model.Password, ref user);
*//*var loginResult = _userService.AuthenticateUser(model.UserId, model.Password, ref user);
if (loginResult == LoginResult.Success)
{
// 認証OK
Expand All @@ -106,7 +107,40 @@ public async Task<IActionResult> Login(LoginViewModel model, string returnUrl)
TempData["ErrorMessage"] = "Incorrect UserId or Password";
return View();
}
return View();*/
return View();*//*
}*/

//the code above being commented is the original login logic of basecode. The code below this comment is the temporary solution for login para mapasok si admin

[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl)
{
this._session.SetString("HasSession", "Exist");

// Temporary login logic
if (model.UserId == AdminUserId && model.Password == "adminpass")
{
// Admin login
User user = new() { Id = 1, UserId = AdminUserId, Name = "Admin User", Password = "adminpass" };
await this._signInManager.SignInAsync(user);
this._session.SetString("UserName", user.Name);
this._session.SetString("UserRole", "Admin");
return RedirectToAction("Index", "Admin");
}
else if (!string.IsNullOrEmpty(model.UserId) && !string.IsNullOrEmpty(model.Password))
{
// Regular user login
User user = new() { Id = 2, UserId = model.UserId, Name = model.UserId, Password = model.Password };
await this._signInManager.SignInAsync(user);
this._session.SetString("UserName", user.Name);
this._session.SetString("UserRole", "User");
return RedirectToAction("Index", "Home");
}

// Invalid login
TempData["ErrorMessage"] = "Incorrect UserId or Password";
return View();
}

[HttpGet]
Expand Down Expand Up @@ -146,5 +180,17 @@ public async Task<IActionResult> SignOutUser()
await this._signInManager.SignOutAsync();
return RedirectToAction("Login", "Account");
}

/// <summary>
/// Sign Out current admin and return login view.
/// </summary>
/// <returns>Created response view</returns>
[AllowAnonymous]
public async Task<IActionResult> SignOutAdmin()
{
await this._signInManager.SignOutAsync();
HttpContext.Session.Clear();
return RedirectToAction("Login", "Account");
}
}
}
83 changes: 83 additions & 0 deletions ASI.Basecode.WebApp/Controllers/AdminController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
using ASI.Basecode.WebApp.Mvc;
using AutoMapper;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

namespace ASI.Basecode.WebApp.Controllers
{
/// <summary>
/// Admin Controller
/// </summary>
public class AdminController : ControllerBase<AdminController>
{
/// <summary>
/// Constructor
/// </summary>
/// <param name="httpContextAccessor"></param>
/// <param name="loggerFactory"></param>
/// <param name="configuration"></param>
/// <param name="localizer"></param>
/// <param name="mapper"></param>
public AdminController(IHttpContextAccessor httpContextAccessor,
ILoggerFactory loggerFactory,
IConfiguration configuration,
IMapper mapper = null) : base(httpContextAccessor, loggerFactory, configuration, mapper)
{

}

/// <summary>
/// Returns Admin Home View.
/// </summary>
/// <returns> Admin Home View </returns>
public IActionResult Index()
{
if (HttpContext.Session.GetString("UserRole") != "Admin")
{
return RedirectToAction("Login", "Account");
}
return View();
}

/// <summary>
/// Returns Admin Analytics View.
/// </summary>
/// <returns> Admin Analytics View </returns>
public IActionResult Analytics()
{
if (HttpContext.Session.GetString("UserRole") != "Admin")
{
return RedirectToAction("Login", "Account");
}
return View();
}

/// <summary>
/// Returns Manage Roles View.
/// </summary>
/// <returns> Manage Roles View </returns>
public IActionResult ManageRoles()
{
if (HttpContext.Session.GetString("UserRole") != "Admin")
{
return RedirectToAction("Login", "Account");
}
return View();
}

/// <summary>
/// Returns Admin Settings View.
/// </summary>
/// <returns> Admin Settings View </returns>
public IActionResult AdminSettings()
{
if (HttpContext.Session.GetString("UserRole") != "Admin")
{
return RedirectToAction("Login", "Account");
}
return View();
}
}
}
76 changes: 44 additions & 32 deletions ASI.Basecode.WebApp/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
@@ -1,40 +1,52 @@
using ASI.Basecode.WebApp.Mvc;
using AutoMapper;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
 using ASI.Basecode.WebApp.Mvc;
using AutoMapper;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

namespace ASI.Basecode.WebApp.Controllers
{
/// <summary>
/// Home Controller
/// </summary>
public class HomeController : ControllerBase<HomeController>
namespace ASI.Basecode.WebApp.Controllers
{
/// <summary>
/// Constructor
/// Home Controller
/// </summary>
/// <param name="httpContextAccessor"></param>
/// <param name="loggerFactory"></param>
/// <param name="configuration"></param>
/// <param name="localizer"></param>
/// <param name="mapper"></param>
public HomeController(IHttpContextAccessor httpContextAccessor,
ILoggerFactory loggerFactory,
IConfiguration configuration,
IMapper mapper = null) : base(httpContextAccessor, loggerFactory, configuration, mapper)
public class HomeController : ControllerBase<HomeController>
{
/// <summary>
/// Constructor
/// </summary>
/// <param name="httpContextAccessor"></param>
/// <param name="loggerFactory"></param>
/// <param name="configuration"></param>
/// <param name="localizer"></param>
/// <param name="mapper"></param>
public HomeController(IHttpContextAccessor httpContextAccessor,
ILoggerFactory loggerFactory,
IConfiguration configuration,
IMapper mapper = null) : base(httpContextAccessor, loggerFactory, configuration, mapper)
{

}
}

/// <summary>
/// Returns Home View.
/// </summary>
/// <returns> Home View </returns>
public IActionResult Index()
{
return View();
}
/// <summary>
/// Returns Home View.
/// </summary>
/// <returns> Home View </returns>
public IActionResult Index()
{
return View();
}
public IActionResult ViewBookings()
{
return View();
}
public IActionResult Calendar()
{
return View();
}
public IActionResult UserSettings()
{
return View();
}
}
}
}
12 changes: 12 additions & 0 deletions ASI.Basecode.WebApp/Controllers/ViewBookingsController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using Microsoft.AspNetCore.Mvc;

namespace ASI.Basecode.WebApp.Controllers
{
public class ViewBookingsController : Controller
{
public IActionResult ViewBookings()
{
return View();
}
}
}
14 changes: 14 additions & 0 deletions ASI.Basecode.WebApp/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,19 @@
app.MapControllers();
app.MapRazorPages();


app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "admin",
pattern: "Admin/{action=Index}/{id?}",
defaults: new { controller = "Admin" });

endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});


// Run application
app.Run();
12 changes: 12 additions & 0 deletions ASI.Basecode.WebApp/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,15 @@ public void ConfigureServices(IServiceCollection services)
services.AddSingleton<IFileProvider>(
new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")));


//gi add ni for session services
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(30);
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
}

/// <summary>
Expand Down Expand Up @@ -152,6 +161,9 @@ public void ConfigureApp(IApplicationBuilder app, IWebHostEnvironment env)

this._app.UseAuthentication();
this._app.UseAuthorization();

//for session use
this._app.UseSession();
}
}
}
Loading