feat: add user management, refs NOISSUE
This commit is contained in:
64
song_of_the_day/Pages/UnclaimedPhoneNumbers.cshtml.cs
Normal file
64
song_of_the_day/Pages/UnclaimedPhoneNumbers.cshtml.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using Microsoft.VisualBasic;
|
||||
|
||||
namespace sotd.Pages;
|
||||
|
||||
public class UnclaimedPhoneNumbersModel : PageModel
|
||||
{
|
||||
private readonly ILogger<UserModel> _logger;
|
||||
|
||||
public UnclaimedPhoneNumbersModel(ILogger<UserModel> logger)
|
||||
{
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public int userId { get; set; }
|
||||
|
||||
[BindProperty]
|
||||
public List<User> UnclaimedUsers { get; set; }
|
||||
|
||||
public void OnGet()
|
||||
{
|
||||
using (var dci = DataContext.Instance)
|
||||
{
|
||||
this.UnclaimedUsers = dci.Users.Where(u => string.IsNullOrEmpty(u.LdapUserName)).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPost(int userIndex)
|
||||
{
|
||||
using (var dci = DataContext.Instance)
|
||||
{
|
||||
var user = dci.Users.Find(userIndex);
|
||||
var claimCodeService = HttpContext.RequestServices.GetService<PhoneClaimCodeProviderService>();
|
||||
claimCodeService.GenerateClaimCodeForUserAndNumber(HttpContext.User.Identity.Name, user.SignalMemberId);
|
||||
this.UnclaimedUsers = dci.Users.Where(u => string.IsNullOrEmpty(u.LdapUserName)).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public IActionResult OnPostSubmitCode(string code)
|
||||
{
|
||||
var claimCodeService = HttpContext.RequestServices.GetService<PhoneClaimCodeProviderService>();
|
||||
var validatedNumber = claimCodeService.ValidateClaimCodeForUser(code, HttpContext.User.Identity.Name);
|
||||
if (!string.IsNullOrEmpty(validatedNumber))
|
||||
{
|
||||
using (var dci = DataContext.Instance)
|
||||
{
|
||||
var user = dci.Users.Where(u => u.SignalMemberId == validatedNumber).FirstOrDefault();
|
||||
if (user == default(User))
|
||||
{
|
||||
throw new Exception("User with specified phone number not found!");
|
||||
}
|
||||
user.LdapUserName = HttpContext.User.Identity.Name;
|
||||
dci.SaveChanges();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Invalid code provided!");
|
||||
}
|
||||
|
||||
return RedirectToPage("/");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user