Previously, proxied and local images were checked for presence in the
storage before previewing or posting the comment. That logic resulted in
an inability to post with an image when a proxy for images is enabled,
as proxied images are not downloaded to disk before the first time
someone loads them, which could only happen after the user either
previews or posts the message.
After this change, preview and post only checks the local images'
presence and ignore the proxied ones.
Previous behaviour is preserved for query parameters way of requesting
the subscription. The new behaviour with the possibility to confirm
the email right away without a separate /email/confirm call is enabled
only with request params sent in the request body, which was not a thing
before 27fc339e, which was merged just now and is not part
of any tagged version yet.
I haven't found a linter for these, so I had to catch these manually.
I found #757 to fix one of these, and I thought it would be good
to fix everything at once.
Previously it was done through writing bot first,
clicking a button, copying the token, and pasting
it into the web interface.
The new flow is way simpler: click the link
to write bot a message, then click the "Check"
button in the web UI and you got notifications
enabled.
That function returns an error in a never
expected condition, and that error would be
logged message on the caller side:
none of the callers handles it.
That change hides that error from the caller
so that function would have a signature that
better fit what it does and how it behaves.
* replace store.Locator with SiteID where only it is used
* add EmailSubscription flag to User information
* add /user endpoint test for email subscription
* move email unsubscription page outside of API and make it HTML
* make separate HTML template for SendErrorHTML
* fix error template name
* add test for SendErrorHTML, introduce MustExecute function
* fix content check in test of TestSendErrorHTML
* fix logging test to be more generic and not depend on line numbers
* add API methods for setting and deleting email
* fix service.SetStringUserDetail signature to return string
* switch table test with description to t.Run()
* remove debug logging
* clarify error handling, functions names
* add email integration test
* add information about email subscription to readme
* change email API calls method from PUT to POST
* typo fix, remove unneeded capturing of range variable
* email test draft
* fix notify mock, email notification test draft
* add MockDestination to startupT return
* fix tests
* add email retrieval for notifications sending
* fix mock for notify
* rearrange mock notify declaration
* add GET /email API handler, fix typos
* revert startupT signature change
* get rid of startupTWithDest workaround
* add rest examples for rest notification
* improve email messages formatting
* fix email send repeater location
* remove unneeded context from sendMessage
* change signatures of buildMessage functions to have same field name
* add missing authenticate call on TLS connection
* add dev user auth token to email requests
* change email verification template
* email code and tests cleanup
* replace fixed spaces with normal ones
* human-readable variables names for new comment reply notification
* rename Comment to CommentText
* add html for comment email notification
* fix comment notification html style
* fix email test
* fix notify email messages rendering
* fix comments on rest examples for email
* explicitly state email notify email template fields
* clarify email API documentation
* change email test not to check quoted-printable part of message
* Fix link color, add unsubscribe link
* fix rest examples tokens
* add UnsubscribeLink support to Email
* add unsubscribe email handler
* fix new reply notification email style
* WIP: start with aud verification
* adjust rest test for token's site_id remark42
* add tests for non-matching aud
* fix auth hook test with updates limiter
* check siteID with enabled call for static store
* fix site enabled check
* change vote params to request
* limit voting for the same ip
* limit same ip vote duration
* add same ip vote check for directions
* wire RestrictVoteIP and duration
* add votes-ip and votes-ip-time description
* fresh vendor
* enforce vendor flag with env
* move tree to service package
* move controllers routing to rest.go, remove separate subrouters
* cleanup/formatting
* missing vendor packages
* move rss, img proxy, robots and getstarted to top-level routes
* simplify logger middleware usage
* randomize server test ports
* check for non-admin in admin tests
* lint: minor warns
* admin test to jwt admin