Commit Graph

1418 Commits

Author SHA1 Message Date
Azri Kahar
15ffe6bd3f check system deny list in relations for GraphQL (#10674) 2021-12-24 13:21:49 -05:00
eikaramba
0ed76215b4 set statuscode to 204 if no content is send (#10569)
* set statuscode to 204 if no content is send

this is currently wrong for the DELETE Http Method in directus, which sends 200 status code although no content is served

* make linter happy

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-12-23 21:59:56 -05:00
Nicola Krumschmidt
589caf789b Move the app entrypoints to the assets directory (#10643)
The app's main js entrypoint was in the assets directory before.
I moved entrypoints one directory up to distinguish them from other chunks.
This is now done by using a `.entry.js` extension for entrypoints.

This also makes the shared dependency detection more robust.

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-23 21:57:49 -05:00
Rijk van Zanten
dbf35a1736 Add ability to share items with people outside the platform (#10663)
* Add directus_shares

* Don't check for usage limit on refresh

* Add all endpoints to the shares controller

* Move route `/auth/shared` to `/shared/auth`

* Add password protection

* Add `share` action in permissions

* Add `shares/:pk/info`

* Start on shared-view

* Add basic styling for full shared view

* Fixed migrations

* Add inline style for shared view

* Allow title override

* Finish /info endpoint for shares

* Add basic UUID validation to share/info endpont

* Add UUID validation to other routes

* Add not found state

* Cleanup /extract/finish share login endpoint

* Cleanup auth

* Added `share_start` and `share_end`

* Add share sidebar details.

* Allow share permissions configuration

* Hide the `new_share` button for unauthorized users

* Fix uses_left displayed value

* Show expired / upcoming shares

* Improved expired/upcoming styling

* Fixed share login query

* Fix check-ip and get-permissions middlewares behaviour when role is null

* Simplify cache key

* Fix typescript linting issues

* Handle app auth flow for shared page

* Fixed /users/me response

* Show when user is authenticated

* Try showing item drawer in shared page

* Improved shared card styling

* Add shares permissions and change share card styling

* Pull in schema/permissions on share

* Create getPermissionForShare file

* Change getPermissionsForShare signature

* Render form + item on share after auth

* Finalize public front end

* Handle fake o2m field in applyQuery

* [WIP]

* New translations en-US.yaml (Bulgarian) (#10585)

* smaller label height (#10587)

* Update to the latest Material Icons (#10573)

The icons are based on https://fonts.google.com/icons

* New translations en-US.yaml (Arabic) (#10593)

* New translations en-US.yaml (Arabic) (#10594)

* New translations en-US.yaml (Portuguese, Brazilian) (#10604)

* New translations en-US.yaml (French) (#10605)

* New translations en-US.yaml (Italian) (#10613)

* fix M2A list not updating (#10617)

* Fix filters

* Add admin filter on m2o role selection

* Add admin filter on m2o role selection

* Add o2m permissions traversing

* Finish relational tree permissions generation

* Handle implicit a2o relation

* Update implicit relation regex

* Fix regex

* Fix implicitRelation unnesting for new regex

* Fix implicitRelation length check

* Rename m2a to a2o internally

* Add auto-gen permissions for a2o

* [WIP] Improve share UX

* Add ctx menu options

* Add share dialog

* Add email notifications

* Tweak endpoint

* Tweak file interface disabled state

* Add nicer invalid state to password input

* Dont return info for expired/upcoming shares

* Tweak disabled state for relational interfaces

* Fix share button for non admin roles

* Show/hide edit/delete based on permissions to shares

* Fix imports of mutationtype

* Resolve (my own) suggestions

* Fix migration for ms sql

* Resolve last suggestion

Co-authored-by: Oreilles <oreilles.github@nitoref.io>
Co-authored-by: Oreilles <33065839+oreilles@users.noreply.github.com>
Co-authored-by: Ben Haynes <ben@rngr.org>
Co-authored-by: Thien Nguyen <72242664+tatthien@users.noreply.github.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2021-12-23 18:51:59 -05:00
Azri Kahar
46d9a9b987 use CSS variable for users Admin Options divider (#10652) 2021-12-23 14:55:57 -05:00
Nicola Krumschmidt
ee3e9b59f9 Pass a custom emitter to API extensions (#10531) 2021-12-15 18:49:55 -05:00
Brainslug
35c3f90c9a added event emitter to extension context and updated docs (#10529) 2021-12-15 21:29:06 +00:00
rijkvanzanten
42476c45c8 Add logging to cli snapshot apply 2021-12-15 10:08:47 -05:00
Azri Kahar
31bb890496 Unify & translate initial role/user detail in init & bootstrap command (#10493)
* Unify initial role/user detail in init & bootstrap

* translate role descriptions

* translate data from system collections
2021-12-14 09:33:44 -05:00
keesvanbemmel
549b9ee8e1 Expanded try catch around extracting metadata (#10497)
* Expanded try catch around extracting metadata

* Run linter

* Added extra try catch block

* Run linter

Co-authored-by: ian <licitdev@gmail.com>
2021-12-14 09:31:13 -05:00
ian
ef0091f2f4 Add password policy check during password reset (#10409)
* Add password policy check during password reset

* Prevent token reuse after password reset
2021-12-10 15:16:07 -05:00
Aiden Foxx
63ade9b42f Added edge case handling for weird IBM ldap issues (#9527)
* Added edge case handling for weird IBM ldap issues

* Update api/src/exceptions/unexpected-response.ts
2021-12-10 15:07:31 -05:00
Jay Cammarano
00a838f020 Docs for testing the API (#10275)
* mock-knex

* test on the migrations run started.

* test passing for run.up()

* reorganize /tests/ to allow integration tests

* e2e setup changes

* e2e jest.config moved

* e2e paths fixed, integration config

* add nonadmin role and user seed+migration

* auth/login w/ documentation (docs will be moved)

* update user seed

* add postgres10 to the ci?

* argon2 saves the day

* items tests passing with postgres10 support

* removed comments

* move generateHash out of directus_users

Co-authored-by: Jay Cammarano <jaycammarano@gmail.com>
2021-12-10 14:58:51 -05:00
rijkvanzanten
9b54e9fe8f Cleanup codestyle 2021-12-10 14:20:37 -05:00
ian
709bab178b Separate caching of dynamic user vars from permissions (#9957)
* Separate caching of dynamic user vars from permissions

* Cache filterContext only when permissions are cached

* Reset merge

* Reapply changes

* Reduce nesting

* Add missing assignment

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-10 14:17:47 -05:00
rijkvanzanten
8f05d0339a Add trace logs to OAuth2 flow 2021-12-06 13:28:46 -05:00
Aiden Foxx
f48a413bb9 SSO fixes and improvements (#10301)
* Update refresh_token on refresh, allow custom authorize params, handle invalidated tokens

* Added default to generateAuthUrl

* Apparently issuer can be undefined now

* Update api/src/auth/drivers/openid.ts

* Update api/src/auth/drivers/oauth2.ts

* Make linter happy
2021-12-06 13:13:24 -05:00
Oreille
1b9eb0f4b1 Use expression instead of alias in groupBy query (#10339) 2021-12-06 12:55:33 -05:00
Rijk van Zanten
5d80038a8a Fix permissions merging on null check (#10336)
Fixes #10305
2021-12-06 15:12:20 +00:00
Aiden Foxx
6d2ab0701c Added back missing LDAP default (#10302) 2021-12-04 16:18:38 -05:00
Aiden Foxx
58bc651c85 Fixed escaping error on LDAP filters (#10297) 2021-12-04 09:18:20 -05:00
Dorian Zedler
94e53212b4 Implement AUTH_DISABLE_DEFAULT config option (#9322)
* Implement AUTH_DISABLE_DEFAULT config option

* Disable default auth rute if set to disabled

* Add disableDefault to API docs

* Update app/src/routes/login/login.vue

Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>

* Remove watch block

* Remove useless variable

* Don't import watch

Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-03 14:13:50 -05:00
Oreille
52deb28fc2 Add items.read filter hook (#10284)
* Add items.read filter hook

* Fix issue cause by query being wrongly modified

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-12-03 13:36:49 -05:00
ian
851199a9fd Check if file exists in assets service (#10261)
* Check if file exists in assets service

* Remove dupliate check from assets controller

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-03 17:29:41 +00:00
Rijk van Zanten
e7bfafede9 Add shared exceptions to extension context (#10281)
Ref #10276
2021-12-03 16:57:36 +00:00
Oreille
e03bb391b0 Add items.read filter hook (#10279) 2021-12-03 16:37:04 +00:00
Nicola Krumschmidt
58a12d0f0e Align webhook payload with new hooks implementation (#10272)
Fixes #9518
2021-12-03 10:31:21 -05:00
Oreille
8ed517708e Fix SQLite date functions (#10270) 2021-12-03 14:57:42 +00:00
keesvanbemmel
6617b08f88 Added "null/admin" accountability and emitEvents opts (#10268) 2021-12-03 14:55:48 +00:00
Rijk van Zanten
a77f08b3d3 Add table prefix to groupBy query (#10250)
Fixes #10092
2021-12-03 00:28:25 +00:00
Rijk van Zanten
198e585054 Fix handling of nested arrays in snapshot diffing (#10246)
* Fix handling of nested arrays in snapshot diffing

Fixes #10167

* Remove unused import
2021-12-02 17:53:17 -05:00
Łukasz Szcześniak
e17048e653 Remove runMigrations from database install (#9911) (#10003)
* Remove `runMigrations` from `database install` (#9911)

* Fix typo (#9911)

* Remove unnecessary import (#9911)
2021-12-02 16:05:54 -05:00
José Varela
7966b4ea9d Fix empty current permissions (#10236) 2021-12-02 19:49:11 +00:00
Rijk van Zanten
3fe67d8c62 Force CDNs to ignore module bundle output in cache (#10227) 2021-12-02 11:07:26 -05:00
ian
5bd41bcabb Shift hook emits to field service (#9351)
* Shift hook emits to field service

* Update field hooks to use filter and action

* Allow updating filter payload in hook

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-01 20:14:37 +00:00
Oreille
bc864d1f51 Improve helpers structure (#10052)
* Improve helpers structure

* Added DatabaseHelper base class

* Refactor index.ts
2021-12-01 15:08:24 -05:00
Alejandro Castaño González
022b867a23 Add status field in the directus_notifications collection (#10064)
* Add status field

* Update notification type
2021-12-01 14:19:48 -05:00
Azri Kahar
2c8055c718 Add limit to graphql aggegrated queries (#10077) 2021-12-01 14:16:37 -05:00
Oreille
d1b35774ac Fix SQL Server text casting (#10084) 2021-12-01 14:16:02 -05:00
Oreille
94985d547a Fix MySQL tinyint(1) not being treated as boolean (#10083) 2021-12-01 14:01:48 -05:00
Oreille
0425809db1 Fix string filter unexpectedly being casted to number (#10138)
* Fix string unexpectedly being casted to numbers

* Parse filter with multiple keys into `_and` block.

* Fixed filter structure in tests
2021-12-01 13:55:54 -05:00
Azri Kahar
8dec148ca2 refresh edited insights panel on change (#10180)
* refresh edited insights panel on change

* move api simpleHash to shared utils getSimpleHash

* Simply reactivity fix for time-series

* Remove unused import

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-01 17:26:55 +00:00
ian
32e0396b3e Improve mentions keyboard accessibility (#10173)
* Improve keyboard accessibility

* Add check for up down keys

* Add newline check for triggering

* Allow keyboard insertion of users

* Clear positional node errors on safari

* Add a little sanity check to please automated code checkers

* Use active instead of dashed

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-01 11:14:09 -05:00
Alisher Nazarhanov
05e69ecabd Fix hidden folders/collections (#9207) (#10005)
Show parent folders/collections if user has at least one permission to child collection (#9207)
2021-11-24 22:24:52 +00:00
Azri Kahar
19906d0501 Fix deep groupBy (#9996)
* fix deep _groupBy not turning to _group

* add groupBy to roles user count

* Revert "add groupBy to roles user count"

This reverts commit 16340eef5a.
2021-11-24 17:14:29 -05:00
Jay Cammarano
25375cc481 Add notifications system and support user mentions in comments (#9861)
* v-menu de/activated onKeyDown. No List yet.

* v-list

* add user suggestion

* uuids replaced

* user-popover working

* avatars flex row with usernames in suggestions

* added space to end of uuid insert

* autofocus + move caret to end of last insert

* removed unnecessary setTimeout()

* fixed filter 500 with ids

* better fix

* New translations en-US.yaml (French) (#9907)

* New translations en-US.yaml (French) (#9912)

* New translations en-US.yaml (French) (#9916)

* New translations en-US.yaml (Russian) (#9918)

* New translations en-US.yaml (Swedish) (#9920)

* Email updates (#9921)

* add from name for emails

* updatd email template style

* reset password email copy

* updated logo to newest version

* update invite email copy

* decouple field template logic

* push up styling

* Start on new v-template-input

* Add notifications API endpoints

Squashed commit of the following:

commit 9d86721ef795d03bc55693c0f99bde8e269d60e9
Merge: b4458c19f 34131d06e
Author: rijkvanzanten <rijkvanzanten@me.com>
Date:   Mon Nov 22 09:27:43 2021 -0500

    Merge branch 'mentions' into mentions-api

commit b4458c19f7c54f18fa415fc04c63642c2f5a17b0
Author: rijkvanzanten <rijkvanzanten@me.com>
Date:   Thu Nov 18 18:34:04 2021 -0500

    Remove unused import

commit e6a9d36bbfdf95cb18d29336da61ecb14b677934
Author: rijkvanzanten <rijkvanzanten@me.com>
Date:   Thu Nov 18 18:28:31 2021 -0500

    Extract user mentions from comments

commit b3e571a2daa287e1740a050096913662a57e9861
Merge: c93b833d2 af2a6dd7f
Author: rijkvanzanten <rijkvanzanten@me.com>
Date:   Thu Nov 18 17:39:52 2021 -0500

    Merge branch 'mentions' into mentions-api

commit c93b833d2b848e306c434b370d4e4e11967e85d0
Author: rijkvanzanten <rijkvanzanten@me.com>
Date:   Thu Nov 18 17:35:45 2021 -0500

    Send emails w/ parsed MD

commit 64bbd6596f20a07028d2387d60e33dfe4f91c032
Author: rijkvanzanten <rijkvanzanten@me.com>
Date:   Thu Nov 18 16:18:16 2021 -0500

    Add notifications endpoint + permissions

commit fba55c02dc9c303a38b1b958350684cccd3dd82c
Author: rijkvanzanten <rijkvanzanten@me.com>
Date:   Thu Nov 18 15:33:28 2021 -0500

    Add system data for notifications

* push

* Make v-template-input work

* Add the two-way binding

* submit button posting, not clearing text area

* comment text area clearing on submit

* Replace insertion correctly

* Added scope support to LDAP group and user search (#9529)

* Added scope support LDAP group and user search

* Fixed linter screwing up my markdown

* Update docs/configuration/config-options.md

* Always return correct DN for user with sub scope

* Fix indeterminate meta and schema property in advanded field creation (#9924)

* Fix impossibility to save M2M (alterations not triggered) (#9992)

* Fix alterations refactor

* fix roles aggregate query (#9994)

* Update iis.md (#9998)

added the IIS URL Rewrite module as a requirement

* New translations en-US.yaml (English, United Kingdom) (#10001)

* Fix LDAP race condition (#9993)

* Fix input ui

* Revert changes to v-field-template

* Update mentions permissions

* Fix linter warnings

* Optimize sending flow

* Revert "Rename activity->notifications module (#9446)"

This reverts commit 428e5d4ea9.

* Add notifications drawer

* Update migrations

* Improve constraints

* Add email notifications toggle on users

* Add docs, fix graphql support

* Move caret-pos to devdeps

* Remove unused new triggerKeyPressed system

* Remove unused use-caret composable

Co-authored-by: Nitwel <nitwel@arcor.de>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Ben Haynes <ben@rngr.org>
Co-authored-by: Aiden Foxx <aiden.foxx@sbab.se>
Co-authored-by: Oreille <33065839+Oreilles@users.noreply.github.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Paul Boudewijn <paul@helderinternet.nl>
2021-11-24 16:11:26 -05:00
Oreille
2f0e305796 Refactor parseFilter to only flatten filter entries that need it (#9804)
* Refactor parseFilter to only flatten filter entries that need it

* Fixed typescript check

* Use custom get function instead of lodash's.

* Improved get function readability

* Allow null result from shared parseFilter

* Add missing defaultValue in get function

* Change parseFilter argument type from Record<string, any> to Filter | null

Co-authored-by: ian <licitdev@gmail.com>
2021-11-23 12:35:12 -05:00
Aiden Foxx
bd551ea9e4 Fix LDAP race condition (#9993) 2021-11-23 09:37:55 -05:00
Aiden Foxx
8b9671baaa Added scope support to LDAP group and user search (#9529)
* Added scope support LDAP group and user search

* Fixed linter screwing up my markdown

* Update docs/configuration/config-options.md

* Always return correct DN for user with sub scope
2021-11-22 15:05:01 -05:00
Alexander
ad54b96184 Fix unexpected types (#9599)
* fix/9576

* fix: mysql tinyint booleans

* fix: failed tests

* fix: linter error

* Add unsigned types for mysql

Co-authored-by: Oreille <33065839+Oreilles@users.noreply.github.com>
2021-11-22 14:20:52 -05:00