mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
smtp + email confirmation (#285)
* add smtp configuration * add email confirm + reset templates * add email sender to testrig * flesh out the email sender interface * go fmt * golint * update from field with more clarity * tidy up the email formatting * fix tests * add email sender to processor * tidy client api processing a bit * further tidying in fromClientAPI * pin new account to user * send msg to processor on new account creation * generate confirm email uri * remove emailer from account processor again * add processCreateAccountFromClientAPI * move emailer accountprocessor => userprocessor * add email sender to user processor * SendConfirmEmail function * add noop email sender * use noop email sender in tests * only assemble message if callback is not nil * use noop email sender if no smtp host is defined * minify email html before sending * fix wrong email address * email confirm test * fmt * serve web hndler * add email confirm handler * init test log properly on testrig * log emails that *would* have been sent * go fmt ./... * unexport confirm email handler * updatedAt * test confirm email function * don't allow tokens older than 7 days * change error message a bit * add basic smtp docs * add a few more snippets * typo * add email sender to outbox tests * don't use dutch wikipedia link * don't minify email html
This commit is contained in:
@ -28,6 +28,7 @@ import (
|
||||
apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/config"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/db"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/email"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/federation"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/gtserror"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
|
||||
@ -179,6 +180,9 @@ type Processor interface {
|
||||
|
||||
// UserChangePassword changes the password for the given user, with the given form.
|
||||
UserChangePassword(ctx context.Context, authed *oauth.Auth, form *apimodel.PasswordChangeRequest) gtserror.WithCode
|
||||
// UserConfirmEmail confirms an email address using the given token.
|
||||
// The user belonging to the confirmed email is also returned.
|
||||
UserConfirmEmail(ctx context.Context, token string) (*gtsmodel.User, gtserror.WithCode)
|
||||
|
||||
/*
|
||||
FEDERATION API-FACING PROCESSING FUNCTIONS
|
||||
@ -252,8 +256,17 @@ type processor struct {
|
||||
federationProcessor federationProcessor.Processor
|
||||
}
|
||||
|
||||
// NewProcessor returns a new Processor that uses the given federator
|
||||
func NewProcessor(config *config.Config, tc typeutils.TypeConverter, federator federation.Federator, oauthServer oauth.Server, mediaHandler media.Handler, storage *kv.KVStore, timelineManager timeline.Manager, db db.DB) Processor {
|
||||
// NewProcessor returns a new Processor.
|
||||
func NewProcessor(
|
||||
config *config.Config,
|
||||
tc typeutils.TypeConverter,
|
||||
federator federation.Federator,
|
||||
oauthServer oauth.Server,
|
||||
mediaHandler media.Handler,
|
||||
storage *kv.KVStore,
|
||||
timelineManager timeline.Manager,
|
||||
db db.DB,
|
||||
emailSender email.Sender) Processor {
|
||||
fromClientAPI := make(chan messages.FromClientAPI, 1000)
|
||||
fromFederator := make(chan messages.FromFederator, 1000)
|
||||
|
||||
@ -262,7 +275,7 @@ func NewProcessor(config *config.Config, tc typeutils.TypeConverter, federator f
|
||||
accountProcessor := account.New(db, tc, mediaHandler, oauthServer, fromClientAPI, federator, config)
|
||||
adminProcessor := admin.New(db, tc, mediaHandler, fromClientAPI, config)
|
||||
mediaProcessor := mediaProcessor.New(db, tc, mediaHandler, storage, config)
|
||||
userProcessor := user.New(db, config)
|
||||
userProcessor := user.New(db, emailSender, config)
|
||||
federationProcessor := federationProcessor.New(db, tc, config, federator, fromFederator)
|
||||
|
||||
return &processor{
|
||||
|
Reference in New Issue
Block a user