diff options
| author | physcik <mynameisgennadiy@vk.com> | 2026-04-16 16:54:53 +0500 |
|---|---|---|
| committer | physcik <mynameisgennadiy@vk.com> | 2026-04-16 16:54:53 +0500 |
| commit | e7c7f2ed1211a801ceb5eed32b03a8fb9f791703 (patch) | |
| tree | cc7be349aa6eed06f39feac2038ade6444b7e9a2 /backend/src/Database | |
| parent | 9848b5589773a2d3e172fe72285b9203c36fd260 (diff) | |
login
Diffstat (limited to 'backend/src/Database')
| -rw-r--r-- | backend/src/Database/UserAccessLayer.zig | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/backend/src/Database/UserAccessLayer.zig b/backend/src/Database/UserAccessLayer.zig index 46692ad..fd5bf5a 100644 --- a/backend/src/Database/UserAccessLayer.zig +++ b/backend/src/Database/UserAccessLayer.zig @@ -5,7 +5,7 @@ const conn = @import("Connection.zig"); const std = @import("std"); const pg = @import("pg"); const model = @import("../Models/User.zig"); - +const pwd = @import("../Authentication/Password.zig"); pub fn Create(NewUser: *model.User) !void { if (try ExistsByUsername(NewUser.Username)) @@ -27,14 +27,19 @@ pub fn Create(NewUser: *model.User) !void { pub fn GetByCredentials(allocator: std.mem.Allocator, username: []const u8, passwordHash: []const u8) !model.User { const query = \\ SELECT * FROM Users WHERE - \\ Username = $1 AND PasswordHash = $2 + \\ Username = $1 ; - var row = try conn.pool.row(query, .{ username, passwordHash }) orelse { + var row = try conn.pool.row(query, .{ username }) orelse { return conn.ResultErrors.NotFound; }; - const outp = try model.User.MapWithAllocator(allocator, row.row); + const outp = try model.User.MapWithAllocator(allocator, &row.row); try row.deinit(); + + if (!pwd.CheckPasswordHash(outp.PasswordHash, passwordHash)) { + return conn.ResultErrors.NotFound; + } + return outp; } |
