* 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>
* Remove advanced filter sidebar detail
So long, and thanks for all the fish.
* Remove filter conversion logic
* Start replacing/removing old skool filters
* Add inline mode for usages in search bar
* Make filter work in header bar
* Emit empty string as null in filter
* Move shared filter types to shared
* Upgrade use-items
* Fix manual sort on tabular
* Cleanup styling in search bar usage
* Tweak styling
* Fix filtering issues
* Update cards
* Remove activeFilterCount from tabular
* Update maps to work with new filters
* Update calendar to new filter/sort structure
* Fix activity module nav/search
* Fix no-results message
* Update file library filtering
* Finalize user search
* Allow filtering in drawer-collection
* Handle cancelled responses semi-gracefully
* Add loading start state timeout
* Replace sort type in api
* Last commit before redoing a bunch
* Finish new visual style
* Remove unused rounded prop from v-menu
* Tweak sizing
* Enough size tweaking for now
* Count all filter operators instead of top
* Fix archive casting
* Fix api build
* Add merge filters util
* Split filter in user vs system
* Fix export sidebar detail
* Show field label on permissions configuration
* Add migration for filter/sort
* Use filters in insights
* 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>
* 1. Create generatePasswordHash util function to standardize how user
passwords are hashed throughout the API instead of directly calling
argon2.hash directly;
2. Add configuration parameters to modify the behavior of the argon2.hash
function used for generating user password hashes;
3. Add docs and placeholders in api/example.env for new parameters;
4. Update argon2 to latest release.
* Also update CLI init command to call generatePasswordHash vs. calling argon2.hash directly.
* docs: sdk auth.password.request url argument (#7757)
* Show a warning if PostGIS is missing (#7759)
* Show a warning if PostGIS is missing
* Remove sqlite-extensions flag
* Remove unused import
* Update WYSIWYG styling
* translations: fix user.status_invited (#7760)
* New Crowdin updates (#7739)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* Fix postgis check
* Fix branch emitter logic from grand-to-child (#7763)
* New Crowdin updates (#7762)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Slovenian)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Catalan)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Hungarian)
* Fix tree-select not allowing groups to be opened in selection mode
* Optimize tree-select open state
* Warn the user when a collapsed group field had an error (#7738)
* warn the user when a collapsed group field had an error
* Replace icon
* Reduce icon size
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* New translations en-US.yaml (Hungarian) (#7764)
* fix WYSIWYG field focus event (#7756)
* Update vue monorepo to v3.2.7 (#7766)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Fix hash link in docs module (#7768)
* Update dependency knex-schema-inspector to v1.6.0 (#7769)
* Use OpenMapTiles font instead of ArcGIS (#7780)
* tiny rewrite in docs/reference/filter-rules (#7771)
* Update dependency sass to v1.39.0 (#7770)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Expose logger through ExtensionContext (#7777)
Fixes#7737.
* Fixes bug when trying to edit geometry in code interface. (#7778)
* Update vue monorepo to v3.2.8 (#7785)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency npm to v7.22.0 (#7786)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Improve card selection styling (#7787)
* Add environment variable to force-exclude tables from Directus (#7789)
* New Crowdin updates (#7765)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Polish)
* v9.0.0-rc.92
* Update changelog.md
* Update logging in CLI commands (#7676)
* Replace console logs with logger in CLI commands
* Fix double sparkles in migration command
* Apply suggestions from code review
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Use stdout for init command output
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Fix WYSIWYG field not being cleared after "Save and Create New" (#7754)
* fix WYSIWYG field not being cleared
* return empty string when null for tinymce
* Update app/src/components/v-form/form-field.vue
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* fix wrong icon (#7800)
* fix false is proper value (#7796)
* Fix incorrect database exclude tables environment variable in docs. (#7798)
* Datetime interface "Set to now" sets seconds to 0 (#7794)
When "Include seconds" is disabled.
Fixes#7779
* Use https for openmaptiles fonts. (#7801)
* fix type for deep query with underscore prefix (#7815)
* Map selection behaviour (#7811)
* Use https for openmaptiles fonts.
* Changed map selection behaviour: replace instead of adding them by default.
* Fix map interface controls not showing (#7812)
* Fix return error for GraphQL mutations (#7814)
* Apply "in" to query even if array is empty (#7816)
* fetch only avatar id for current user
* apply "in" to query even if array is empty
if the "in" array is empty we need to add it to query anyways,
otherwise all records will be attached causing out of memory on
subsequent calls
* Update dependency pinia to v2.0.0-rc.7 (#7817)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update modules.md (#7795)
* make csv imports try to parse values to json (#7820)
* fix minor typo in api-hooks.md (#7821)
* Update dependency knex to v0.95.11 (#7819)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Rename hash utils file/function to be not password-specific, update all calls to argon2.hash to use the new function, update docs.
* 1. Create generatePasswordHash util function to standardize how user
passwords are hashed throughout the API instead of directly calling
argon2.hash directly;
2. Add configuration parameters to modify the behavior of the argon2.hash
function used for generating user password hashes;
3. Add docs and placeholders in api/example.env for new parameters;
4. Update argon2 to latest release.
* Also update CLI init command to call generatePasswordHash vs. calling argon2.hash directly.
* Rename hash utils file/function to be not password-specific, update all calls to argon2.hash to use the new function, update docs.
* Preserve old behavior of hash function in PayloadService, in case 'value' is not a String.
* Tweak docs
Co-authored-by: José Varela <joselcvarela@gmail.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Ben Haynes <ben@directus.io>
Co-authored-by: Nitwel <nitwel@arcor.de>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Oreille <33065839+Oreilles@users.noreply.github.com>
Co-authored-by: mikhail sergienko <mikhail.sergienko@gmail.com>
Co-authored-by: Dieter Luypaert <dieterluypaert@gmail.com>
Co-authored-by: Ben Haynes <ben@rngr.org>
Co-authored-by: Sam Milledge <sam@sammilledge.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Harun Kilic <harunkilic@live.dk>
* 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>
* Fixed issues with template overriding
* Remove `system` flag from email templates
* Remove usage of system in user services
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Make email template overrides work
The ternary needs to be this way for custom email templates to be picked up.
* Allow custom subject lines for emails
Allow subject line to be passed into `inviteUser()` and `requestPasswordReset()`
* Fix typo
* Revert so only one change for PR
* fix typo
* Fix ts tests
* 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