blob: ac6ceedaf507fa745ffb9f1eaf778acf6b08aff8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
const std = @import("std");
const memora = @import("memora");
const Context = memora.Context;
const Storage = memora.Storage;
pub const access = .users;
const Body = struct {
current_password: []const u8,
new_password: []const u8,
};
const Response = struct {
success: bool,
};
pub fn post(ctx: *Context, body: Body) !Response {
if (ctx.storage.sessions.get(ctx.storage, ctx.fingerprint)) |session| {
var user = try Storage.User.open(ctx.storage, session.info.name);
defer user.deinit();
const result = Response {
.success = user.check_password(body.current_password)
};
if (result.success) {
try user.set_password(body.new_password);
try user.sync();
}
return result;
} else {
return error.UnknownSession;
}
}
|