Commit Graph

1062 Commits

Author SHA1 Message Date
Jens Langhammer ee8313142f Merge branch 'docs-flows'
# Conflicts:
#	passbook/core/templates/partials/form_horizontal.html
2020-06-08 15:43:46 +02:00
Jens Langhammer fc2eb003ea e2e: add apply_default_data to load data from migrations after tables have been truncated 2020-06-07 19:31:16 +02:00
Jens Langhammer aa440c17b7 Merge branch 'master' into e2e 2020-06-07 17:52:51 +02:00
Jens L 4915205678
WIP Use Flows for Sources and Providers (#32)
* core: start migrating to flows for authorisation

* sources/oauth: start type-hinting

* core: create default user

* core: only show user delete button if an unenrollment flow exists

* flows: Correctly check initial policies on flow with context

* policies: add more verbosity to engine

* sources/oauth: migrate to flows

* sources/oauth: fix typing errors

* flows: add more tests

* sources/oauth: start implementing unittests

* sources/ldap: add option to disable user sync, move connection init to model

* sources/ldap: re-add default PropertyMappings

* providers/saml: re-add default PropertyMappings

* admin: fix missing stage count

* stages/identification: fix sources not being shown

* crypto: fix being unable to save with private key

* crypto: re-add default self-signed keypair

* policies: rewrite cache_key to prevent wrong cache

* sources/saml: migrate to flows for auth and enrollment

* stages/consent: add new stage

* admin: fix PropertyMapping widget not rendering properly

* core: provider.authorization_flow is mandatory

* flows: add support for "autosubmit" attribute on form

* flows: add InMemoryStage for dynamic stages

* flows: optionally allow empty flows from FlowPlanner

* providers/saml: update to authorization_flow

* sources/*: fix flow executor URL

* flows: fix pylint error

* flows: wrap responses in JSON object to easily handle redirects

* flow: dont cache plan's context

* providers/oauth: rewrite OAuth2 Provider to use flows

* providers/*: update docstrings of models

* core: fix forms not passing help_text through safe

* flows: fix HttpResponses not being converted to JSON

* providers/oidc: rewrite to use flows

* flows: fix linting
2020-06-07 16:35:08 +02:00
Jens Langhammer 07da5f7122 Merge branch 'master' into docs-flows 2020-06-05 20:30:59 +02:00
Jens Langhammer f91e02a0ec flows: allow username for default flow 2020-06-05 20:30:47 +02:00
Jens Langhammer c62794c738 admin: fix PropertyMapping widget not rendering properly 2020-06-05 20:27:18 +02:00
Jens Langhammer 7664b428e7 sources/ldap: fix expression field not being CodeMirror 2020-06-05 20:18:45 +02:00
Jens Langhammer 9f3f34389e root: update docs URL 2020-06-05 20:18:26 +02:00
Jens Langhammer 30ca926b38 docs: remove last occurrences to jinja2 2020-06-05 20:18:11 +02:00
Jens Langhammer 6a7ffa855e docs: add example for login flow 2020-06-05 17:29:08 +02:00
Jens Langhammer 0c5aff21bc stages/identification: minor UI fixes 2020-06-05 17:02:50 +02:00
Jens Langhammer b0f426e51a core: fix help_text not always being shown on horizontal form 2020-06-05 17:01:46 +02:00
Jens Langhammer 4ff41be74a Merge branch 'master' into docs-flows
# Conflicts:
#	mkdocs.yml
2020-06-05 12:51:10 +02:00
Jens L 73116b9d1a
policies/expression: migrate to raw python instead of jinja2 (#49)
* policies/expression: migrate to raw python instead of jinja2

* lib/expression: create base evaluator, custom subclass for policies

* core: rewrite propertymappings to use python

* providers/saml: update to new PropertyMappings

* sources/ldap: update to new PropertyMappings

* docs: update docs for new propertymappings

* root: remove jinja2

* root: re-add jinja to lock file as its implicitly required
2020-06-05 12:00:27 +02:00
Jens Langhammer 790139f8bc stages/email: Add test to check if user is pending 2020-06-03 21:00:04 +02:00
Jens Langhammer 4824e5c8ba docs: add docs for flows and all stages 2020-06-02 23:52:02 +02:00
Jens Langhammer c4facd53b4 Merge branch 'master' into docs-flows 2020-06-02 20:25:43 +02:00
Jens Langhammer ef913abc7a sources/ldap: add option to disable user sync, move connection init to model 2020-06-02 17:15:59 +02:00
Jens Langhammer 55fc5a6068 policies: rewrite cache_key to prevent wrong cache
# Conflicts:
#	passbook/core/signals.py
#	passbook/policies/engine.py
#	passbook/policies/process.py
2020-06-02 17:06:18 +02:00
Jens Langhammer f22c89c998 crypto: re-add default self-signed keypair 2020-06-02 17:01:15 +02:00
Jens Langhammer 2a78d2d0a0 crypto: fix being unable to save with private key 2020-06-02 17:01:15 +02:00
Jens Langhammer b0ddc6a8c0 admin: fix missing stage count 2020-06-02 17:00:26 +02:00
Jens Langhammer 8080b0380e providers/saml: re-add default PropertyMappings 2020-06-02 17:00:03 +02:00
Jens Langhammer ddfa2abbaa sources/ldap: re-add default PropertyMappings 2020-06-02 17:00:03 +02:00
Jens Langhammer 5fc5e54f47 sources/oauth: fix typing errors
# Conflicts:
#	passbook/sources/oauth/clients.py
2020-06-02 16:57:38 +02:00
Jens Langhammer 7462d56182 policies/engine: add more verbosity 2020-06-02 16:56:58 +02:00
Jens Langhammer 3f92d1c420 flows: Correctly check initial policies on flow with context
# Conflicts:
#	passbook/flows/planner.py
#	passbook/flows/tests/test_planner.py
#	passbook/flows/tests/test_views.py
#	passbook/flows/views.py
2020-06-02 16:53:40 +02:00
Jens Langhammer d4fa60f509 core: only show user delete button if an unenrollment flow exists 2020-06-02 16:44:29 +02:00
Jens Langhammer 052bf88c3d core: create default user
# Conflicts:
#	README.md
2020-06-02 16:42:44 +02:00
Jens Langhammer 07d047c887 stages/identification: fix *_flows missing in edit form 2020-06-02 16:39:55 +02:00
Jens Langhammer 23193314f1 Merge branch 'master' into docs-flows 2020-06-02 15:20:24 +02:00
Jens Langhammer 1912b29dc5 policies/expression: fix lint error 2020-06-02 15:20:02 +02:00
Jens Langhammer c961327d27 stages/identification: fix recovery template 2020-06-01 19:08:14 +02:00
Jens Langhammer fe1ff7fc76 core: fix form not showing general errors 2020-06-01 19:08:01 +02:00
Jens Langhammer 82d12ecfdf policies/expression: use pb_message() for messages instead of returning a tuple 2020-06-01 15:25:38 +02:00
Jens Langhammer 4d1658b35e stages/identification: explicitly define enrollment and recovery 2020-05-31 23:01:08 +02:00
Jens Langhammer 08302a04bf docs: add docs for flows, start docs for stages 2020-05-30 22:36:01 +02:00
Jens Langhammer 27728abe99 e2e: start implementing e2e tests 2020-05-29 00:45:56 +02:00
Jens Langhammer 80a36a3441 stages/user_write: don't use create_user, create empty object and set attributes 2020-05-28 23:22:15 +02:00
Jens Langhammer b1b63fbb7f stages/prompt: add prompt order field 2020-05-28 23:21:43 +02:00
Jens Langhammer fe6bfb1620 stages/identification: fix wrong link 2020-05-28 22:44:42 +02:00
Jens Langhammer e6d64bf5b3 stages/identification: fix sources and recovery/enrollment not being shown 2020-05-28 22:43:44 +02:00
Jens Langhammer 270739a45a admin: fix policy testing form not showing the correct result 2020-05-28 21:50:43 +02:00
Jens L df8995deed
policies/*: remove Policy.negate, order, timeout (#39)
policies: rewrite engine to use PolicyBinding for order/negate/timeout
policies: rewrite engine to use PolicyResult instead of tuple
2020-05-28 21:45:54 +02:00
Jens Langhammer fdfc6472d2 admin: fixup some urls 2020-05-28 10:36:27 +02:00
Jens Langhammer e2804b9755 root: fix linting errors 2020-05-27 11:26:48 +02:00
Jens L beabba2890
flows: Load Stages without refreshing the whole page (#33)
* flows: initial implementation of FlowExecutorShell

* flows: load messages dynamically upon card refresh
2020-05-24 00:57:25 +02:00
Jens Langhammer eeeb14a045 admin: fix urls for applications 2020-05-22 23:22:40 +02:00
dependabot-preview[bot] 73225917cd
build(deps): bump codemirror in /passbook/static/static (#29)
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.53.2 to 5.54.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.53.2...5.54.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-21 19:12:14 +02:00
Jens Langhammer 0664f0b6b2 flows: add support for default_context, etc
default_context can be used to influence policies during the planning. This should be used when the Planner is called from other views to correctly preseed the plan.
This also checks if there is a PENDING_USER set, and uses that user for the cache key instead
2020-05-20 16:15:16 +02:00
Jens Langhammer fab9f1cb1b root: clear cache on debug startup 2020-05-20 16:13:48 +02:00
Jens Langhammer b3c54308b7 policies/expression: validate syntax on form clean 2020-05-20 16:13:36 +02:00
Jens Langhammer c1a72a0474 crypto: fix clean_ methods not returning values 2020-05-20 16:10:12 +02:00
Jens Langhammer 4377d1e86e admin: fix flow ordering, fix source URLs 2020-05-20 16:09:53 +02:00
Jens Langhammer cafe2f1e1f admin: fix linting 2020-05-20 13:59:56 +02:00
Jens Langhammer c329a724e8 admin: fix wrong name in template 2020-05-20 13:55:17 +02:00
Jens Langhammer 969da05437 admin: show object's docstring on inheritance based lists 2020-05-20 13:47:58 +02:00
Jens Langhammer c61c84e9f3 admin: remove inline JS, add CodeMirror widget for jinja and yaml 2020-05-20 13:00:45 +02:00
Jens Langhammer e08c5ff875 helm: fully remove domain, add log_level 2020-05-20 12:16:56 +02:00
Jens L 24a3e787dd
migrate to per-model UUID Primary key, remove UUIDModel (#26)
* *: migrate to per-model UUID Primary key, remove UUIDModel

* *: fix import order, fix unittests
2020-05-20 09:17:06 +02:00
Jens Langhammer 13a20478fd sources/oauth: add OIDC client 2020-05-19 21:53:46 +02:00
Jens Langhammer f58ee7fb52 sources/oauth: fix handling of sources with spaces in their name 2020-05-19 21:53:36 +02:00
Jens Langhammer f6b5fbc2cf admin: fix sidebar 2020-05-19 21:02:10 +02:00
Jens Langhammer db69c3e38d admin: add generic tests 2020-05-19 20:59:43 +02:00
Jens Langhammer 5ba55356a9 admin: cleanup templates, cleanup templatetags 2020-05-19 20:29:02 +02:00
Jens Langhammer c903c81bd5 root: update pylint ignore list 2020-05-18 18:15:39 +02:00
dependabot-preview[bot] 886845306a
build(deps): bump codemirror in /passbook/static/static
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.52.0 to 5.53.2.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.52.0...5.53.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 11:50:33 +00:00
dependabot-preview[bot] b6a0e895bc
build(deps): bump @fortawesome/fontawesome-free
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 5.12.1 to 5.13.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/5.12.1...5.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 11:03:22 +00:00
dependabot-preview[bot] 8c64fcd17f
build(deps): bump @patternfly/patternfly in /passbook/static/static
Bumps [@patternfly/patternfly](https://github.com/patternfly/patternfly) from 2.65.3 to 2.71.6.
- [Release notes](https://github.com/patternfly/patternfly/releases)
- [Changelog](https://github.com/patternfly/patternfly/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/patternfly/patternfly/compare/v2.65.3...v2.71.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 09:49:27 +00:00
Jens Langhammer 753110583e admin: fix incorrect URL 2020-05-17 23:55:42 +02:00
Jens Langhammer 4206a8c43e stages/password: fix button without labeling 2020-05-17 23:55:25 +02:00
Jens Langhammer 7cc9ae45bc static: fix any click on menu triggering collapse 2020-05-17 23:55:13 +02:00
Jens Langhammer 09ef58350c flows: rename AuthenticationStage to StageView as its a general base view 2020-05-17 00:03:06 +02:00
Jens Langhammer 10d3f9ac2f root: rewrite bootstrap in python, remove management command 2020-05-16 22:46:17 +02:00
Jens Langhammer 9a1b8eb7c8 admin: add empty views to all lists, move invitation to stage-invitations 2020-05-16 21:43:48 +02:00
Jens Langhammer 2ee45f388c crypto: validate PEM data before saving 2020-05-16 21:25:10 +02:00
Jens Langhammer 9a9feea5ff static: make hamburger menu work 2020-05-16 21:11:48 +02:00
Jens Langhammer 8540e787d3 admin: fix create buttons disappearing on small screens 2020-05-16 21:11:38 +02:00
Jens Langhammer db26ce808e core: remove policies from application form 2020-05-16 20:48:45 +02:00
Jens Langhammer 802d568273 admin: fix urls applications and sources 2020-05-16 20:48:30 +02:00
Jens Langhammer 7b6524357f stages/user_logout: fix dependency on PENDING_USER 2020-05-16 20:46:21 +02:00
Jens Langhammer 83013f063d core: remove stub data from user settings 2020-05-16 20:45:43 +02:00
Jens Langhammer 333ee3eed4 dc: fix compose, remove SESSION_COOKIE_DOMAIN 2020-05-16 20:39:38 +02:00
Jens Langhammer e68352b09c admin: add flow-stage-bindings, add policy-bindings, add prompts 2020-05-16 19:55:59 +02:00
Jens Langhammer df1cb88abc admin: fix slow load for templates using get_links 2020-05-16 19:00:43 +02:00
Jens L 5596caedbc
Merge pull request #9 from BeryJu/db-reset
DB Reset
2020-05-16 18:20:03 +02:00
Jens Langhammer 7bd65120b9 *: migrate from PolicyModel to PolicyBindingModel, move Policy to passbook_policies 2020-05-16 18:07:00 +02:00
Jens Langhammer 227966e727 core: rename nonce to token 2020-05-16 16:11:53 +02:00
Jens Langhammer 406f69080b Revert "*: providers and sources -> channels, PolicyModel to PolicyBindingModel that uses custom M2M through"
This reverts commit 7ed3ceb960.
2020-05-16 16:02:42 +02:00
Jens Langhammer 2ce31dfaa5 root: upgrade django-dbbackup 2020-05-16 14:54:18 +02:00
Jens Langhammer 7ed3ceb960 *: providers and sources -> channels, PolicyModel to PolicyBindingModel that uses custom M2M through 2020-05-16 14:03:57 +02:00
Jens Langhammer 615cd7870d stages/email: add field to select E-Mail and subject 2020-05-15 14:50:23 +02:00
Jens Langhammer b907105f4a policies/expression: expose python requests via expression, remove webhook policy 2020-05-15 12:02:41 +02:00
Jens Langhammer 023423c6e7 stages/password: show password forgotten prompt when recovery flow configured 2020-05-15 11:01:02 +02:00
Jens Langhammer a5319fc2fe *: rename templatetags to clearly identify 2020-05-15 10:54:31 +02:00
Jens Langhammer 814c797c64 stages/prompt: add policy verification logic 2020-05-14 15:48:23 +02:00
Jens Langhammer 776ad3cfbf policies/expression: add pb_log function to debug 2020-05-14 15:48:08 +02:00
Jens Langhammer 74ddf70cb7 policy: add context to PolicyRequest 2020-05-14 15:47:56 +02:00
Jens Langhammer a7a839a29c stages/prompt: promptstage based on PolicyBindingModel 2020-05-14 13:51:35 +02:00
Jens Langhammer 9859c5db0a policies: add API for policybindings 2020-05-14 13:51:05 +02:00
Jens Langhammer 43a583e2d2 stages/invitation: add unittests 2020-05-13 23:20:27 +02:00
Jens Langhammer f289025d8e stages/user_delete: fix missing API, fix missing tests 2020-05-13 23:20:07 +02:00
Jens Langhammer 80c3246333 policies/expression: add pb_flow_plan variable 2020-05-13 18:44:36 +02:00
Jens Langhammer 461fed5567 admin: remove more duplicate code 2020-05-13 13:45:57 +02:00
Jens Langhammer d5f6714ed7 admin: remove redundant code 2020-05-13 11:57:19 +02:00
Jens Langhammer c42ed6bc99 admin: sort types, minor fixups 2020-05-13 11:57:10 +02:00
Jens Langhammer 57fed2b92b stages/user_delete: fix formatting 2020-05-12 15:23:17 +02:00
Jens Langhammer e45b33c6c2 stages/user_delete: add user delete stage, remove view from core 2020-05-12 14:50:00 +02:00
Jens Langhammer 137e90355b flows: default-auth -> default-authentication 2020-05-12 14:49:47 +02:00
Jens Langhammer 7500e622f6 stages/invitation: start extracting invitation from core 2020-05-11 21:58:02 +02:00
Jens Langhammer d49c58f326 flows: fix linting 2020-05-11 21:27:46 +02:00
Jens Langhammer 9814d3be03 flows: add Planner and Executor unittests 2020-05-11 15:01:14 +02:00
Jens Langhammer fc9f86cccc lib: use TemplateResponse for bad_request_message 2020-05-11 14:08:04 +02:00
Jens Langhammer 6fd19c0a37 flows: add caching of plan, add planner unittests 2020-05-11 11:39:58 +02:00
Jens Langhammer 10cb412532 flows: fix linting of migrations 2020-05-11 09:08:15 +02:00
Jens Langhammer e12780f78f flows: add invalidation designation, use as default logout action 2020-05-11 01:12:57 +02:00
Jens Langhammer 9dec13c225 stages/user_logout: add logout stage 2020-05-11 01:12:14 +02:00
Jens Langhammer 69120da45c core: remove redundant views/forms 2020-05-11 00:49:48 +02:00
Jens Langhammer 5b2bf7519a stages/user_create -> user_write: Stage can create and update existing users 2020-05-10 23:38:15 +02:00
Jens Langhammer 631cf77f89 stages/captcha: add tests 2020-05-10 21:43:30 +02:00
Jens Langhammer 6676e95011 stages/email: add tests, cleanup 2020-05-10 21:43:22 +02:00
Jens Langhammer 3219cffb52 stages/email: add logic to verify token 2020-05-10 21:00:04 +02:00
Jens Langhammer d4f149bc02 stages/email: add form for sending email to prevent spam
stages/email: make token validity configurable
2020-05-10 20:50:27 +02:00
Jens Langhammer 206cf4967d stages/identification: add more templates 2020-05-10 20:24:47 +02:00
Jens Langhammer a67c53f46a stages/email: start rewriting templates, add template tags to embed CSS and images 2020-05-10 20:16:58 +02:00
Jens Langhammer e989c61793 core: reduce default nonce time to 30 minutes 2020-05-10 20:15:56 +02:00
Jens Langhammer 99bab03cce flows: add check if current plan matches current flow 2020-05-10 20:15:24 +02:00
Jens Langhammer a7567ad8c6 stages/identification: add recovery support 2020-05-10 18:45:16 +02:00
Jens Langhammer 2ffa2fc6b8 admin: update templates and stage views 2020-05-10 18:44:58 +02:00
Jens Langhammer 8de87d9acb stages/identification: test signup notice 2020-05-10 18:17:24 +02:00
Jens Langhammer 1d03b36750 stages/identification: show sign up url when related flow exists 2020-05-10 18:14:10 +02:00
Jens Langhammer 8dc3c49a2f stages/user_create: add stage to create user after prompts 2020-05-10 18:04:23 +02:00
Jens Langhammer f6461b08d7 stages/prompt: add unittests 2020-05-10 17:52:26 +02:00
Jens Langhammer a3a3dde1c8 stages/dummy: add unittests
stages/password: improve coverage
stages/user_login: improve coverage
2020-05-10 17:02:01 +02:00
Jens Langhammer f111604b70 stages/login: -> stages/user_login: rename login to user_login for user_create stage 2020-05-10 16:20:44 +02:00
Jens Langhammer 4315d1a03c stages/prompt: add prompt stage: dynamically created forms based on database 2020-05-10 16:20:17 +02:00
Jens Langhammer 9def45c8d7 stages/identification: fix label for inputs 2020-05-10 15:29:27 +02:00
Jens Langhammer 358922b09b lib/ui: fix human_list for lists with one item 2020-05-10 15:29:10 +02:00
Jens Langhammer fbc3ac6b30 flows: make FlowExecutor fully working without pending user 2020-05-10 15:28:52 +02:00
Jens Langhammer 4f785da452 root: fix migrations for CI 2020-05-10 13:06:38 +02:00
Jens Langhammer ff4bd1c91f root: increase testing verbosity to debug CI 2020-05-10 12:50:58 +02:00
Jens Langhammer 7a96f9e894 policies/dummy: fix migrations 2020-05-10 12:27:10 +02:00
Jens Langhammer c27d257146 core: fix migrations 2020-05-10 12:07:40 +02:00
Jens Langhammer 9bccf9bb0a policies/dummy: separate dummy policy from core into app 2020-05-10 02:14:55 +02:00
Jens Langhammer c0b05a62f4 stages/password: add unittests 2020-05-10 02:00:38 +02:00
Jens Langhammer c140c39d07 stages/login: add unittests 2020-05-10 01:02:04 +02:00
Jens Langhammer 9a700e506b stages/identification: simplify unittests 2020-05-10 01:01:58 +02:00
Jens Langhammer 8e488670ad stages/identification: load uid_fields from stage in form, add more unit tests 2020-05-10 00:05:36 +02:00
Jens Langhammer fd5b2298e5 flows: fix unittests and migrations 2020-05-09 23:31:35 +02:00