c2eef9cf7c
Refactoring away from main package
...
cacert-boardvoting/pipeline/head There was a failure building this commit
This commit is a refactoring of code that has been located in the main
package. We introduce separate packages for the main application, jobs,
notifications, and request handlers.
Dependencies are injected from the main application, this will make
testing easier.
2022-10-15 19:58:58 +02:00
57fd5364fc
Fix golangci-lint warnings
...
- fix spelling
- mark false positives of bodyclose (see
https://github.com/timakin/bodyclose/issues/30 )
2022-09-26 17:18:09 +02:00
c1c9ed5dec
Fix golangci-lint warnings
2022-09-26 11:58:36 +02:00
be77e5f05d
Make remind voter job useful
2022-06-04 19:30:07 +02:00
f966cbd62f
Implement user creation and voter management
2022-06-04 19:00:57 +02:00
39bd724381
Switch routing to chi
...
Routing with httprouter and alice became a bit too complex. This commit
replaces the routing and middleware composition with chi.
2022-06-04 14:48:24 +02:00
de4c6faef6
Implement email address deletion
2022-06-04 13:53:07 +02:00
99a2cde144
Improve flash message handling
2022-06-04 13:52:53 +02:00
be14a37b4d
Implement add email address
2022-06-03 20:57:20 +02:00
a5475ec16e
Implement user editing
2022-06-02 23:14:38 +02:00
5efc57d2c3
Implement user deletion
...
- add audit logging for user changes
- refactor model errors into functions
- implement user delete form and submit handlers
2022-06-01 18:57:38 +02:00
db52f88e25
Implement user list
2022-05-29 20:46:52 +02:00
c625b6dc9e
Add TODO tags for handlers that have no implementation
2022-05-29 15:47:18 +02:00
7f0b52c5b5
Fix linter warnings
2022-05-29 15:43:45 +02:00
368bd8eefb
Remove old code
...
- remove the old code and its dependencies
- perform some refactoring and fix notifications
- add TODO tags for observed shortcomings
- rename voters.go to users.go
- implement health check for SMTP connection
2022-05-29 15:36:27 +02:00
28ddbd2ce6
Implement motion withdraw
2022-05-29 12:01:58 +02:00
c12aaf4d89
Implement proxy voting
2022-05-27 20:45:04 +02:00
0c02daf29a
Implement direct voting
2022-05-27 17:40:01 +02:00
164495c818
Improve design
...
- improve icons
- implement VoteChoice and VoteStatus as real types with Scanner and Value
methods
2022-05-27 14:42:39 +02:00
2b98712aa8
Implement motion editing
2022-05-26 21:04:47 +02:00
335ce16547
Add tests for handlers and middleware
...
- drop migration 2022052601_drop_unused_decisions_colums because it was implicitly part of an earlier migration
- add /health endpoint for database health check
- add tests for the health check endpoint
- add tests for middleware secureHeaders, logRequest and tryAuthenticate
- add models.UserModel.CreateUser method
2022-05-26 19:22:56 +02:00
c3d0733e27
Replace gorilla/csrf with justinas/nosurf
...
- replace dependency for less indirect dependencies
- remove unused configuration options
2022-05-26 17:25:25 +02:00
257a777e03
Add Cache-Control for authenticated pages
2022-05-26 17:05:47 +02:00
d5d7525a31
Tighten http timeout settings
2022-05-26 16:53:52 +02:00
1695ce0168
Implement small improvements
...
- fix golangci-lint warnings
- start setup for user management
- nicer formatting of user login information
2022-05-26 16:47:57 +02:00
47092bfa9b
Implement flash messages
...
- configure session cookie security
- setup flash message handling in newTemplateData
- show flash message in base.html
- add flash message for new motion
2022-05-26 16:30:30 +02:00
f8fbf00c4d
Refactor new motion form processing
...
- extract form parsing into helper method app.decodePostForm
- extract field checks into form.Validate
2022-05-26 16:06:31 +02:00
a1a66b7245
Finish new motion create implementation
...
- rename config block mail_server to mail_config
- rename smtp server settings
- move mail notification settings to mail_config
- improve navigation templates
- prepare routes for user management
2022-05-26 15:27:25 +02:00
aa3a1b0cc7
Implement database mapping for vote types
2022-05-22 21:47:27 +02:00
e1af6876c1
Implement new motion form
...
- add session handler
- add form decoder from go-playground
- implement custom decoder for VoteType
2022-05-22 21:15:54 +02:00
47af34f1cd
Use httprouter.NotFound and httprouter.PanicHandler
2022-05-22 15:00:50 +02:00
0ad88fe5f4
Implement motion detail view
...
- add httprouter for parameterized routing
- improve styling
- add routes and handlers
- implement motion detail handler
2022-05-22 14:08:02 +02:00
44a6180a09
Use alice to chain middleware
2022-05-22 12:23:42 +02:00
2ddc013c84
Add panic recovery middleware
2022-05-22 12:19:25 +02:00
c0a73494c3
Add request logging
2022-05-22 12:06:23 +02:00
4ce321dc36
Implement security headers and HTTPS
2022-05-22 11:02:37 +02:00
c4c64d0202
Add output buffering for rendered pages
2022-05-21 21:02:15 +02:00
65cce5b723
Use embedded templates
2022-05-21 20:57:32 +02:00
ff93acb65c
Refactorings
...
- fix typo in nav.html and template functions
- implement template cache and render function
- refactor motion list methods to reduce cyclomatic complexity
2022-05-21 20:49:35 +02:00
ec7623a51a
Implement timestamp pagination for motion list
2022-05-21 19:18:17 +02:00
49295d2caa
Add context to model methods
2022-05-21 14:27:46 +02:00
3346cb5dba
Fix golangci-lint warnings
2022-05-21 14:09:19 +02:00
68d6f4bcdc
Reimplement decision close job
2022-05-21 13:51:17 +02:00
01b95f2253
Start notification job refactoring
2022-05-15 20:10:49 +02:00
ec7d2fe324
Start refactoring to packages
2022-05-09 21:09:24 +02:00
8d0d968441
Start move to new directory structure
...
- create cmd/boardvoting/main.go
- adapt .goreleaser.yml and Makefile to use cmd/boardvoting for the main
package
2022-05-08 19:17:40 +02:00