このコミットが含まれているのは:
Christian Heller 2016-02-13 00:56:22 +01:00
コミット 7081a13e86
2個のファイルの変更35行の追加25行の削除

ファイルの表示

@ -112,9 +112,11 @@ By default, HTML templates are read out of `$GOPATH/src/htwtxt/templates/`. An
alternate directory can be given with the flag `--templates` (it should contain
template files of the same names as the default ones, however).
## Copyright, license
## Copyright, license, version
htwtxt (c) 2016 Christian Heller a.k.a. [plomlompom](http://www.plomlompom.de),
with template design input by [Kai Kubasta](http://kaikubasta.de).
License: Affero GPL version 3, see `./LICENSE`
Current version number: 1.0

56
main.go
ファイルの表示

@ -21,6 +21,7 @@ import "time"
const resetLinkExp = 1800
const resetWaitTime = 3600 * 24
const version = "1.0"
var contact string
var dialer *gomail.Dialer
@ -208,12 +209,34 @@ func nameMyself(ssl bool, port int) string {
return "http" + s + "://" + ip + ":" + strconv.Itoa(port)
}
func readOptions() (string, int, string, int, string) {
func addUser(login string) {
fields := strings.Split(login, ":")
if len(fields) != 2 {
log.Fatal("Malformed adduser string, must be NAME:PASSWORD")
}
name := fields[0]
password := fields[1]
if !nameIsLegal(name) {
log.Fatal("Malformed adduser NAME argument.")
}
if !passwordIsLegal(password) {
log.Fatal("Malformed adduser PASSWORD argument.")
}
if _, err := getFromFileEntryFor(loginsPath, name, 5); err == nil {
log.Fatal("Username already taken.")
}
hash := hashFromPw(password)
appendToFile(loginsPath, name+"\t"+hash+"\t\t\t")
fmt.Println("Added user.")
}
func readOptions() (string, int, string, int, string, bool) {
var mailpw string
var mailport int
var mailserver string
var port int
var newLogin string
var showVersion bool
flag.StringVar(&newLogin, "adduser", "", "instead of starting as "+
"server, add user with login NAME:PASSWORD")
flag.IntVar(&port, "port", 8000, "port to serve")
@ -229,6 +252,7 @@ func readOptions() (string, int, string, int, string) {
"operator contact info to display on info page")
flag.BoolVar(&signupOpen, "signup", false,
"enable on-site account creation")
flag.BoolVar(&showVersion, "version", false, "show version number")
flag.StringVar(&mailserver, "mailserver", "",
"SMTP server to send mails through")
flag.IntVar(&mailport, "mailport", 0,
@ -252,33 +276,17 @@ func readOptions() (string, int, string, int, string) {
mailpw = string(bytePassword)
fmt.Println("")
}
return mailserver, mailport, mailpw, port, newLogin
}
func addUser(login string) {
fields := strings.Split(login, ":")
if len(fields) != 2 {
log.Fatal("Malformed adduser string, must be NAME:PASSWORD")
}
name := fields[0]
password := fields[1]
if !nameIsLegal(name) {
log.Fatal("Malformed adduser NAME argument.")
}
if !passwordIsLegal(password) {
log.Fatal("Malformed adduser PASSWORD argument.")
}
if _, err := getFromFileEntryFor(loginsPath, name, 5); err == nil {
log.Fatal("Username already taken.")
}
hash := hashFromPw(password)
appendToFile(loginsPath, name+"\t"+hash+"\t\t\t")
fmt.Println("Added user.")
return mailserver, mailport, mailpw, port, newLogin, showVersion
}
func main() {
var err error
mailserver, mailport, mailpw, port, newLogin := readOptions()
mailserver, mailport, mailpw, port, newLogin, showVersion :=
readOptions()
if showVersion {
fmt.Println("htwtxt", version)
return
}
initFilesAndDirs()
if "" != newLogin {
addUser(newLogin)