From 3c7a4451e62d27bbe9dc8eb2c16e2ff5607d1b04 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Sat, 7 Apr 2012 20:17:47 -0400 Subject: backup of partial progress --- auth.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 auth.go (limited to 'auth.go') diff --git a/auth.go b/auth.go new file mode 100644 index 0000000..0bbed40 --- /dev/null +++ b/auth.go @@ -0,0 +1,40 @@ +package main + +// Authentication globals +var auth AuthService +var anonUser = &User{name: "common"} + +// Basic registered user account structure, for permissions etc. +type User struct { + // TODO: more specific types for these + name, pw, email string +} + +// Minimal requirements for an authentication backend. +type AuthService interface { + CheckLogin(name, pw string) error + NewAccount(name, pw, email string) error + ChangePassword(name, oldPw, newPw string) error + GetEmail(name string) (string, error) +} + +// DummyAuth is a "wide-open" implementation of AuthService for development and +// local use. Any username/password is accepted, and a dummy email address is +// always returned. +type DummyAuth bool // TODO: what is the best "dummy" abstract base type? + +func (da *DummyAuth) CheckLogin(name, pw string) error { + return nil +} + +func (da *DummyAuth) NewAccount(name, pw, email string) error { + return nil +} + +func (da *DummyAuth) ChangePassword(name, oldPw, newPw string) error { + return nil +} + +func (da *DummyAuth) GetEmail(name string) (string, error) { + return "example@bommom.com", nil +} -- cgit v1.2.3