From ec52bc09e4ee901cac601d03095249285db40457 Mon Sep 17 00:00:00 2001 From: "DESKTOP-T0O5CDB\\DESK-555BD" Date: Tue, 11 Nov 2025 22:23:05 -0700 Subject: [PATCH] allow admins to manage households for all users --- Controllers/AdminController.cs | 19 ++++++++ Models/User/UserHouseholdAdminViewModel.cs | 8 ++++ Views/Admin/Index.cshtml | 51 +++++++++++++++++++++ Views/Admin/_AdminUserHouseholdModal.cshtml | 40 ++++++++++++++++ Views/Admin/_Users.cshtml | 4 +- 5 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 Models/User/UserHouseholdAdminViewModel.cs create mode 100644 Views/Admin/_AdminUserHouseholdModal.cshtml diff --git a/Controllers/AdminController.cs b/Controllers/AdminController.cs index f2d660c..5f4742e 100644 --- a/Controllers/AdminController.cs +++ b/Controllers/AdminController.cs @@ -85,5 +85,24 @@ namespace CarCareTracker.Controllers var result = _loginLogic.MakeUserAdmin(userId, isAdmin); return Json(result); } + [HttpGet] + public IActionResult GetUserHouseholdModal(int userId) + { + var households = _userLogic.GetHouseholdForParentUserId(userId); + var viewModel = new UserHouseholdAdminViewModel { Households = households, ParentUserId = userId }; + return PartialView("_AdminUserHouseholdModal", viewModel); + } + [HttpPost] + public IActionResult RemoveUserFromHousehold(int parentUserId, int childUserId) + { + var result = _userLogic.DeleteUserFromHousehold(parentUserId, childUserId); + return Json(result); + } + [HttpPost] + public IActionResult AddUserToHousehold(int parentUserId, string username) + { + var result = _userLogic.AddUserToHousehold(parentUserId, username); + return Json(result); + } } } diff --git a/Models/User/UserHouseholdAdminViewModel.cs b/Models/User/UserHouseholdAdminViewModel.cs new file mode 100644 index 0000000..5a2bdc4 --- /dev/null +++ b/Models/User/UserHouseholdAdminViewModel.cs @@ -0,0 +1,8 @@ +namespace CarCareTracker.Models +{ + public class UserHouseholdAdminViewModel + { + public List Households { get; set; } + public int ParentUserId { get; set; } + } +} \ No newline at end of file diff --git a/Views/Admin/Index.cshtml b/Views/Admin/Index.cshtml index 14fd546..68fa951 100644 --- a/Views/Admin/Index.cshtml +++ b/Views/Admin/Index.cshtml @@ -95,6 +95,12 @@ + \ No newline at end of file diff --git a/Views/Admin/_AdminUserHouseholdModal.cshtml b/Views/Admin/_AdminUserHouseholdModal.cshtml new file mode 100644 index 0000000..04decd5 --- /dev/null +++ b/Views/Admin/_AdminUserHouseholdModal.cshtml @@ -0,0 +1,40 @@ +@using CarCareTracker.Helper +@inject IConfigHelper config +@inject ITranslationHelper translator +@model UserHouseholdAdminViewModel +@{ + var userConfig = config.GetUserConfig(User); + var userLanguage = userConfig.UserLanguage; +} + + \ No newline at end of file diff --git a/Views/Admin/_Users.cshtml b/Views/Admin/_Users.cshtml index b156ec8..a3bddfd 100644 --- a/Views/Admin/_Users.cshtml +++ b/Views/Admin/_Users.cshtml @@ -2,10 +2,10 @@ @model List @foreach (UserData userData in Model) { - + @StaticHelper.TruncateStrings(userData.UserName) @StaticHelper.TruncateStrings(userData.EmailAddress) - + } \ No newline at end of file