D. Berge
80451796e1
Convert expiry time to milliseconds for set-cookie
2020-10-23 14:59:45 +02:00
D. Berge
141d5805ae
Reissue user login tokens when close to expiring
2020-10-23 14:50:35 +02:00
D. Berge
250ffe243d
Fix JWT token time to live.
...
Now half an hour.
2020-10-23 14:49:52 +02:00
D. Berge
59aaacbeee
Apply access restrictions to writable routes
2020-10-12 19:43:07 +02:00
D. Berge
3c86981dc6
Add authorisation middleware.
...
Defines three levels of access:
* read: anyone who is logged in
* write: `user` and `admin` roles
* admin: `admin` roles
2020-10-12 19:42:02 +02:00
D. Berge
5594b6863c
Do not run authentication if headers already sent
2020-10-12 19:41:00 +02:00
D. Berge
7201c29df5
Inject auth middleware after login routes.
...
Routes not requiring authentication must,
self-evidently, go before the authentication
middleware.
2020-10-11 22:11:36 +02:00
D. Berge
947736e8c1
Check code rather than errno.
...
Different versions of that library work
differently.
2020-10-11 22:10:21 +02:00
D. Berge
d782a30e90
Avoid decoding empty cookies
2020-10-11 19:59:28 +02:00
D. Berge
987dbb7700
Handle null/invalid cookies
2020-10-11 19:36:11 +02:00
D. Berge
cdd007ce88
Fix authentification middleware
2020-10-11 19:08:36 +02:00
D. Berge
a38066ec82
Set cookie / user to null if failing to decode JWT
2020-10-11 19:06:57 +02:00
D. Berge
2aca34e488
Read user login info from discrete file.
...
`$DOUGAL_ROOT/etc/users.yaml` to be exact.
2020-10-11 18:21:19 +02:00
D. Berge
324306a77d
Remove logging statement
2020-10-11 18:20:41 +02:00
D. Berge
ab8a66bdcf
Set JWT default options
2020-10-11 17:58:41 +02:00
D. Berge
b3f393a6f1
Make navigation bar user control functional.
...
Shows whether the user is logged in and presents
appropriate options according to whether this is
a manual or automatic login (a manual login is
when the user explicitly logs in with a user name
and password).
2020-10-11 17:57:00 +02:00
D. Berge
1ee886db63
Add login/logout views to frontend
2020-10-11 17:56:32 +02:00
D. Berge
fc9450434c
Read credentials from cookie store when loading app
2020-10-11 17:55:17 +02:00
D. Berge
00f4fcf292
Read credentials from API responses
2020-10-11 17:54:34 +02:00
D. Berge
0512ac2c3c
Add user module to Vuex store
2020-10-11 17:53:39 +02:00
D. Berge
dd32982cbe
Add login/logout middleware
2020-10-11 17:52:13 +02:00
D. Berge
a3bfb73937
Add authentication middleware.
...
The user is authenticated by one of the following
methods, in order of priority:
* The presence of a valid JWT.
* Its IP.
* Its hostname.
In the case of the latter two methods, if authentication
is successful a JWT valid for 15 minutes will be generated
and passed back to the user in a cookie.
2020-10-11 13:11:43 +02:00
D. Berge
e0cd52f21a
Replace favicon
2020-10-11 12:17:40 +02:00
D. Berge
d902806c32
Replace logo
2020-10-11 12:08:00 +02:00
D. Berge
f3e171264c
Fix development websocket URL
2020-10-09 18:10:14 +02:00
D. Berge
6e7016e2ac
Merge branch '59-planner' into 'devel'
...
Resolve "Planner"
Closes #59
See merge request wgp/dougal/software!2
2020-10-09 15:58:06 +00:00
D. Berge
c0e25ac36f
Allow editing fsp/lsp in planner.
...
This is a very basic implementation and doesn't
check that the points are indeed valid.
A proper solution is to request the list of preplots
for that line from the server and validate against those.
2020-10-09 15:09:43 +02:00
D. Berge
2031922d68
Update line names when renumbering sequences
2020-10-09 15:04:45 +02:00
D. Berge
aeae758744
Let patch regenerate line name.
...
If the user sends a patch to a line with
a `name` which is exactly `null` or the
empty string `""`, the server will regenerate
the name based on the defaults script.
2020-10-09 15:02:31 +02:00
D. Berge
b7f65c4f78
Fix transaction handling
2020-10-09 15:01:42 +02:00
D. Berge
eb582863bb
Move auxiliary functions to a separate file.
...
So they can be reused.
2020-10-09 15:00:01 +02:00
D. Berge
5415e81334
Avoid conflict when decrementing sequence numbers
2020-10-09 14:06:38 +02:00
D. Berge
9fd48c6a5a
Show planned lines on map
2020-10-09 13:59:59 +02:00
D. Berge
851a076c06
Implement editing of most planned sequence details
2020-10-09 13:59:11 +02:00
D. Berge
72922560d2
Add GeoJSON output of planned lines
2020-10-09 13:58:11 +02:00
D. Berge
60ff4f57b1
Allow patching planned sequence name
2020-10-09 13:57:12 +02:00
D. Berge
22b7aa5112
Use view instead of ad-hoc query
2020-10-09 13:56:29 +02:00
D. Berge
ba8eeb82d3
Listen for planner events
2020-10-09 13:55:34 +02:00
D. Berge
6e7ba82ed3
Add planner elements to DB schema
2020-10-09 13:54:45 +02:00
D. Berge
6f521d1968
Add explanatory text to planner's no-data message
2020-10-08 17:06:04 +02:00
D. Berge
bc54d4ad59
Add option to add sequence to planner as reshoot
2020-10-08 16:40:52 +02:00
D. Berge
c4915e43d7
Add option to append line to planner
2020-10-08 16:40:52 +02:00
D. Berge
a8fa238e68
Add planner component to site
2020-10-08 16:40:52 +02:00
D. Berge
d86a5a2feb
Add planner frontend component
2020-10-08 16:40:52 +02:00
D. Berge
63254a6bf7
Add planner endpoints
2020-10-08 16:40:52 +02:00
D. Berge
2a19caf219
Fix SQL error in QC shots selection query
2020-10-06 19:58:55 +02:00
D. Berge
6d427c4b1a
Update version in package-lock
2020-10-06 19:48:59 +02:00
D. Berge
eb6329e6f7
Catch DB connection errors.
...
If we can't connect straight away (either first time
or after a disconnection), keep retrying until we
manage.
2020-10-06 19:44:07 +02:00
D. Berge
2486cb3944
Monitor for disconnection from DB.
...
The events listener now listens to the 'end' event from
the PostgreSQL driver and will attempt to reconnect if
we get disconnected.
2020-10-06 19:22:56 +02:00
D. Berge
739cf4b9ec
Add missing triggers in preplot, raw and final tables
2020-10-06 19:19:35 +02:00