minor bugfixes and cleanup

This commit is contained in:
ston1th 2018-09-19 00:10:16 +02:00
commit 97d914bce4
26 changed files with 198 additions and 221 deletions

View file

@ -21,10 +21,7 @@ This is the [Index](/wiki/Index) page.
You can customize it how you like.`
)
/*const (
maxResult = 1e6
maxSearchResult = 101
)*/
const blevePath = "bleve"
func dbErr(i interface{}) error {
return fmt.Errorf("db: %s", i)
@ -37,13 +34,12 @@ type DB struct {
Index *index.Index
}
func New(indexPath string) (db *DB, err error) {
func New(datadir string) (db *DB, err error) {
db = &DB{cache: cache.NewCache()}
//TODO
//db.Index, err = index.NewIndex(indexPath)
//if err != nil {
// return
//}
db.Index, err = index.NewIndex(datadir + "/" + blevePath)
if err != nil {
return
}
db.users, err = store.NewBoltStore(usersFile, nil)
if err != nil {
@ -80,7 +76,5 @@ func (db *DB) Close() error {
if err != nil {
return err
}
return nil
//TODO
//return db.Index.Close()
return db.Index.Close()
}

View file

@ -1,7 +1,9 @@
// Copyright (C) 2018 Marius Schellenberger
package db
import (
"golang.org/x/crypto/sha3"
"crypto/sha256"
"time"
)
@ -31,7 +33,7 @@ func validatePassword(pw string) (b []byte) {
if len(pw) <= 56 {
return
}
hash := sha3.New384()
hash := sha256.New()
hash.Write(b)
b = hash.Sum(nil)
return

View file

@ -1,28 +0,0 @@
package db
import (
"bytes"
"encoding/gob"
)
type Marshaler interface {
Marshal(v interface{}) ([]byte, error)
Unmarshal(data []byte, v interface{}) error
}
type gobMarshaler struct{}
func NewGOB() Marshaler {
return gobMarshaler{}
}
func (gobMarshaler) Marshal(v interface{}) (b []byte, err error) {
buf := new(bytes.Buffer)
err = gob.NewEncoder(buf).Encode(v)
b = buf.Bytes()
return
}
func (gobMarshaler) Unmarshal(data []byte, v interface{}) error {
return gob.NewDecoder(bytes.NewBuffer(data)).Decode(v)
}

View file

@ -1,3 +1,5 @@
// Copyright (C) 2018 Marius Schellenberger
package db
import (
@ -81,19 +83,17 @@ func (db *DB) CreatePage(title, section, markdown, username string, p core.Permi
Owner: owner,
Perm: p,
}
//search := render.Render(page)
render.Render(page)
search := render.Render(page)
err = db.pages.Set(st, page)
if err != nil {
return
}
//TODO
//err = db.Index.Add(title, st, search)
//if err != nil {
// return
//}
err = db.Index.Add(title, st, search)
if err != nil {
return
}
db.cache.Add(st, page)
return
}
@ -119,20 +119,17 @@ func (db *DB) UpdatePage(title, section, markdown, username string, p core.Permi
page.Markdown = markdown
page.Updated = created(username)
page.Perm = p
//TODO
//search := render.Render(page)
render.Render(page)
search := render.Render(page)
err = db.pages.Set(st, page)
if err != nil {
return
}
//TODO
//err = db.Index.Add(title, st, search)
//if err != nil {
// return
//}
err = db.Index.Add(title, st, search)
if err != nil {
return
}
db.cache.Add(st, page)
return
}
@ -155,7 +152,5 @@ func (db *DB) DeletePage(title, section, username string) (err error) {
return
}
db.cache.Delete(st)
return nil
//TODO
//return db.Index.Delete(st)
return db.Index.Delete(st)
}

View file

@ -1,3 +1,5 @@
// Copyright (C) 2018 Marius Schellenberger
package db
import (
@ -166,6 +168,7 @@ func (db *DB) AdminUpdateUser(username, password string, admin bool) error {
return db.users.Set(username, u)
}
//TODO delete all user owned pages
func (db *DB) DeleteUser(username string) error {
if username == defUser {
return errors.New("user '" + defUser + "' cannot be deleted")