Commit Graph

540 Commits

Author SHA1 Message Date
Jordan Bancino d6f96757bc Apply #52: d_namlen is non-standard. 2023-03-01 21:39:22 +00:00
Jordan Bancino 7a951c980f Cleanup old user interactive auth sessions. 2023-03-01 19:52:44 +00:00
Jordan Bancino 8c4e6aa594 Implement DbList() 2023-03-01 19:33:25 +00:00
Jordan Bancino ce6d483135 Implement static login page. 2023-03-01 19:03:42 +00:00
Jordan Bancino 55b3728e7e Bake the platform name into the version number.
This is helpful as we're porting to different operating systems. I guess
it just makes the porting effort more satisfying. Seeing this header
makes me happy:

Server: Telodendria/0.2.0-Haiku
2023-03-01 03:19:21 +00:00
Jordan Bancino 2b77681763 Move getent check to common.sh 2023-03-01 03:11:10 +00:00
Jordan Bancino dd1b26bad8 Only use getent if the command can be found. 2023-03-01 03:09:46 +00:00
Jordan Bancino 755d08946a Add some more obscure platforms to td build script. 2023-03-01 03:08:53 +00:00
Jordan Bancino e7d1c0d951 Cross-platform code improvements. 2023-03-01 01:55:26 +00:00
Jordan Bancino 2e1220621c Use -pipe, supposedly this speeds things up.
The codebase is getting kind of big, we'll need all the help we can get.
2023-03-01 01:26:34 +00:00
Jordan Bancino 334a711b02 Fix compile error. 2023-03-01 01:23:52 +00:00
Jordan Bancino 2747660473 Add a TODO in Uia 2023-02-28 18:48:43 +00:00
Jordan Bancino 63634407d4 Update TODO.txt, add stub functions in Db. 2023-02-28 18:44:02 +00:00
Jordan Bancino 16c31b63d7 Begin work on static login page. 2023-02-28 17:52:09 +00:00
Jordan Bancino 36169181dd Build basic framework for creating static pages.
The login fallback, as well as the user-interactive authentication
fallbacks, are static HTML pages.
2023-02-28 16:51:40 +00:00
Jordan Bancino fae9eb4473 Implement password-based user interactive authentication. 2023-02-28 15:17:11 +00:00
Jordan Bancino e2806bc810 Add UserIdParse() and UserIdFree() functions.
The spec says that a username can be either just the localpart, or a
localpart and a server. This commit now ensures that the login endpoint
actually handles usernames properly by calling the proper parsing
functions.
2023-02-28 13:44:34 +00:00
Jordan Bancino 58dae3a0c9 Remove user create Admin endpoint, and the associated privilege.
If an admin wants to create a user, he or she should have the ISSUE_TOKEN
privilege. The admin can use that to create a one-time registration token,
and then just use the regular registration API with that token.
2023-02-27 18:02:35 +00:00
Jordan Bancino d89e3fd753 Update TODO 2023-02-27 17:25:39 +00:00
Jordan Bancino 6ce6cb4525 Implement flow handling in Uia API.
This commit should fix user interactive authentication for dummy flows,
but I still have to implement a few more flows, including passwords and
refresh token. I also have to fix the cleanup logic: when do we purge
UIA sessions?
2023-02-27 15:39:12 +00:00
Jordan Bancino 7703405c70 Fix bugs in Json API. 2023-02-26 15:07:46 +00:00
Jordan Bancino 31be432f7a Just discovered some bugs in Json. 2023-02-25 16:35:33 +00:00
Jordan Bancino adea499813 Add UiaFlowsFree() function, and clean up some memory issues. 2023-02-24 14:40:21 +00:00
Jordan Bancino 26b0f33f96 -not is not portable, grep -v should work good enough though. 2023-02-24 02:02:47 +00:00
Jordan Bancino d517b66316 Also delete refrsh token if present for device. 2023-02-24 01:06:02 +00:00
Jordan Bancino b60cac53e5 Make JsonValueString() call StrDuplicate(); refactor code to behave properly. 2023-02-24 00:17:56 +00:00
Jordan Bancino 8c96fd8d7d Begin the great StrDuplicate() refactor. 2023-02-23 23:19:23 +00:00
Jordan Bancino 41421557e0 Update TODO. 2023-02-23 16:46:27 +00:00
Jordan Bancino 4f562167f6 Update TODO 2023-02-23 16:20:15 +00:00
Jordan Bancino b99e8bd1cd Apply modified #50 and fix some misc. bugs. 2023-02-23 15:13:39 +00:00
Jordan Bancino 9e9b5c9cda Fix a write-out-of-bounds error in Json. 2023-02-23 03:46:05 +00:00
Jordan Bancino 3bbff5379f [WIP] Replace UserInteractiveAuth with a new Uia API.
Uia is a lot less characters to type. Do note that this API is far from
complete and this commit breaks user interactive authentication entirely.
2023-02-19 14:58:56 +00:00
Jordan Bancino d81e8f3a32 We're building up some tools; let's print them out in env.sh 2023-02-17 18:26:08 +00:00
Jordan Bancino 3faee8b432 Update TODO items. 2023-02-17 15:03:59 +00:00
Jordan Bancino fa88fc3323 Format source code. 2023-02-17 03:23:25 +00:00
Jordan Bancino ff879e715f Finish implementing token refresh.
This implementation just keeps the refresh token and only updates the
access token. The spec says that this is allowed. There's really no
reason to do this, other than the fact that it's easier.
2023-02-17 03:20:49 +00:00
Jordan Bancino 4b336de171 Build out the User API a bit more. 2023-02-17 03:18:24 +00:00
Jordan Bancino 46fe667988 Add HashMapGetKey() so we can free bucket keys before deleting them. 2023-02-17 03:14:43 +00:00
Jordan Bancino feb11de6b0 Fix some compile warnings. I'll get back to this eventually. 2023-02-16 18:51:10 +00:00
Jordan Bancino 72405a94f6 Add JsonGet(), JsonSet(), and JsonCreate() for convenience. 2023-02-16 18:49:19 +00:00
Jordan Bancino d255ce1a21 Begin working on refresh route. 2023-02-16 17:22:59 +00:00
Jordan Bancino b05e81776a Be smart about the type of man page we generate. 2023-02-16 17:22:32 +00:00
Jordan Bancino c78dc3bd31 Fix a memory bug in StrRandom() with RandIntN().
We're storing integers in this buffer, so we have to allocate enough
memory for them. An integer is usually more than one byte.
2023-02-16 13:10:09 +00:00
Jordan Bancino 38438c297e Looks like Matrix v1.6 is out. 2023-02-16 02:09:57 +00:00
Jordan Bancino 1f1cbc0461 Fix a bad jq parameter. 2023-02-16 02:01:25 +00:00
Jordan Bancino dc566a85b7 Ignore .patch files. 2023-02-16 02:01:14 +00:00
Jordan Bancino 85380efa3c [#48] Fix bug in MatrixGetAccessToken() 2023-02-16 01:33:46 +00:00
Jordan Bancino 2ce43ce457 Add a script for conveniently creating new library man pages. 2023-02-16 00:55:10 +00:00
Jordan Bancino 6735c101ec Add Rand man page. 2023-02-16 00:54:58 +00:00
Jordan Bancino 6a593ab8a0 [#48] Add Rand API and make StrRandom() use it. 2023-02-16 00:31:13 +00:00