commit 2aea4626e87e725c3c2c9e32ed124ed327d8c910 from: Oliver Lowe date: Mon Jul 04 15:16:49 2022 UTC cmd/changeuser: create and change a user on disk So now we can do it via ssh or something commit - 35e7d1ea65e988b0b158fd2aa25cd9bb86f4190d commit + 2aea4626e87e725c3c2c9e32ed124ed327d8c910 blob - /dev/null blob + 325ac523b34145f1154086984c2a08b8876507ac (mode 644) --- /dev/null +++ apple/Info.plist @@ -0,0 +1,12 @@ + + + + + + blob - /dev/null blob + ff0c655b56381b26f0a591de623b3f6b7b324439 (mode 644) --- /dev/null +++ apple/Shared/Client.swift @@ -0,0 +1,8 @@ +// +// Client.swift +// mailmux +// +// Created by Oliver Lowe on 4/7/2022. +// + +import Foundation blob - 6ae8ce1425c4b42fd87fd78105f6c9d965663378 (mode 644) blob + /dev/null --- apple/iOS/Settings.swift +++ /dev/null @@ -1,7 +0,0 @@ -import SwiftUI - -struct Settings: View { - var body: some View { - CredentialsForm() - } -} blob - /dev/null blob + 4a1fe5d58fa8dd3456eaf502f9d4eccd7ad2bd08 (mode 644) --- /dev/null +++ apple/iOS/iSettings.swift @@ -0,0 +1,20 @@ +import SwiftUI + +struct iSettings: View { + @Binding var presented: Bool + var body: some View { + NavigationView { + CredentialsForm() + .navigationTitle("Settings") + .toolbar { + ToolbarItem(placement: .navigation) { + Button(action: { + presented = false + }) { + Label("Done", systemImage: "checkmark") + } + } + } + } + } +} blob - /dev/null blob + 4ad6eaad36df0c66bcb1e4fd9045d38829fcb964 (mode 644) --- /dev/null +++ cmd/changeuser/changeuser.go @@ -0,0 +1,56 @@ +package main + +import ( + "fmt" + "os" + "path" + + mailmux "mailmux.net" +) + +const usage string = "usage: changeuser user" + +func openUserDB() (mailmux.UserStore, error) { + cachedir, err := os.UserCacheDir() + if err != nil { + return nil, err + } + dbpath := path.Join(cachedir, "mailmux/db") + ticketdir := path.Join(cachedir, "mailmux/ticket") + return mailmux.OpenUserDB(dbpath, ticketdir) +} + +func main() { + if len(os.Args) != 2 { + fmt.Println(usage) + os.Exit(1) + } + username := os.Args[1] + var password, confirm string + for { + fmt.Print("Password: ") + if _, err := fmt.Scanln(&password); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + fmt.Print("Confirm password: ") + if _, err := fmt.Scanln(&confirm); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + if password != confirm { + fmt.Println("mismatch, try again") + continue + } + break + } + db, err := openUserDB() + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + if err := db.Change(username, mailmux.Password(password)); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } +}