Commit graph

51 commits

Author SHA1 Message Date
Firstyear da1af02f2b
3 authentication (#79)
This adds support for authentication and credential storage to the server. 
It also adds account recovery and options for integration test fixtures, refactors
to make the client library easier to manage, and support clean seperation of the
proto vs lib.
2019-09-04 11:06:37 +10:00
Firstyear d0e62ad85a
20190730 66 value types (#76)
This implements strongly typed storage of data types in attribute values. This means that have the future ability to have tagged, hidden, complex or other datatypes in values rather than relying on string manipulations. It helps also to lift the burden on schema to only checking the values types on input from the protocol types, so that comparisons and other conversions will be faster. It also helps to strengthen and check values are valid earlier in conversions.
2019-08-27 09:36:54 +10:00
William Brown 8a32ecffcb cargo fmt 2019-07-29 16:09:18 +09:00
William Brown 9ce4831903 Clean all codebase warnings 2019-07-29 16:09:09 +09:00
William Brown 96beb3070e Finish up todo audit 2019-07-28 20:18:25 +09:00
William Brown 0fbd181f9f Open tickets for most todos, fix more. 2019-07-27 15:54:31 +09:00
William Brown ed99da58d0 Large todo cleanup, but not done yet ... 2019-07-26 17:13:58 +09:00
William Brown 8cc25b8374 Complete system protected objects implementation. This allows class: system
to be tagged to types that should not be externally edited.
2019-07-20 18:20:29 +09:00
William Brown c7c88d6965 Dynamic schema. This allows classes and attributes to be added and modified "live",
so that restarts to affect object schema are not required. This is good to allow
customisation and other extensions for advanced users, and doing it now makes it
"easier" to supply extra schema from the project core into the initialise_idm function.
2019-07-20 18:20:29 +09:00
Firstyear 94a6bde269
20190607 authentication (#55)
Implement #2 anonymous authentication. This also puts into place the majority of the authentication framework, and starts to build the IDM layers ontop of the DB engine.
2019-07-12 15:28:46 +10:00
Firstyear 426426a18f
Implement Access Control Profiles (#52)
This implements access controls, including a huge amount of refactor to support
them and their resolution with the "SelfUUID" keyword. Additionally, parts of
the event structure was improved to help, normalised was added as an entry state
and more.

And there are access controls! They work, have tests, and appear sane.
2019-06-07 11:19:09 +02:00
Firstyear 55008cd551
20190510 access profiles foundations (#51)
* Large refactor to improve the ava get interface

* Improve ACP parsing test

* ACP parsing complete

* Fix txn type tech debt

* Clean up queryserver name issue

* Integrate acp to query server, and add reload hooks

* Starting to write search acp enforcement

* Refactor event to take entry rather than UUID to allow acp to filter on the event properly.

* Most of the filter refactor is done

* Finish filter refactor!

* Write and implement basic filter optimiser with redundant term folding
2019-05-24 15:11:06 +10:00
Firstyear 44dc66713c
20190508 UUID on entry (#50)
* Make UUID a proper type on entries

* Add auth and ID data to relevant structures - this means we can start access controls!
2019-05-15 10:36:18 +10:00
Firstyear 9eca06c3e2
Implement memberof with direct/indirect tracking and testcases. (#48)
* Implement memberof with direct/indirect tracking and testcases.
2019-05-08 10:39:46 +10:00
William Brown b4ea4fff89 Fix a large number of expect and unwrap locations in the codebase 2019-05-01 14:08:10 +10:00
Firstyear ff828e4f4a
Add DBVersioning for entries (#47) 2019-05-01 14:06:22 +10:00
Firstyear 3bbe9943c0
20190421 refint (#46)
* Add test framework for refint, add the create tests
2019-04-27 16:26:08 +10:00
William Brown 4ab377ec88 Update to rust 2018 and improve some todo notes 2019-04-18 11:28:33 +10:00
Firstyear af9ac8f662
20190405 refint precursors (#40)
* Improved validation errors

* Fix some audit issues

* Make verify RO

* Added verify and plugin verify hooks

* Update plugin testing framework

* Update designs and macros
2019-04-17 13:00:03 +10:00
William Brown 057c0e8baf fmt 2019-03-20 15:33:22 +10:00
William Brown e2b3086278 Add UUID resolution to clone_val0ue 2019-03-20 15:30:34 +10:00
William Brown f858e6b5c4 Add modify and entry transformers 2019-03-17 13:24:27 +10:00
William Brown b148f353e3 fmt 2019-03-12 15:40:25 +10:00
William Brown 658e409d90 Most changes for state validated modlist done, just need to write the validate! 2019-03-12 15:20:08 +10:00
William Brown 108a097bd0 Improve test warnings (again) 2019-03-05 15:49:48 +10:00
William Brown cbc675c7bb Clean up unused imports 2019-03-01 16:35:06 +10:00
William Brown 9c0aaa072a Update schema check to be cleaner 2019-02-25 15:48:37 +10:00
William Brown 62ec6dd603 Fix most of the error handling, but now may need to fix schema validation check of candidates 2019-02-25 15:25:21 +10:00
William Brown 71f4becd5f fmt 2019-02-24 14:15:37 +10:00
William Brown 341f7cd0c5 Recycle lifecycle mostly done 2019-02-24 14:15:28 +10:00
William Brown 651abe3762 Improve filter validation code 2019-02-12 13:56:47 +10:00
William Brown a22c8d56aa Major rework of filter to have a valid/invalid state type associated 2019-02-11 19:49:15 +10:00
William Brown 63e600d49e cargo fmt 2019-01-29 17:17:28 +10:00
William Brown 66e087787a Fixed all test! 2019-01-29 16:52:42 +10:00
William Brown a064f87076 State refactor complete, fixing tests ... 2019-01-29 16:24:30 +10:00
William Brown 00a58bbda3 State refactor complete, fixing tests ... 2019-01-29 16:17:02 +10:00
William Brown e69f0b5624 Progress on error janitoring 2019-01-28 19:16:53 +10:00
William Brown 39b0b8b240 Converted to Entry type checker, now to fix tests 2019-01-28 18:02:42 +10:00
William Brown bf69cb89ec Converted to Entry type checker, now to fix tests 2019-01-28 17:53:58 +10:00
William Brown 7618e902cd Move normalise and validate from schema to entry for state machine 2019-01-28 15:10:28 +10:00
William Brown 3b3f5dc6d5 Working modify internal and migrations 2019-01-28 13:54:17 +10:00
William Brown 764695db4a Working backend delete 2019-01-23 16:25:10 +13:00
William Brown cda4868533 Fix my delusion that ldap filters are parseable. They are not. 2019-01-21 15:08:56 +13:00
William Brown b91aae4428 fmt 2019-01-20 13:46:17 +13:00
William Brown 7fa2fccd15 Add filter from attrs 2019-01-20 13:45:49 +13:00
William Brown 3ad0f0ca28 Finished major transaction refactor 2019-01-20 13:45:49 +13:00
William Brown 973bb5c39f fmt 2018-12-29 22:06:15 +10:00
William Brown ce413a3c66 Clean up and fixes 2018-12-29 22:05:54 +10:00
William Brown b888d9036f Fix logging 2018-12-29 19:56:03 +10:00
William Brown e26081dad5 Working uuid test case for simple create case 2018-12-29 12:29:10 +10:00