Commit Graph

596 Commits

Author SHA1 Message Date
Azri Kahar
79ddd35fe0 fix user update without status in payload issue (#13375) 2022-05-18 06:59:53 +00:00
ian
72a19477a7 Fix inconsistent revisions after batch update (#13250)
* Sort keys to ensure order

* Set query limit as the number of keys

* Add query limit only when reading by keys

* Update test

* Check if keys is of array type
2022-05-16 13:10:31 -04:00
Azri Kahar
a8908577dd Prevent changing active status of last admin user (#13309) 2022-05-16 11:21:15 -04:00
Samuele Zolfanelli
8d064fc646 Allow creating big integer auto-incremented primary keys in MySQL and PostgreSQL (#13301) 2022-05-16 11:12:17 -04:00
eikaramba
e063f1fe2a Stalling Sqlite when using cascading foreign contraints (#13307)
* Fix #10462: Stalling Sqlite when using cascading foreign contraints

otherwise the transaction pool runs full of knex

* make linter happy
2022-05-16 10:47:12 -04:00
ian
e004b0d596 Delete field only after foreign key constraints are removed (#13222) 2022-05-11 10:39:18 -04:00
Aiden Foxx
ccd5c39301 Display error message on OAuth errors (#13184)
* Display error message on oauth errors, and notify about incorrect provider

* Updated copy

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2022-05-09 15:14:11 -04:00
Rijk van Zanten
a36c7eabeb Use json parser wrapper function to prevent pollution attacks (#13191) 2022-05-09 14:57:38 -04:00
Rijk van Zanten
acab4eef35 Fix aliases (#13186)
* Fix REST alias usage

* Properly fix aliases
2022-05-09 10:58:45 -04:00
Nicola Krumschmidt
aeb919ba7f Update knex to version 2.0.0 (#13051)
* Update knex to version 2.0.0

Fixes #10842

* Remove unused optional dependencies

* Update sqlite3 to version 5.0.6

* Fix returning primary key when inserting items into database
2022-05-03 10:20:49 -04:00
Rijk van Zanten
aae90979fb Allow disabling GraphQL introspection (#13003) 2022-04-25 16:20:32 -04:00
Rijk van Zanten
70c70af4ee Support BOM in CSV import (#12993)
Fixes #12970
2022-04-25 10:39:19 -04:00
gkielwasser
625b1dbc7e Store original error code in extensions (#8034)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-04-22 17:32:39 -04:00
rijkvanzanten
18407ad7c3 Add missing " 2022-04-22 17:10:07 -04:00
Azri Kahar
90b5883f49 fix api for non existent fields & collections (#12952) 2022-04-22 10:49:03 -04:00
Azri Kahar
4438909186 Fix readSingleItems response from array to object (#12922) 2022-04-21 08:21:35 -04:00
Azri Kahar
08e57c2901 only set default value when exists for singleton (#12852) 2022-04-19 11:18:09 -04:00
Azri Kahar
098dc4cc70 fix directus_user mutation with role (#12849) 2022-04-19 10:32:08 -04:00
Azri Kahar
460f0ba003 Fix alias (#12826)
* fix alias

* minor clean up

* fix graphql nested junction aliases
2022-04-19 10:19:49 -04:00
Rijk van Zanten
986bd51759 Don't save directus_revisions row for empty delta (#12839)
Fixes #12838
2022-04-18 22:54:19 +00:00
ian
d8cf2bb234 Split filter key to get m2a nested collection name (#12739)
* Split filter key to get m2a nested collection name

* Add the collection field to the required permissions

* Adding required permissions to relational table

* Tidy up code
2022-04-13 14:37:17 -04:00
Azri Kahar
3fb81db1c9 Fix schema apply for CURRENT_TIMESTAMP default value (#12716)
* Fix schema apply for CURRENT_TIMESTAMP default val

* add typeof string check
2022-04-13 11:18:58 -04:00
Rijk van Zanten
f92fb0762f Return BigIntegers as Strings in GraphQL (#12688)
Fixes #12051
2022-04-11 16:57:21 -04:00
Rijk van Zanten
49f97dfdd4 Only add update_me permissions for logged in users (#12685)
Fixes #12256
2022-04-11 15:39:21 -04:00
Rijk van Zanten
a117e5b65f Add count fn support to gql (#12684) 2022-04-11 14:58:32 -04:00
ian
18d872a003 Merge permission's validation only when not empty (#12615) 2022-04-07 09:11:32 -04:00
ian
68066eccb7 Remove UTC conversion from date, time and datetime fields (#10956)
* Remove UTC conversion from date, time and datetime fields

* Fix mysql / maria timestamps when not in UTC timezone

* Add sequential tests with node timezone change

* Increase connection attempt check

* Add error catching in tests flow setup

* Check for server connectivity

* Fix promises

* Fix timestamp inconsistencies

* Revert to previously used parseISO

* Ensure database and directus connection

* Add another timezone to test positive and negative GMT

* Set local server hostname to localhost

* Add tests for SQLite

* Use notNullable primary key

* Revert connection testing sleep duration

* Fix nested transactions on SQLite

* Increase MSSQL request timeout

* Add type override flag for SQLite

* Remove commented code

* Add type override flags for Oracle

* Updated test file path

* Increase test servers launch timeout

* Increase test servers launch timeout

* Update format of tests

* Fix typo

* Increase test timeout for CockroachDB

* Add type overrides when creating fields through collections service

* Remove time field type conversion for Oracle

* Update collections list in test

* Remove check for time field in Oracle

* Add missing continue...

* Remove database override

* Add note for SQLite

* Rename flags and extract shared util

* Abstract remaining DB specific checks

* Revert flags renaming except renaming of test files

* Use date helper to add field flag

* Move field date typecasting upstream

* Use timestamp helper for date-created and date-updated

* Fix tests

* Remove unused vars

* Add tests for date-created

* Increase connection attempt count

* Fix test for mariadb

* Increase allowable difference to account for delays

* Add tests for date-updated

* Fix tests again for mariadb

* Add date helpers post merge

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-04-06 16:15:22 -04:00
ian
307cef8f5e Add permissions check for relational field only if child has filter (#12549)
* Add permissions check for relational field only if child has filter

* Allow id field for actions such as update and delete

* Use primary key instead of id

* Add test
2022-04-06 11:30:50 -04:00
ian
c6736c4f19 Fix access to count(*) aggregation (#12607) 2022-04-06 11:14:51 -04:00
Wryn (yage) Wagner
0930c2df97 Safe Metadata Upload (#12511)
* [Related to #11292] Safe Metadata Upload
- Created FILE_METADATA_ALLOWLIST
- Added test library for `FilesService`

* Rename ALLOWLIST->ALLOW_LIST to be consistent with other env vars

* Make sure it still works for files without Exif

* Prevent breaking changes in metadata formatting

* Allow * for all

* Fix md sup

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-04-04 20:43:56 -04:00
Christian Rendl
0206a3d2cc Added default locale before login (#8196)
* Added default locale before login

* Use project_language as default language for new users

* Revert "Use project_language as default language for new users"

* Allow user's language field to be nullable; Use project_language whenever language is unset;

* Apply suggestions from code review

Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>

* Make "Project Default" option in system-language interface configurable

* Set language only if user language is not null

* Introduced translation for project_language field; Use translation in system-language interface

* Set app language only from app.vue;
Included watcher to restore project_language if user's language is (re)set to null

* Removed .alter() in knex migration since it's not needed for changing default and breaks checks

* Reverted previous change in migration; .alter() is needed for changing column defaults

* Reverted migration to use .defaultTo(null) to set default value

* Update position of project language field in settings

* Fix cockroachdb test error in knex migration

* Fix cockroachdb test error in knex migration

* Apply migration fix also on oracle databases

* Apply changes from code review

* Rename migration to fix migration key error

* Move setLanguage calls to server.ts and hydrate.ts

Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: jaycammarano <jay.cammarano@gmail.com>
Co-authored-by: Christian Rendl <cr@mutor.at>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-04-01 14:30:56 -04:00
ian
8139b5b467 Fix filter permissions for relational fields (#12426)
* Fix filter permissions for relational fields

* Add tests for filtering of top level relational field with and without permissions on relational table

* Find read permission only

* Update test with more permissions
2022-04-01 14:20:44 -04:00
Rijk van Zanten
3307bed5fd Improve cache reliability in DDL operations (#12400)
* Add TTL to schema cache

* Clear caches on unexpected errors in DDL

* Consistent return value use

* Don't set a default value for schema ttl
2022-04-01 13:24:20 -04:00
Rijk van Zanten
175fb849c4 Add field-level validation (#12363)
* Add field validation column

* Add frontend config for validation

* Make it work

* Add regex to filter configuration

* Fix const/let

* Add custom validation message support

* Add custom validation message tooltip inline

* Fix custom names in validation errors up top

* Fix type error

* Nog eentje om het af te leren

* resolve unused import warnings
2022-03-25 18:03:36 -04:00
Spencer Jones
7d391ed4fa fix: handle nulls when processing m2m (#12187)
fixes #12099

Co-authored-by: Spencer Jones <sjones@morningconsult.com>
2022-03-25 13:42:55 -04:00
CommanderRoot
d81adcd674 refactor: replace deprecated String.prototype.substr() (#12344)
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated

Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-03-25 13:36:18 -04:00
Rijk van Zanten
caf698ed2f Use Url util to construct urls everywhere (#12394)
Fixes #12345
2022-03-25 13:21:59 -04:00
Rijk van Zanten
de152d1995 Fix inconsistent delete action payload (#12328)
Fixes #12326
2022-03-23 10:40:16 -04:00
ian
e2eb2801c5 Prefix existing field typecasting flags with "cast-" (#12141)
* Prefix typecasting field flags

* Fix payload test

* Update flags for system tables and for field creation in app

* Revert cast-hash and cast-uuid

* Rename migrations file to current date
2022-03-21 14:46:48 -04:00
ian
72180f7027 Add query filter validation with permissions (#12190)
* Add query filter validation with permissions

* Allow all fields in test

* Revert test and add check for permissions with empty fields

* Add check for deep filters

* Add tests

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-03-21 18:19:37 +00:00
ian
5068ca096b Add lock for system cache (#12017)
* Add lock for system cache

* Add lock when forcing a flush

* Simplify code

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-03-18 15:54:02 -04:00
Azri Kahar
e6e129615e fix M2O field deletion (#11538)
* fix M2O field deletion

* fix lint

* fix for MySQL

* Pull final dropColumn out of transaction

* Forget that, check for existing constraint before deleting it instead

* Fix lint warning in unrelated file

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-03-18 15:36:50 -04:00
Rijk van Zanten
1c3e94d830 Add new export experience (#12201)
* Use script setup

* Start on export dialog

* Use new system field interface, replace limit with numeric input

* Set placeholder

* Add sort config

* Use folder picker, correct layoutQuery use

* Add local download button

* Allow writing exports to file

* Add notification after export

* Fix sort config, use new export endpoint

* Setup notification hints

* Add information notice

* Fix local limit, cancel button

* Add (basic) docs for export functionality

* Fix json export file format

* Implement xml batch stitching

* Resolve review points
2022-03-17 15:43:45 -04:00
ian
a79290e4a2 Export authorization service (#12208) 2022-03-17 08:52:42 -04:00
Rijk van Zanten
6da3f1ed50 Add support for import ip deny list (#12025)
* Add support for import ip deny list

* Fix typo
2022-03-07 18:09:08 -05:00
Rijk van Zanten
eec21d8d9a Add "items.sort" event (#11954)
* Adds the 'sort_updated' event emit after items are sorted

Signed-off-by: Mihovil Ilakovac <mihovil.ilakovac@gmail.com>

* Updates the event name to 'sort_update'. Docs.

Signed-off-by: Mihovil Ilakovac <mihovil.ilakovac@gmail.com>

* Updates the event name to `sort`

* Add item/to to hook, fix docs

Co-authored-by: Mihovil Ilakovac <mihovil.ilakovac@gmail.com>
2022-03-04 19:58:47 -05:00
Rijk van Zanten
6a3eb823c3 Update base theme of the App (#11952)
* Add migration to remove default value from project_color

* Upgrade the default theme

* Do a pass over the header buttons

* Do another pass over --warning uses

* Little things

* Tweak smoke

* Use updated map

* Use dark system elements in dark mode

* Remove outdated files, update toasts

* Use correct delete button style for role

* Use primary for created point

* Tweak spacing in revisions section

* Use primary for sidebar sections

* Various color tweaks and changes

* Update base color palette

* Update "css reset" code

* Remove splashscreens, add default favicon

* Add primary highlight to datamodel page

* dark mode color update

* fix sign out hover color

* Does this help?!

* This fixes some loading issues

Fixes https://github.com/directus/directus/issues/10707

* Calculate default pretty background?

* Fix public view with logo

* Fix responsiveness of login page

* adjust notification group width to be equal

* Do an absolute pointless task that doesn't do anything

It was suggested that it could fix the stylelint error in tests, but alas

* Remove stylelint

Doesn't seem to play nice with script setup and other changes

Co-authored-by: Ben Haynes <ben@rngr.org>
2022-03-04 18:53:39 -05:00
Azri Kahar
9148062247 fix permission for field functions (#11771) 2022-02-21 11:19:03 -05:00
ian
773ef6dda9 Prevent creation of relationships on primary keys (#11441)
* Prevent creation of relationships on primary keys

* Use schema instead of schemaInspector
2022-02-16 15:17:33 +00:00
Oreille
c0fab454fd Explicitly set column nullable when unspecified (#11572) 2022-02-10 11:41:55 -05:00