mirror of
https://github.com/opelly27/WinStudentGoalTracker.git
synced 2026-05-20 11:07:41 +00:00
changed login flow to support 2 phase program selection login.
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
namespace WinStudentGoalTracker.DataAccess;
|
||||
|
||||
public class SelectProgramDto
|
||||
{
|
||||
public required string ProgramId { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace WinStudentGoalTracker.DataAccess;
|
||||
|
||||
public class dbProgramUser
|
||||
{
|
||||
public required Guid IdUser { get; set; }
|
||||
public string? Email { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public required Guid IdProgram { get; set; }
|
||||
public string? ProgramName { get; set; }
|
||||
public required string RoleInternalName { get; set; }
|
||||
public required string RoleDisplayName { get; set; }
|
||||
public string? Status { get; set; }
|
||||
}
|
||||
@@ -4,6 +4,7 @@ public class dbRefreshToken
|
||||
{
|
||||
public Guid IdRefreshToken { get; set; }
|
||||
public Guid IdUser { get; set; }
|
||||
public Guid IdProgram { get; set; }
|
||||
public required string TokenHash { get; set; }
|
||||
public required string TokenSalt { get; set; }
|
||||
public DateTime ExpiresAt { get; set; }
|
||||
|
||||
@@ -3,7 +3,6 @@ namespace WinStudentGoalTracker.DataAccess;
|
||||
public class dbUser
|
||||
{
|
||||
public required Guid IdUser { get; set; }
|
||||
public Guid? IdRole { get; set; }
|
||||
public string? Email { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public string? PasswordHash { get; set; }
|
||||
@@ -11,6 +10,4 @@ public class dbUser
|
||||
public int FailedLoginAttempts { get; set; }
|
||||
public DateTime? LockedUntil { get; set; }
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
public required string RoleInternalName { get; set; }
|
||||
public required string RoleDisplayName { get; set; }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace WinStudentGoalTracker.DataAccess;
|
||||
|
||||
public class dbUserProgram
|
||||
{
|
||||
public required Guid IdProgram { get; set; }
|
||||
public string? ProgramName { get; set; }
|
||||
public required string RoleInternalName { get; set; }
|
||||
public required string RoleDisplayName { get; set; }
|
||||
public bool IsPrimary { get; set; }
|
||||
public string? Status { get; set; }
|
||||
}
|
||||
@@ -11,6 +11,7 @@ public class AuthRepository
|
||||
public async Task<Guid?> CreateRefreshTokenAsync(
|
||||
Guid refreshTokenId,
|
||||
Guid userId,
|
||||
Guid programId,
|
||||
string tokenHash,
|
||||
string tokenSalt,
|
||||
int expiresInSeconds,
|
||||
@@ -24,6 +25,7 @@ public class AuthRepository
|
||||
{
|
||||
p_id_refresh_token = refreshTokenId.ToString(),
|
||||
p_id_user = userId.ToString(),
|
||||
p_id_program = programId.ToString(),
|
||||
p_token_hash = tokenHash,
|
||||
p_token_salt = tokenSalt,
|
||||
p_expires_in_seconds = expiresInSeconds,
|
||||
@@ -57,6 +59,7 @@ public class AuthRepository
|
||||
Guid oldTokenId,
|
||||
Guid newTokenId,
|
||||
Guid userId,
|
||||
Guid programId,
|
||||
string tokenHash,
|
||||
string tokenSalt,
|
||||
int expiresInSeconds,
|
||||
@@ -71,6 +74,7 @@ public class AuthRepository
|
||||
p_old_token_id = oldTokenId.ToString(),
|
||||
p_id_refresh_token = newTokenId.ToString(),
|
||||
p_id_user = userId.ToString(),
|
||||
p_id_program = programId.ToString(),
|
||||
p_token_hash = tokenHash,
|
||||
p_token_salt = tokenSalt,
|
||||
p_expires_in_seconds = expiresInSeconds,
|
||||
|
||||
@@ -25,4 +25,22 @@ public class UserRepository
|
||||
new { p_id_user = idUser.ToString() },
|
||||
commandType: CommandType.StoredProcedure);
|
||||
}
|
||||
|
||||
public async Task<dbProgramUser?> GetByIdWithProgramAsync(Guid idUser, Guid idProgram)
|
||||
{
|
||||
using var db = Connection;
|
||||
return await db.QuerySingleOrDefaultAsync<dbProgramUser>(
|
||||
"sp_User_GetById_WithProgram",
|
||||
new { p_id_user = idUser.ToString(), p_id_program = idProgram.ToString() },
|
||||
commandType: CommandType.StoredProcedure);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<dbUserProgram>> GetProgramsForUserIdAsync(Guid idUser)
|
||||
{
|
||||
using var db = Connection;
|
||||
return await db.QueryAsync<dbUserProgram>(
|
||||
"sp_UserPrograms_GetByUserId",
|
||||
new { p_id_user = idUser.ToString() },
|
||||
commandType: CommandType.StoredProcedure);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user