╭ changed ─────────╮ │src/event/User.zig│ ╰──────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ 8 name: []const u8, │ │ 9 email: []const u8, │ │10 password_hash: []const u8, │ │11 -enable_ansi: bool = true, │ │11 ssh_keys: []const u8 = "", // newline-separated authorized_keys lines (one OpenSSH public key per line)│ │12 │ │13 // what the db stores: the event's data plus the commit-derived fields │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │244 const user_id = try readIdByName(evt.AdminDB, evt.admin_repo_opts.hash, moment, name) orelse return null; │ │245 │ │246 return try readById(evt.AdminDB, evt.admin_repo_opts.hash, moment, arena, &user_id); │ │248 -} │ │249 - │ │250 -// flip a user's ANSI-art preference by re-emitting their User event with │ │251 -// enable_ansi negated. a no-op for an unknown user. `repo` must be writable. │ │252 -pub fn toggleAnsi( │ │253 - comptime repo_opts: rp.RepoOpts(.xit), │ │254 - io: std.Io, │ │255 - allocator: std.mem.Allocator, │ │256 - repo: *rp.Repo(.xit, repo_opts), │ │257 - users_dir: []const u8, │ │258 - user_id: []const u8, │ │259 -) !void { │ │260 - const DB = rp.Repo(.xit, repo_opts).DB; │ │261 - var arena = std.heap.ArenaAllocator.init(allocator); │ │262 - defer arena.deinit(); │ │263 - │ │264 - const moment = try evt.currentMoment(repo_opts, repo); │ │265 - const user = (try readById(DB, repo_opts.hash, moment, &arena, user_id)) orelse return; │ │266 - │ │267 - var updated = user.event; │ │268 - updated.enable_ansi = !updated.enable_ansi; │ │269 - try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .admin, .xit, repo_opts, io, allocator, repo, evt.events_ref, &[_]evt.EventWithId{.{│ │270 - .id = std.fmt.bytesToHex(user_id[0..evt.event_id_size].*, .lower), │ │271 - .timestamp = @intCast(std.Io.Timestamp.now(io, .real).toSeconds()), │ │272 - .author = .{ .name = user.event.name, .email = user.event.email }, │ │273 - .event = .{ .user = updated }, │ │274 - }}); │ │247 } │ │248 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯