Vincent Ambo
c5833c02e2
fix(db): Order index threads in descending post time
...
Technically the last post date should matter more here, but we'll get
there.
2018-04-09 23:41:21 +02:00
Vincent Ambo
103a59485f
feat(handlers/templates): Add "New Thread" handler and template
2018-04-09 23:37:41 +02:00
Vincent Ambo
fb7df7a346
feat(templates): Slightly less barebones index & thread templates
2018-04-09 23:37:21 +02:00
Vincent Ambo
7c73949066
feat(handlers): Extract & add author to thread and post information
2018-04-09 09:20:27 +02:00
Vincent Ambo
64453ec683
feat(main): Initialise RequireLogin middleware on launch
2018-04-09 09:11:25 +02:00
Vincent Ambo
ef5e8ec8bd
feat(handlers): Add RequireLogin middleware
...
Adds a middleware that automatically redirects users to the login page
if they don't have an active session (i.e. 'author' set).
2018-04-09 09:11:23 +02:00
Vincent Ambo
d91dec28f8
fix(main): Generate random session key
2018-04-09 09:10:36 +02:00
Vincent Ambo
c07c466219
docs(todo): Add TODO list
2018-04-08 22:57:24 +02:00
Vincent Ambo
9eb8501fae
feat(handlers): Use cookie session backend to store author info
2018-04-08 22:56:29 +02:00
Vincent Ambo
e761b2d295
feat(templates): Display author information in templates
2018-04-08 22:38:06 +02:00
Vincent Ambo
1c4d436eae
feat(main): Configure & start OIDC actor when Converse launches
2018-04-08 22:37:52 +02:00
Vincent Ambo
a63bc782b0
feat(handler): Implement OIDC login & callback handlers
2018-04-08 22:37:36 +02:00
Vincent Ambo
115f50ae37
chore(models/schema): Update with author fields
2018-04-08 22:37:21 +02:00
Vincent Ambo
249f17b60a
feat(oidc): Implement initial OIDC actor
...
Implements an actor that can perform OAuth2 logins (not really
OIDC-compliant yet because Rust doesn't have an easy to use JWT
library that supports JWKS, and I don't have time for that right now).
Currently this hardcodes some Office365-specific stuff.
2018-04-08 22:36:34 +02:00
Vincent Ambo
da33786939
feat(migrations): Add author columns to tables
...
Adds columns for author names and emails to both threads and posts.
"Users" don't (yet? who knows!) exist as independent entity in
Converse, they are simply "inferred" via OIDC providers.
2018-04-08 20:27:22 +02:00
Vincent Ambo
ef5f7af89c
feat(templates): Add shitty little response form in thread view
2018-04-08 20:20:17 +02:00
Vincent Ambo
cf636077e6
feat(handlers): Add reply_thread handler for posts
2018-04-08 20:20:05 +02:00
Vincent Ambo
148dfc39c8
feat(db/models): Add handling of CreatePost message
2018-04-08 20:19:46 +02:00
Vincent Ambo
55b28f8136
feat(templates): Add a shitty thread submission form
2018-04-08 20:01:41 +02:00
Vincent Ambo
094b1e0722
feat(handlers): Add thread submission handler
2018-04-08 20:01:32 +02:00
Vincent Ambo
fc7ca2900d
feat(db): Support CreateThread message
2018-04-08 19:41:28 +02:00
Vincent Ambo
f281749b8c
feat(migrations): Default 'posted' columns to NOW()
2018-04-08 19:29:56 +02:00
Vincent Ambo
15d460bab3
refactor(db): Use ConverseError instead of unwrapping/expecting
2018-04-08 19:22:42 +02:00
Vincent Ambo
fdc1abe7cc
feat(errors): Introduce error module with custom error type
...
Introduces an error type using the failure crate. This type has
foreign error links established to various errors that can occur
within Converse.
2018-04-08 19:21:56 +02:00
Vincent Ambo
c8cee945c5
refactor(main): Move handlers into separate handler module
2018-04-08 19:21:41 +02:00
Vincent Ambo
67a0642f8c
feat(main): Support CONVERSE_BIND_HOST environment variable
2018-04-08 18:44:41 +02:00
Vincent Ambo
a1a6b77fdf
refactor(main): Use actix-web extractor pattern
2018-04-08 18:42:01 +02:00
Vincent Ambo
316036b0a8
refactor(db): Establish Post->Thread association
...
This makes it possible to query posts by thread via Diesel.
2018-04-08 18:30:01 +02:00
Vincent Ambo
6e56f8e729
feat(main/templates): Add barebones single-thread view
2018-04-08 18:02:01 +02:00
Vincent Ambo
7dca9183c5
feat(db): Add initial GetThread message
...
Adds a GetThread message that returns a thread by ID. This does not
yet load posts.
2018-04-08 17:42:14 +02:00
Vincent Ambo
3db069c60d
feat(main): Add support for Tera templates
...
Sets up the structure required to carry Tera templates in the
actix-web state.
The (still very barebones) index renderer has been updated to render a
Tera template.
2018-04-08 17:30:03 +02:00
Vincent Ambo
b83dd99e30
chore(cargo): Add dependency on tera
...
Adds tera as the templating engine.
2018-04-08 17:14:38 +02:00
Vincent Ambo
1402cfd948
feat(main): Add barebares thread listing
...
This ties together the first components here (actix, diesel etc.) to
provide a _very_ simple thread overview.
2018-04-08 17:05:28 +02:00
Vincent Ambo
36e520a2b2
feat(db): Implement ListThreads message
...
Implements support for a message for listing threads. This does not
have any pagination support yet.
2018-04-08 17:04:45 +02:00
Vincent Ambo
bea6eb8eb3
feat(db): Bootstrap DbExecutor actor
...
Bootstraps an Actix actor carrying DB connections. This actor will be
used to interact with converse's database.
2018-04-08 16:41:34 +02:00
Vincent Ambo
5604d933e8
feat(main): Add minimal thread listing example
2018-04-08 16:08:26 +02:00
Vincent Ambo
f3f509d463
feat(main): Bootstrap project entrypoint
...
This doesn't really do anything yet.
2018-04-08 15:49:27 +02:00
Vincent Ambo
72691c8d63
feat(models/schema): Map up posts & threads table
2018-04-08 15:49:19 +02:00
Vincent Ambo
042eb88fd7
feat(migrations): Add posts & threads tables
2018-04-08 15:48:56 +02:00
Vincent Ambo
106ade6e41
chore: Add bootstrapped Cargo project
2018-04-08 15:48:49 +02:00
Vincent Ambo
2fd8fa2321
chore: Initial commit
2018-04-08 15:48:38 +02:00