* Moved over oauth impl to new interface
* Fixed most build issues and started addind schema to auth drivers
* Finished up OAuth2 and OpenID drivers
* Removed unused migration and utils
* Fixed minor todos
* Removed old oauth flow
* Changed oauth flow to re-use refresh token
* Added new oauth frontend
* Added font awesome social icons
* Updated authentication documentation
* Update api/src/auth/drivers/oauth2.ts
* Tested implementation and fixed incorrect validation
* Updated docs
* Improved OAuth error handling and re-enabled creating users with provider/identifier
* Removed Session config from docs
* Update app/src/components/v-icon/v-icon.vue
* Removed oauth need to define default roleID
* Added FormatTitle to SSO links
* Prevent local auth without password
* Store OAuth access token in session data
* Update docs/guides/api-config.md
* Fixed copy and removed fontawesome-vue dependency
* More docs fixes
* Crucialy importend type fiks
* Update package-lock
* Remove is-email-allowed check
In favor of more advanced version based on filtering coming later
* Fix JSON type casting
* Delete unused util
* Update type signature to include name
* Add warning when code isn't found in oauth url
and remove obsolete imports
* Auto-continue on successful SSO login
* Tweak type signature
* More type casting shenanigans
* Please the TS gods
* Check for missing token before crashing
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Refactor action value from authenticate to login in directus_activity
* Fix incorrect where clause in migration
* Add missing authenticate uses
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Moved refactoring from LDAP branch
* Moved Auth into packages
* Updated frontend to support custom auth providers and make implementation more flexible
* Fixed exception handling and numerous bugs. Also added provider support to graphql
* Updated frontend to be able to set provider and identifier
* Fixed issue with setting the auth provider in app
* Updated package-lock.json
* Updated package-lock.json
* Cleanup, adding type handling and disabled changing provider
* Added title formatting to SSO links
* Fixed incorrect type export
* Fixed incorrect rc
* Update api/src/services/authentication.ts
* Updated sub-dependencies to rc87
* Fixed linting errors
* Prefer sending provider name as config var
* Pass clone of user info to auth provider instead of reference
* Moved auth from packages into core
* Removed generic login handler
* Fixed graphql complaint
* Moved exception back to api and cleaned up URLs
* Minor tweak
* Pulled across improvements from openid branch
* Fixed fix that wasn't a fix
* Update auth.ts
* Update auth.ts
* Update authentication.ts
* Update login-form.vue
* Regression fixes and cleanup
* Minor flow improvements
* Flipped if and fixed linting warning
* Un-expanded object that didn't need to be expanded!
* Trimmed auth interface for consistency when verifying passwords
* Removed auth-manager, changed login endpoint, broke out SSO links, removed username support, disabled updating external_identifier, generate provider options as part of field generation
* Cleaned up some code comments
* Use named exports in local driver
* Use async defaults for auth abstract class
* Use JSON for auth_data field
* Move session data blob to directus_sessions
* Remove unused export, rename auth->authDriver
* Opinionated changes
* Move login route registration to driver file
* Revert app changes in favor of PR #8277
* Send session token to auth provider and opinionated changes
* Added missing translation
* Fixed empty elements for users without email
* Update api/src/auth/drivers/local.ts
* Move pw verify to local driver, remove CRUD
* Opinions > logical reasoning
* Use session data, cleanup login method on auth serv
* Remove useless null
* Fixed breaking changes from refactor, and fixed build
* Fixed lint warning
* Ignore typescript nonsense
* Update api/src/services/authentication.ts
* Fix provider name passthrough
Co-authored-by: Aiden Foxx <aiden.foxx@sbab.se>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
This fixes not being able to build the repo due to type issues
introduced by the Typescript 4.4 option "useUnknownInCatchVariables",
which is enabled by default in strict mode.
* Move accountability type to shared
* Rely on shared for parse-filter
* Install date-fns
* Support dynamic variables in conditional fields
Closes#7157
* Rework cache handler to be function export
* Add default schema caching
* Add schema cache
* Auto purge schema cache on schema change from api
* Only set last_access value on login
* Add note on schema cache setting
* 6113 add tfa generate endpoint
* 6113 implement tfa otp check in user settings
* 6113 add autfocus for otp field on login form
* update package-lock
* improve TFA uri with user email
* fix vue 3 compatibility
* reduce code duplication for enableTFA
* Remove unnecessary parameters
* Use project name in otp url when available
* Update docs/reference/api/system/users.md
Co-authored-by: Wendelin Peleska <wendu@pm.me>
* api: pass user object to auth hooks
The motivation for this is the ability to migrate from
bcrypt passwords to argon2 seamlessly.
Fixes#4718Fixes#4335
* receive user from `auth.login.before` hook
* pass `otp` as well on `auth.login` hooks
* api: last registered hook should have priority
When registering multiple hooks for a single event,
the last hook should have priority on return value.
* Fix linter warning
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Declare return types on functions
And a very few other type related minor fixes
* Minor syntax fixes
* Remove unnecessary escape chars in regexes
* Remove unnecessary awaits
* Replace deprecated req.connection with req.socket
* Replace deprecated upload with uploadOne
* Remove unnecessary eslint-disable-next-line comments
* Comment empty functions / catch or finally clauses
* Fix irregular whitespaces
* Add missing returns (null)
* Remove unreachable code
* A few logical fixes
* Remove / Handle non-null assertions which are certainly unnecessary (e.g. in
tests)
* Check auth password policy on user modifications
* Show validation errors in drawer-batch
* Allow custom password policy, add placeholder
* Add UserSuspended exception
* Add user suspended error translation
* Move rate limiter creation into root helper
* Add login attempts support to authentication service
* Don't authenticate into settings service when checking password policy
* Start the xOne/xMany work
* Update update/upsert
* Finish updating itemsservice
* Add comments, add nested revisions on update
* Use new internal api
* Update collectionService to one/many structure
* Move files to one/many structure
* Move permissions to one/many structure
* Move relations service to one/many structure
* Move roles to one/many structure
* Move users service over
* Move webhooks to updated structure
* Move deprecated methods to the bottom
* Replace deprecated uses
* Use new methods in controllers, add batch update/delete by query
* Use updated methods in API
* Fix email being required
* Remove unnecessary DB call
* Fix batch update/delete validation
* Rotate JPG image on upload #4206
* fixes#3949 width/height generated for gif and tif
* API hooks for event added for auth.login #4079
* updated doc for api hooks for new auth.login event
* Style tweaks
* Update docs
* Tweak docs some more
* Spelling error
* Allow non-required flags and pass to hook
* SDK - Persistent login refresh fixes#4113
* Fixed#4145 SDK, Token Expired error
* Spell check
* Docs Spell check
* Docs Spell check
* Docs Spell check
* update docs for sdk-js
* To delete all expired session from db on login
* corrected the condition for the delete
* changed the from Date.now to new date .
* Move it inline
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Rotate JPG image on upload #4206
* fixes#3949 width/height generated for gif and tif
* API hooks for event added for auth.login #4079
* updated doc for api hooks for new auth.login event
* Style tweaks
* Update docs
* Tweak docs some more
* Spelling error
* Allow non-required flags and pass to hook
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>