From b6b058f05e476fb7af39224046a50addef4e210b Mon Sep 17 00:00:00 2001 From: ivan-pelly Date: Fri, 27 Feb 2026 18:29:11 -0800 Subject: [PATCH] Latest --- api/api.csproj.user | 6 ++++++ .../procedures/sp_RefreshToken_Create.sql | 3 +++ .../procedures/sp_RefreshToken_Replace.sql | 3 +++ db/Objects/procedures/sp_Student_GetAll.sql | 1 + db/Objects/procedures/sp_Student_GetById.sql | 1 + .../procedures/sp_Student_GetByProgram.sql | 1 + .../sp_Student_GetByUserAndProgram.sql | 4 ++-- db/Objects/procedures/sp_Student_Insert.sql | 20 ++++--------------- db/Objects/tables/refresh_token.sql | 3 +++ db/Objects/tables/student.sql | 5 ++++- db/Objects/tables/user_student.sql | 1 - db/dump-objects.ps1 | 10 ++++------ 12 files changed, 32 insertions(+), 26 deletions(-) create mode 100644 api/api.csproj.user diff --git a/api/api.csproj.user b/api/api.csproj.user new file mode 100644 index 0000000..9ff5820 --- /dev/null +++ b/api/api.csproj.user @@ -0,0 +1,6 @@ + + + + https + + \ No newline at end of file diff --git a/db/Objects/procedures/sp_RefreshToken_Create.sql b/db/Objects/procedures/sp_RefreshToken_Create.sql index 804cdfc..9fda21f 100644 --- a/db/Objects/procedures/sp_RefreshToken_Create.sql +++ b/db/Objects/procedures/sp_RefreshToken_Create.sql @@ -2,6 +2,7 @@ DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `sp_RefreshToken_Create`( IN p_id_refresh_token CHAR(36), IN p_id_user CHAR(36), + IN p_id_program CHAR(36), IN p_token_hash VARCHAR(512), IN p_token_salt VARCHAR(512), IN p_expires_in_seconds INT, @@ -13,6 +14,7 @@ BEGIN ( id_refresh_token, id_user, + id_program, token_hash, token_salt, expires_at, @@ -23,6 +25,7 @@ BEGIN ( p_id_refresh_token, p_id_user, + p_id_program, p_token_hash, p_token_salt, DATE_ADD(UTC_TIMESTAMP(), INTERVAL p_expires_in_seconds SECOND), diff --git a/db/Objects/procedures/sp_RefreshToken_Replace.sql b/db/Objects/procedures/sp_RefreshToken_Replace.sql index b087025..6245fe9 100644 --- a/db/Objects/procedures/sp_RefreshToken_Replace.sql +++ b/db/Objects/procedures/sp_RefreshToken_Replace.sql @@ -3,6 +3,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `sp_RefreshToken_Replace`( IN p_old_token_id CHAR(36), IN p_id_refresh_token CHAR(36), IN p_id_user CHAR(36), + IN p_id_program CHAR(36), IN p_token_hash VARCHAR(512), IN p_token_salt VARCHAR(512), IN p_expires_in_seconds INT, @@ -18,6 +19,7 @@ BEGIN ( id_refresh_token, id_user, + id_program, token_hash, token_salt, expires_at, @@ -28,6 +30,7 @@ BEGIN ( p_id_refresh_token, p_id_user, + p_id_program, p_token_hash, p_token_salt, DATE_ADD(UTC_TIMESTAMP(), INTERVAL p_expires_in_seconds SECOND), diff --git a/db/Objects/procedures/sp_Student_GetAll.sql b/db/Objects/procedures/sp_Student_GetAll.sql index f0b31cf..d421313 100644 --- a/db/Objects/procedures/sp_Student_GetAll.sql +++ b/db/Objects/procedures/sp_Student_GetAll.sql @@ -4,6 +4,7 @@ BEGIN SELECT id_student, id_program, + id_user, identifier, program_year, enrollment_date, diff --git a/db/Objects/procedures/sp_Student_GetById.sql b/db/Objects/procedures/sp_Student_GetById.sql index 3017116..1e9b742 100644 --- a/db/Objects/procedures/sp_Student_GetById.sql +++ b/db/Objects/procedures/sp_Student_GetById.sql @@ -4,6 +4,7 @@ BEGIN SELECT id_student, id_program, + id_user, identifier, program_year, enrollment_date, diff --git a/db/Objects/procedures/sp_Student_GetByProgram.sql b/db/Objects/procedures/sp_Student_GetByProgram.sql index 2c22fac..5e70f9e 100644 --- a/db/Objects/procedures/sp_Student_GetByProgram.sql +++ b/db/Objects/procedures/sp_Student_GetByProgram.sql @@ -6,6 +6,7 @@ BEGIN SELECT id_student, id_program, + id_user, identifier, program_year, enrollment_date, diff --git a/db/Objects/procedures/sp_Student_GetByUserAndProgram.sql b/db/Objects/procedures/sp_Student_GetByUserAndProgram.sql index a274ac2..13e28ac 100644 --- a/db/Objects/procedures/sp_Student_GetByUserAndProgram.sql +++ b/db/Objects/procedures/sp_Student_GetByUserAndProgram.sql @@ -7,14 +7,14 @@ BEGIN SELECT s.id_student, s.id_program, + s.id_user, s.identifier, s.program_year, s.enrollment_date, s.expected_grad, s.created_at FROM student s - JOIN user_student us ON us.id_student = s.id_student - WHERE us.id_user = p_id_user + WHERE s.id_user = p_id_user AND s.id_program = p_id_program ORDER BY s.id_student; END;; diff --git a/db/Objects/procedures/sp_Student_Insert.sql b/db/Objects/procedures/sp_Student_Insert.sql index 50a5e65..e4bd77c 100644 --- a/db/Objects/procedures/sp_Student_Insert.sql +++ b/db/Objects/procedures/sp_Student_Insert.sql @@ -2,6 +2,7 @@ DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `sp_Student_Insert`( IN p_id_student CHAR(36), IN p_id_program CHAR(36), + IN p_id_user CHAR(36), IN p_identifier VARCHAR(50), IN p_program_year INT, IN p_enrollment_date DATE, @@ -12,6 +13,7 @@ BEGIN ( id_student, id_program, + id_user, identifier, program_year, enrollment_date, @@ -22,31 +24,17 @@ BEGIN ( p_id_student, p_id_program, + p_id_user, p_identifier, p_program_year, p_enrollment_date, p_expected_grad, UTC_TIMESTAMP() ); - - INSERT INTO user_student - ( - id_user_student, - id_user, - id_student, - is_primary - ) - VALUES - ( - UUID(), - p_id_user, - p_id_student, - 1 - ); - SELECT id_student, id_program, + id_user, identifier, program_year, enrollment_date, diff --git a/db/Objects/tables/refresh_token.sql b/db/Objects/tables/refresh_token.sql index 733403a..af32e8b 100644 --- a/db/Objects/tables/refresh_token.sql +++ b/db/Objects/tables/refresh_token.sql @@ -1,6 +1,7 @@ CREATE TABLE `refresh_token` ( `id_refresh_token` char(36) NOT NULL, `id_user` char(36) NOT NULL, + `id_program` char(36) DEFAULT NULL, `token_hash` varchar(512) NOT NULL, `token_salt` varchar(512) NOT NULL, `expires_at` timestamp NOT NULL, @@ -15,6 +16,8 @@ CREATE TABLE `refresh_token` ( KEY `idx_refresh_token_user` (`id_user`), KEY `idx_refresh_token_expires` (`expires_at`), KEY `refresh_token_ibfk_2` (`replaced_by_token_id`), + KEY `fk_refresh_token_program` (`id_program`), + CONSTRAINT `fk_refresh_token_program` FOREIGN KEY (`id_program`) REFERENCES `program` (`id_program`), CONSTRAINT `refresh_token_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `user` (`id_user`), CONSTRAINT `refresh_token_ibfk_2` FOREIGN KEY (`replaced_by_token_id`) REFERENCES `refresh_token` (`id_refresh_token`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; diff --git a/db/Objects/tables/student.sql b/db/Objects/tables/student.sql index 44c4d76..d5f51e6 100644 --- a/db/Objects/tables/student.sql +++ b/db/Objects/tables/student.sql @@ -1,6 +1,7 @@ CREATE TABLE `student` ( `id_student` char(36) NOT NULL, `id_program` char(36) DEFAULT NULL, + `id_user` char(36) DEFAULT NULL, `identifier` varchar(50) DEFAULT NULL, `program_year` int DEFAULT NULL, `enrollment_date` date DEFAULT NULL, @@ -8,5 +9,7 @@ CREATE TABLE `student` ( `created_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id_student`), KEY `student_ibfk_1` (`id_program`), - CONSTRAINT `student_ibfk_1` FOREIGN KEY (`id_program`) REFERENCES `program` (`id_program`) + KEY `student_ibfk_2` (`id_user`), + CONSTRAINT `student_ibfk_1` FOREIGN KEY (`id_program`) REFERENCES `program` (`id_program`), + CONSTRAINT `student_ibfk_2` FOREIGN KEY (`id_user`) REFERENCES `user` (`id_user`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; diff --git a/db/Objects/tables/user_student.sql b/db/Objects/tables/user_student.sql index f379119..ef9286b 100644 --- a/db/Objects/tables/user_student.sql +++ b/db/Objects/tables/user_student.sql @@ -2,7 +2,6 @@ CREATE TABLE `user_student` ( `id_user_student` char(36) NOT NULL, `id_user` char(36) DEFAULT NULL, `id_student` char(36) DEFAULT NULL, - `access_level` varchar(50) DEFAULT NULL, `is_primary` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id_user_student`), KEY `user_student_ibfk_1` (`id_user`), diff --git a/db/dump-objects.ps1 b/db/dump-objects.ps1 index 6945144..96259d5 100644 --- a/db/dump-objects.ps1 +++ b/db/dump-objects.ps1 @@ -4,13 +4,11 @@ $mysql = "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysql.exe" $baseOutputDir = Join-Path $PSScriptRoot "Objects" $database = "winstudentgoaltracker" -# Get password once -$securePass = Read-Host "Enter MySQL password" -AsSecureString -$pass = [Runtime.InteropServices.Marshal]::PtrToStringAuto( - [Runtime.InteropServices.Marshal]::SecureStringToBSTR($securePass)) +# Password +$pass = "B0I3P0r0ZJzOJWFB" # Connection parameters -$connParams = @("-h", "10.66.66.1", "-P", "3309", "-u", "root", "-p$pass") +$connParams = @("-h", "10.55.55.1", "-P", "3309", "-u", "root", "-p$pass") # ============================================================================= # CONNECTION TEST @@ -22,7 +20,7 @@ if ($LASTEXITCODE -ne 0) { Write-Host "ERROR: Could not connect to MySQL. Details:" -ForegroundColor Red Write-Host ($connTest | Out-String).Trim() -ForegroundColor Red Write-Host "" - Write-Host "Check your password, host (10.66.66.1), port (3309), and that the MySQL server is reachable." -ForegroundColor Yellow + Write-Host "Check your password, host (10.55.55.1), port (3309), and that the MySQL server is reachable." -ForegroundColor Yellow exit 1 } Write-Host "Connection OK." -ForegroundColor Green