summaryrefslogtreecommitdiff
path: root/backend/src/Database
diff options
context:
space:
mode:
Diffstat (limited to 'backend/src/Database')
-rw-r--r--backend/src/Database/UserAccessLayer.zig13
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;
}