Commit Diff


commit - 35e7d1ea65e988b0b158fd2aa25cd9bb86f4190d
commit + 2aea4626e87e725c3c2c9e32ed124ed327d8c910
blob - /dev/null
blob + 325ac523b34145f1154086984c2a08b8876507ac (mode 644)
--- /dev/null
+++ apple/Info.plist
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!--
+   Info.plist
+   mailmux
+
+   Created by Oliver Lowe on 4/7/2022.
+   Copyright (c) 2022 ___ORGANIZATIONNAME___. All rights reserved.
+-->
+<plist version="1.0">
+<dict/>
+</plist>
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)
+	}
+}