Valentin Tolmer
442c70b6d2
server: Fix panic due to database collation
...
When the database's collation is not "C", the DB order is not the same as the
Rust order. As such, asserting that the elements are in increasing order fails.
However, since both queries get the order from the database, they should be in
the same order.
With too many users, the query had a giant filter `IN (u1, u2, u3,
...)`. In PostgreSQL, we can pass the users as an array instead, but that
doesn't work with SQLite. Instead, we repeat the filter from the
previous query to get the same users/groups, as a subquery.
2024-02-05 15:51:43 +00:00
Austin Alvarado
ee4a62e1e2
server: remove debug print
2024-02-05 15:51:05 +00:00
Valentin Tolmer
5840b3009d
server: Clean up main, make more functions async
2024-02-05 15:51:05 +00:00
Valentin Tolmer
93b4840e93
server: Only call expand_attributes at most once per request
2024-01-23 04:54:31 +00:00
Valentin Tolmer
e0e0da9ebf
server: Treat the database password as a secret
2024-01-23 04:54:31 +00:00
Valentin Tolmer
3316f54133
server: don't error on global searches if only one side fails
2024-01-23 04:54:31 +00:00
Valentin Tolmer
c012c2891b
server: Add the attribute schema to the attributes in graphql
...
And make sure that we only request the schema once per top-level query
2024-01-23 04:54:31 +00:00
Valentin Tolmer
6120a0dca5
server: clean up the attributes, relax the substring filter conditions
...
This consolidates both user and group attributes in their map_{user,group}_attribute as the only point of parsing. It adds support for custom attribute filters for groups, and makes a SubString filter on an unknown attribute resolve to just false.
2024-01-18 05:46:56 +00:00
Valentin Tolmer
6f905b1ca9
server: update ldap3_proto dependency
...
This will fix the issue with some unhandled controls, this time for sure
2024-01-16 17:52:15 +01:00
Valentin Tolmer
2ea17c04ba
server: Move the definition of UserId down to lldap_auth
2024-01-15 23:48:59 +01:00
Valentin Tolmer
9f8364ca1a
server: Fix private key reset functionality
2024-01-14 22:54:13 +01:00
Valentin Tolmer
8b7852bf1c
chore: clippy warnings
2024-01-13 18:32:58 +01:00
Valentin Tolmer
c4be7f5b6f
server: Serialize attribute values when searching
...
This should fix #763 and allow filtering by custom attribute values.
2024-01-13 13:37:46 +01:00
Valentin Tolmer
337101edea
server: update ldap3_proto dependency
...
This will fix the issue with some unhandled controls
2024-01-08 16:10:11 +01:00
Valentin Tolmer
dc140f1675
server: exit with non-zero code when running into errors starting
2024-01-06 00:43:41 +01:00
Valentin Tolmer
708d927e90
server: add a unique index to the memberships
2024-01-03 12:40:24 +01:00
Valentin Tolmer
0d48b7f8c9
server: add support for entryDN
2023-12-31 08:27:25 +01:00
Valentin Tolmer
f2b1e73929
server: Add a check for a changing private key
...
This checks that the private key used to encode the passwords has not
changed since last successful startup, leading to a corruption of all
the passwords. Lots of common scenario are covered, with various
combinations of key in a file or from a seed, set in the config file or
in an env variable or through CLI, and so on.
2023-12-29 15:37:52 +01:00
Valentin Tolmer
ff0ea51121
server: Add an option to force reset the admin password
2023-12-22 08:27:35 +01:00
Valentin Tolmer
2c54ad895d
chore: clippy
2023-12-15 23:37:25 +01:00
Valentin Tolmer
272c84c574
server: make attributes names, group names and emails case insensitive
...
In addition, group names and emails keep their casing
2023-12-15 23:21:22 +01:00
MinerSebas
70d85524db
app: make it possible to serve lldap behind a sub-path
2023-12-07 18:21:49 +01:00
Valentin Tolmer
4f72153bd4
server: Disallow deleting hardcoded attributes
2023-11-05 16:19:04 +01:00
Valentin Tolmer
829c3f2bb1
server: Prevent regular users from modifying non-editable attributes
2023-11-05 16:06:45 +01:00
Valentin Tolmer
504227eb13
server: Add JWTs to the DB
...
Otherwise, logging out doesn't actually blacklist the JWT
2023-10-30 21:59:48 +01:00
Valentin Tolmer
1fddd87470
server: Simplify RequestFilter's TryInto
2023-10-30 11:31:04 +01:00
Valentin Tolmer
c6ecf8d58a
server: Add graphql support for setting attributes
2023-10-22 16:34:15 +02:00
Simon Broeng Jensen
5bd81780b3
server: Add basic support for Paged Results Control (RFC 2696)
...
This implements rudimentary support for the Paged
Results Control.
No actual pagination is performed, and we ignore
any requests for specific window sizes for paginated
results.
Instead, the full list of search results is returned
for any searches, and a control is added to the
SearchResultsDone message, informing the client that
there is no further results available.
2023-10-06 13:52:05 +02:00
Valentin Tolmer
439fde434b
server: Add graphql support for creating/deleting attributes
2023-10-04 02:07:04 +02:00
Valentin Tolmer
2a5fd01439
server: add support for creating a group with attributes
2023-09-29 02:31:20 +02:00
Valentin Tolmer
2c398d0e8e
server: Add domain support for creating/deleting attributes
2023-09-29 02:31:20 +02:00
Valentin Tolmer
93e9985a81
server: rename SchemaBackendHandler -> ReadSchemaBackendHandler
2023-09-29 02:31:20 +02:00
Valentin Tolmer
3fadfb1944
server: add support for creating a user with attributes
2023-09-25 01:57:24 +02:00
Valentin Tolmer
81204dcee5
server: add support for updating user attributes
2023-09-25 01:57:24 +02:00
Valentin Tolmer
39a75b2c35
server: read custom attributes from LDAP
2023-09-15 15:26:18 +02:00
Valentin Tolmer
8e1515c27b
version: bump to 0.5.1-alpha
2023-09-15 00:52:33 +02:00
Valentin Tolmer
6f04530700
release: 0.5.0
2023-09-14 20:36:32 +02:00
Valentin Tolmer
caf67fdf2b
server: Ensure uuid version is at least 1
2023-09-14 20:36:32 +02:00
Valentin Tolmer
034794d58d
server: return user-defined attributes for groups in graphql
...
Part of #67
2023-09-14 13:02:45 +02:00
Valentin Tolmer
e53ce92c96
server: return attributes in graphql
...
Progress for #67
2023-09-13 22:52:08 +02:00
Valentin Tolmer
208cc7192e
server: Only create the default admin if there are no admins
...
Fixes #563
2023-09-12 15:54:18 +02:00
Valentin Tolmer
b54bf3c4d5
server: clean up database-mapped types
2023-09-11 17:09:49 +02:00
Valentin Tolmer
582abba793
server: clean up user query
...
With the new find_with_linked from sea_orm
2023-09-11 17:09:49 +02:00
Valentin Tolmer
94da42ffb9
server: small cleanup
2023-09-11 17:09:49 +02:00
Valentin Tolmer
08d3aef177
server: Update sea-orm, strum
2023-09-11 17:09:49 +02:00
Valentin Tolmer
7671b61a6b
server: Add support for querying the OUs
2023-09-11 00:58:15 +02:00
Valentin Tolmer
134796aa9f
server: Switch tests to pretty_assertions
2023-09-10 22:29:32 +02:00
Valentin Tolmer
1598f096e9
server: Upgrade ldap3_proto
2023-09-10 22:29:32 +02:00
Valentin Tolmer
99ed6eface
server: Update tracing-forest and take advantage of the span fields
2023-09-10 22:29:32 +02:00
Valentin Tolmer
6cd6b412fe
tests: Use an env variable for the private seed
2023-08-04 17:31:22 +02:00