✨🚧 Implement admin interface to manage shares and users

This commit is contained in:
2020-10-24 16:57:00 +02:00
parent f798551b97
commit 5034d1a1f8
12 changed files with 503 additions and 2 deletions
+20
View File
@@ -52,6 +52,7 @@ type ShareStore interface {
AddLogin(share Share, username string, login Login) error
RemoveLogin(share Share, username string, loginName string) error
GetShare(id string) (Share, error)
GetShares() ([]Share, error)
GetShareUsers(share Share) ([]ShareUser, error)
GetShareLogins(share Share, username string) ([]Login, error)
@@ -476,6 +477,25 @@ func (store *DBStore) RemoveLogin(share Share, username string, loginName string
})
}
func (store *DBStore) GetShare(id string) (Share, error) {
var share Share
if err := store.db.View(func(tx *buntdb.Tx) error {
val, err := tx.Get(sharePrefix + id)
if err == buntdb.ErrNotFound {
return ErrShareNotFound
}
share, err = unmarshalShare(id, val)
if err != nil {
return err
}
return nil
}); err != nil {
return Share{}, err
}
return share, nil
}
func (store *DBStore) GetShares() (shares []Share, err error) {
err = store.db.View(func(tx *buntdb.Tx) error {
var processingError error