hydroxide-push/imap/imap.go

36 lines
656 B
Go
Raw Normal View History

2017-12-03 15:58:24 +02:00
package imap
import (
"errors"
imapbackend "github.com/emersion/go-imap/backend"
"github.com/emersion/hydroxide/auth"
)
var errNotYetImplemented = errors.New("not yet implemented")
type backend struct {
sessions *auth.Manager
}
func (be *backend) Login(username, password string) (imapbackend.User, error) {
c, privateKeys, err := be.sessions.Auth(username, password)
if err != nil {
return nil, err
}
u, err := c.GetCurrentUser()
if err != nil {
return nil, err
}
// TODO: decrypt private keys in u.Addresses
return newUser(c, u, privateKeys)
2017-12-03 15:58:24 +02:00
}
func New(sessions *auth.Manager) imapbackend.Backend {
return &backend{sessions}
}