From 226b90b7bf796cb16c073968818ced936696a5e6 Mon Sep 17 00:00:00 2001 From: garrettmills Date: Thu, 16 Apr 2020 19:59:48 -0500 Subject: [PATCH] Start basic LDAP server groundwork --- .gitignore | 3 +- Units.flitter.js | 2 + app/assets/auth/forms.css | 122 ++++++++++++ app/controllers/auth/Forms.controller.js | 12 ++ app/controllers/auth/KeyAction.controller.js | 16 ++ app/controllers/auth/Oauth2.controller.js | 13 ++ app/ldap/controllers/LDAPController.js | 7 + app/ldap/middleware/LDAPMiddleware.js | 10 + app/ldap/routes/example.routes.js | 27 +++ app/models/LDAPBase.js | 10 + app/models/auth/KeyAction.model.js | 25 +++ app/models/auth/User.model.js | 18 ++ app/routing/Middleware.js | 1 + .../middleware/auth/GuestOnly.middleware.js | 15 ++ .../middleware/auth/KeyAction.middleware.js | 12 ++ .../auth/Oauth2TokenOnly.middleware.js | 14 ++ .../ProviderRegistrationEnabled.middleware.js | 14 ++ .../auth/ProviderRoute.middleware.js | 15 ++ .../middleware/auth/UserOnly.middleware.js | 15 ++ .../middleware/auth/Utility.middleware.js | 15 ++ app/routing/routers/auth/forms.routes.js | 113 +++++++++++ app/routing/routers/auth/keyaction.routes.js | 16 ++ app/routing/routers/auth/oauth2.routes.js | 46 +++++ app/unit/LDAPRegistry.js | 21 +++ app/unit/LDAPServerUnit.js | 44 +++++ app/views/auth/auth_page.pug | 17 ++ app/views/auth/form.pug | 9 + app/views/auth/form_page.pug | 5 + app/views/auth/login.pug | 17 ++ app/views/auth/oauth2_authorize.pug | 12 ++ app/views/auth/register.pug | 16 ++ config/auth.config.js | 177 ++++++++++++++++++ config/ldap/server.config.js | 8 + config/server.config.js | 4 +- package.json | 3 +- yarn.lock | 108 ++++++++++- 36 files changed, 971 insertions(+), 11 deletions(-) create mode 100644 app/assets/auth/forms.css create mode 100644 app/controllers/auth/Forms.controller.js create mode 100644 app/controllers/auth/KeyAction.controller.js create mode 100644 app/controllers/auth/Oauth2.controller.js create mode 100644 app/ldap/controllers/LDAPController.js create mode 100644 app/ldap/middleware/LDAPMiddleware.js create mode 100644 app/ldap/routes/example.routes.js create mode 100644 app/models/LDAPBase.js create mode 100644 app/models/auth/KeyAction.model.js create mode 100644 app/models/auth/User.model.js create mode 100644 app/routing/middleware/auth/GuestOnly.middleware.js create mode 100644 app/routing/middleware/auth/KeyAction.middleware.js create mode 100644 app/routing/middleware/auth/Oauth2TokenOnly.middleware.js create mode 100644 app/routing/middleware/auth/ProviderRegistrationEnabled.middleware.js create mode 100644 app/routing/middleware/auth/ProviderRoute.middleware.js create mode 100644 app/routing/middleware/auth/UserOnly.middleware.js create mode 100644 app/routing/middleware/auth/Utility.middleware.js create mode 100644 app/routing/routers/auth/forms.routes.js create mode 100644 app/routing/routers/auth/keyaction.routes.js create mode 100644 app/routing/routers/auth/oauth2.routes.js create mode 100644 app/unit/LDAPRegistry.js create mode 100644 app/unit/LDAPServerUnit.js create mode 100644 app/views/auth/auth_page.pug create mode 100644 app/views/auth/form.pug create mode 100644 app/views/auth/form_page.pug create mode 100644 app/views/auth/login.pug create mode 100644 app/views/auth/oauth2_authorize.pug create mode 100644 app/views/auth/register.pug create mode 100644 config/auth.config.js create mode 100644 config/ldap/server.config.js diff --git a/.gitignore b/.gitignore index 5fc77fb..c7b86cf 100644 --- a/.gitignore +++ b/.gitignore @@ -129,8 +129,7 @@ out/ # JIRA plugin atlassian-ide-plugin.xml -# Cursive Clojure plugin -.idea/replstate.xml +.idea* # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml diff --git a/Units.flitter.js b/Units.flitter.js index bd7a664..7252a21 100644 --- a/Units.flitter.js +++ b/Units.flitter.js @@ -32,6 +32,8 @@ const FlitterUnits = { * available to the middleware-routing-controller stack. */ 'Upload' : require('flitter-upload/UploadUnit'), + 'LDAPServer' : require('./app/unit/LDAPServerUnit'), + 'LDAPRegistry' : require('./app/unit/LDAPRegistry'), /* * The Core Flitter Units diff --git a/app/assets/auth/forms.css b/app/assets/auth/forms.css new file mode 100644 index 0000000..fd4f1d5 --- /dev/null +++ b/app/assets/auth/forms.css @@ -0,0 +1,122 @@ +:root { + --input-padding-x: 1.5rem; + --input-padding-y: 0.75rem; +} + +.login, +.image { + min-height: 100vh; +} + +.bg-image { + background-image: url('https://source.unsplash.com/4812YdII6W0/2592x1728'); + background-size: cover; + background-position: center; +} + +.login-heading { + font-weight: 300; +} + +.btn-login { + font-size: 0.9rem; + letter-spacing: 0.05rem; + padding: 0.75rem 1rem; + border-radius: 2rem; +} + +.form-label-group { + position: relative; + margin-bottom: 1rem; +} + +.form-label-group>input, +.form-label-group>label { + padding: var(--input-padding-y) var(--input-padding-x); + height: auto; + border-radius: 2rem; +} + +.form-label-group>label { + position: absolute; + top: 0; + left: 0; + display: block; + width: 100%; + margin-bottom: 0; + /* Override default `