ref: 43aaf43179c20ec5f99ea0e4e1f4031796368f70
parent: 373fb0d22ec131a771ceca6f0f4814d291bf78d2
author: halfwit <michaelmisch1985@gmail.com>
date: Sat Mar 28 07:26:09 PDT 2020
Move db away
--- a/db/tmp.go
+++ /dev/null
@@ -1,161 +1,0 @@
-package db
-
-import (
- "errors"
- "log"
-)
-
-// Access - Who can access the data
-type Access uint8
-
-const (
- GuestAuth Access = 1 << iota
- PatientAuth
- DoctorAuth
-)
-
-type entry struct {
- first string
- last string
- email string
- pass string
- role Access
-}
-
-// NOTE: stubs for database calls.
-var tmpdata map[string]*entry
-var data map[string]*entry
-
-func init() {
- tmpdata = make(map[string]*entry)
- data = make(map[string]*entry)
- // NOTE: Dummy entry for testing. This goes away when we have a real db
- data["foo"] = &entry{
- first: "foo",
- last: "bar",
- email: "foo@bar.com",
- pass: "1234567890",
- role: PatientAuth,
- }
- data["bar"] = &entry{
- first: "foo",
- last: "bar",
- email: "doc@bar.com",
- pass: "1234567890",
- role: DoctorAuth,
- }
-}
-
-// CreateTempEntry - Temporary (time limited) database entry
-func CreateTempEntry(first, last, email, pass, token string) {
- tmpdata[token] = &entry{
- first: first,
- last: last,
- email: email,
- pass: pass,
- }
-}
-
-// RemoveTempEntry - Called after timeout - this should be internal to db
-func RemoveTempEntry(token string) {
- delete(tmpdata, token)
-}
-
-// FindTempEntry - validate entry still exists
-func FindTempEntry(token string) bool {
- if _, ok := tmpdata[token]; ok {
- return true
- }
- return false
-}
-
-// CreateEntry - Add a permanent entry to the database
-func CreateEntry(token string) {
- log.Println(data)
- if ent, ok := tmpdata[token]; ok {
- data[token] = &entry{
- first: ent.first,
- last: ent.last,
- email: ent.email,
- pass: ent.pass,
- role: PatientAuth,
- }
- delete(tmpdata, token)
- }
-}
-
-// User - Any registered user on the site
-type User struct {
- First string
- Last string
- Email string
-}
-
-// FromCookie - look up by Cookie token
-func FromCookie(token string) (*User, error) {
- if u, ok := data[token]; ok {
- return &User{
- First: u.first,
- Last: u.last,
- Email: u.email,
- }, nil
- }
- return nil, errors.New("No such user")
-}
-
-// UpdateToken - Change entry status for temp entries
-func UpdateToken(old, new string) bool {
- defer delete(data, old)
- if ent, ok := data[old]; ok {
- data[new] = ent
- return true
- }
- return false
-}
-
-// FindEntry - Look up if token is still valid
-func FindEntry(token string) bool {
- if _, ok := data[token]; ok {
- return true
- }
- return false
-}
-
-// ValidateLogin - Dummy function for login
-func ValidateLogin(username, password string) bool {
- for _, client := range data {
- if client.email == username && client.pass == password {
- return true
- }
- }
- return false
-}
-
-// UserRole - Find Access mappings for given user
-func UserRole(username string) Access {
- for _, client := range data {
- if client.email != username {
- continue
- }
- return client.role
- }
- return GuestAuth
-}
-
-// UserExists - Look up by email if user is in db
-func UserExists(email string) bool {
- for _, client := range data {
- if client.email == email {
- return true
- }
- }
- return false
-}
-
-// UpdateUserPassword - Dummy funtion to update password
-func UpdateUserPassword(token, pass string) {
- if _, ok := data[token]; !ok {
- return
- }
- data[token].pass = pass
-}
--- a/db/token.go
+++ /dev/null
@@ -1,30 +1,0 @@
-package db
-
-import (
- "errors"
- "net/http"
-
- "github.com/google/uuid"
- "github.com/olmaxmedical/olmax_go/session"
-)
-
-// NewToken returns a unique token string
-func NewToken() string {
- u, _ := uuid.NewRandom()
- t := u.String()
- return t
-}
-
-// ValidateToken - verify old token was correct, set new
-func ValidateToken(h *http.Request, s session.Session) error {
- defer s.Delete("token")
- if h == nil {
- return errors.New("Invalid session")
- }
- token := h.PostFormValue("token")
- if s.Get("token") != token {
- return errors.New("Invalid/expired token")
- }
- s.Set("token", NewToken())
- return nil
-}