aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a default CSPLibravatarLibravatar Simon Ser 2019-12-181-0/+7
| | | | | Disallows loading external ressources. Providers can override it with their reverse proxy settings.
* Implement paging for searchLibravatarLibravatar Simon Ser 2019-12-173-16/+30
|
* Document that plugins don't have access to passwordsLibravatarLibravatar Simon Ser 2019-12-171-0/+3
|
* Make Go plugin handlers take a *ContextLibravatarLibravatar Simon Ser 2019-12-172-38/+25
| | | | | Take a *Context instead of a echo.Context. This saves a type assertion in each handler.
* Add Context to Plugin.InjectLibravatarLibravatar Simon Ser 2019-12-174-7/+7
| | | | This allows to access the request metadata and the session from injectors.
* Add RenderData interfaceLibravatarLibravatar Simon Ser 2019-12-175-27/+57
| | | | This allows Go plugins to easily inject global data.
* Rename RenderData to BaseRenderDataLibravatarLibravatar Simon Ser 2019-12-172-12/+12
| | | | RenderData will be used for an interface.
* Allow Go Plugins to inject template dataLibravatarLibravatar Simon Ser 2019-12-171-0/+21
|
* Allow Lua plugins to inject all templatesLibravatarLibravatar Simon Ser 2019-12-172-2/+9
|
* Use Context.FormParamsLibravatarLibravatar Simon Ser 2019-12-171-2/+4
|
* Linkify address listsLibravatarLibravatar Simon Ser 2019-12-173-12/+17
|
* Redirect / to INBOXLibravatarLibravatar Simon Ser 2019-12-171-0/+4
|
* Add a form to set message flagsLibravatarLibravatar Simon Ser 2019-12-176-24/+133
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/36
* plugins/base: extract route registration into functionLibravatarLibravatar Simon Ser 2019-12-172-28/+30
|
* themes/sourcehut: use formatdate template funcLibravatarLibravatar Simon Ser 2019-12-171-2/+2
|
* Add envelope metadata to message viewLibravatarLibravatar Simon Ser 2019-12-173-11/+52
|
* Improve docsLibravatarLibravatar Simon Ser 2019-12-173-8/+33
|
* Add button to delete messageLibravatarLibravatar Simon Ser 2019-12-163-0/+47
| | | | | | Maybe we should add a confirmation step in the future. References: https://todo.sr.ht/~sircmpwn/koushin/36
* Add form to move messagesLibravatarLibravatar Simon Ser 2019-12-165-2/+59
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/36
* Update depsLibravatarLibravatar Simon Ser 2019-12-162-33/+25
|
* Export IMAPMessageLibravatarLibravatar Simon Ser 2019-12-162-16/+16
| | | | This is a public type other plugins and templates may want to access.
* Add attachments support to composerLibravatarLibravatar Simon Ser 2019-12-163-9/+57
| | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/13
* go fmtLibravatarLibravatar Simon Ser 2019-12-163-4/+4
|
* Use <label> in compose formLibravatarLibravatar Simon Ser 2019-12-162-9/+12
|
* Add basic searchLibravatarLibravatar Simon Ser 2019-12-165-9/+74
| | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/23
* Add line break to login formLibravatarLibravatar Simon Ser 2019-12-161-0/+1
|
* Replace Session.ConnectSMTP with Session.DoSMTPLibravatarLibravatar Simon Ser 2019-12-162-16/+19
| | | | | This gives more flexibility in Session for optimizations, e.g. keep the SMTP connection around for some time if possible.
* Rename Session.Do to Session.DoIMAPLibravatarLibravatar Simon Ser 2019-12-162-6/+6
|
* Remove the public/ directoryLibravatarLibravatar Simon Ser 2019-12-1615-7/+18
| | | | | Now that all templates are provided by plugins, there's no need to have a public/ directory. Themes can be in /themes instead of /public/themes.
* Introduce base pluginLibravatarLibravatar Simon Ser 2019-12-1622-450/+521
| | | | | | This plugin offers base IMAP/SMTP functionality. References: https://todo.sr.ht/~sircmpwn/koushin/39
* Add an API for Go pluginsLibravatarLibravatar Simon Ser 2019-12-163-1/+111
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/39
* gitignore: don't ignore sourcehut themeLibravatarLibravatar Simon Ser 2019-12-121-2/+3
|
* Add simple Sourcehut-based themeLibravatarLibravatar Drew DeVault 2019-12-1211-4/+5967
|
* Fix undefined ErrSessionExpiredLibravatarLibravatar Simon Ser 2019-12-122-2/+2
| | | | Fixes: f07ab5263246 ("Add docs")
* Add docsLibravatarLibravatar Simon Ser 2019-12-114-4/+26
|
* Allow plugins to provide their own templatesLibravatarLibravatar Simon Ser 2019-12-114-8/+27
|
* readme: add godoc badgeLibravatarLibravatar Simon Ser 2019-12-111-0/+2
|
* Export Server.{Sessions,Plugins}LibravatarLibravatar Simon Ser 2019-12-114-13/+12
| | | | And unexport a few internal functions.
* Unexport NewSessionManagerLibravatarLibravatar Simon Ser 2019-12-112-2/+2
| | | | This isn't intended to be used by plugins.
* Export Context.SetSession, unexport Session.TokenLibravatarLibravatar Simon Ser 2019-12-113-10/+10
| | | | | | | I'm uneasy exposing the token to plugins, I prefer to hide it if possible to prevent mis-use. This change allows plugins to logout users.
* Export ContextLibravatarLibravatar Simon Ser 2019-12-113-29/+34
| | | | This allows plugins to access it.
* Add plugins/ to .gitignoreLibravatarLibravatar Simon Ser 2019-12-101-0/+1
|
* go fmtLibravatarLibravatar Simon Ser 2019-12-103-17/+17
|
* Introduce GlobalRenderData and RenderDataLibravatarLibravatar Simon Ser 2019-12-102-7/+40
| | | | | | | | GlobalRenderData contains some global metadata that can be obtained from any template. RenderData is a base type for template data. It contains a Global field with global metadata and an Extra field for plugins.
* Load all themes on startupLibravatarLibravatar Simon Ser 2019-12-101-13/+54
| | | | This is the first step to allow each user to have a different theme.
* readme: add link to mailing list & issue trackerLibravatarLibravatar Simon Ser 2019-12-101-0/+5
|
* Rename Plugin.Render to Plugin.InjectLibravatarLibravatar Simon Ser 2019-12-103-3/+3
| | | | | This function doesn't render anything, it just adds extra data to the template data.
* Extract Lua plugin logic into separate fileLibravatarLibravatar Simon Ser 2019-12-102-151/+158
|
* Allow plugins to add new routesLibravatarLibravatar Simon Ser 2019-12-103-0/+40
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/6
* Reconnect to IMAP server when logged outLibravatarLibravatar Simon Ser 2019-12-093-20/+90
| | | | | | | | | | | | | | | The session manager has been upgraded to deal with reconnections. Each session has its own expiration timer. Each time a request is received, the expiration timer is reset. A session can be closed (this is used when the user wants to logout). When the IMAP connection is closed by the server, it's set to nil in the session. The next time an IMAP command needs to be issued, the connection is re-established. Closes: https://todo.sr.ht/~sircmpwn/koushin/30