kolaente
4f99bdb50c
fix(tasks): ambiguous done column in task sorting ( #1011 )
...
fix: prefix task fields in sorting
2025-06-24 20:37:25 +00:00
Frederick [Bot]
1621d25392
[skip ci] Updated swagger docs
2025-06-24 11:01:56 +00:00
kolaente
842a71019d
fix(view): add unique index for task buckets ( #1005 )
2025-06-24 10:45:17 +00:00
kolaente
57dfdc5168
chore: adjust comment about bucketless tasks ( #1004 )
...
docs: clarify bucketless task behavior
2025-06-24 09:56:58 +00:00
kolaente
49963d88a6
fix(task): add tasks table prefix for sort order ( #1003 )
...
fix: qualify task index for mysql order
2025-06-24 09:55:00 +00:00
kolaente
048e09ee12
fix(tasks): subtasks missing in list view ( #1000 )
2025-06-24 11:08:01 +02:00
Frederick [Bot]
adc1ecaef1
chore(i18n): update translations via Crowdin
2025-06-23 01:01:09 +00:00
Frederick [Bot]
6bdb990de5
chore(i18n): update translations via Crowdin
2025-06-18 00:57:29 +00:00
kolaente
34a5196a05
feat: add email filter to user list command ( #973 )
2025-06-17 12:38:04 +00:00
Frederick [Bot]
7f8006e3f1
[skip ci] Updated swagger docs
2025-06-17 09:38:12 +00:00
Dominik Pschenitschni
5b9d4fcc72
chore: add missing eof newlines ( #969 )
2025-06-17 09:11:32 +00:00
kolaente
663339a294
feat(test): add benchmark for task search ( #963 )
2025-06-16 21:41:14 +02:00
Frederick [Bot]
719cb11d44
[skip ci] Updated swagger docs
2025-06-16 14:10:07 +00:00
Weijie Zhao
a214d68a44
feat(auth): sync avatar from OpenID providers ( #821 )
2025-06-16 15:59:31 +02:00
kolaente
916c0212b5
feat(link share): add feature test for link share avatar access ( #944 )
2025-06-14 18:22:45 +02:00
kolaente
59a0b9c40d
feat(auth): require auth to fetch avatars ( #930 )
2025-06-14 13:12:41 +00:00
kolaente
6671ce38a8
chore: rename API test suites ( #938 )
2025-06-13 08:23:17 +00:00
kolaente
da95463bb2
fix(migration): detect header lines in csv file when importing from TickTick ( #937 )
2025-06-13 07:45:54 +00:00
kolaente
0145a8ba50
feat!(config): store sqlite file relative to rootpath ( #934 )
...
Moderately breaking change since in most cases the root path was already set next to the binary.
2025-06-13 09:16:25 +02:00
Frederick [Bot]
15a1919d22
chore(i18n): update translations via Crowdin
2025-06-12 00:56:35 +00:00
kolaente
842e7f524b
fix: always add public url to allowed cors origins
...
This fixes a bug where it was not possible to do anything because the public url was not allowed by default for CORS requests.
Regression from 433b8b9115
Resolves https://github.com/go-vikunja/vikunja/issues/916
2025-06-11 14:29:38 +02:00
kolaente
433b8b9115
feat: enable cors by default for desktop app ( #904 )
2025-06-10 20:43:13 +02:00
Frederick [Bot]
191125e122
[skip ci] Updated swagger docs
2025-06-10 11:21:02 +00:00
kolaente
f070268c30
feat: check configured default timezone on startup ( #903 )
2025-06-10 11:03:58 +00:00
Dominik Pschenitschni
296577a875
fix: correct license header references ( #882 )
...
See originals:
- https://www.gnu.org/licenses/agpl-3.0.txt
- https://www.gnu.org/licenses/gpl-3.0.txt
2025-06-10 12:18:38 +02:00
Dominik Pschenitschni
62f048767c
fix: correct unknown subscription entity typo ( #883 )
2025-06-10 12:18:07 +02:00
Dominik Pschenitschni
488b15c128
docs(web): fix typos
2025-06-10 12:10:42 +02:00
Dominik Pschenitschni
4146e91616
docs: mention AGPL-3.0-or-later in CLI help ( #893 )
2025-06-10 12:07:52 +02:00
Dominik Pschenitschni
508cdf027c
fix: param type ( #895 )
2025-06-10 12:06:41 +02:00
Dominik Pschenitschni
8632bd2063
fix: TOTP account lock notification typo ( #858 )
2025-06-05 16:24:41 +02:00
kolaente
44b3e46325
fix: return correct mimetype for openapi docs.json
...
Resolves https://github.com/go-vikunja/vikunja/issues/864
2025-06-04 16:12:46 +02:00
kolaente
5c17d5b90c
fix(config): set value when env variable contains string value
2025-05-23 12:47:56 +02:00
renovate[bot]
bbf7679dd4
fix(deps): update module github.com/olekukonko/tablewriter to v1 ( #750 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-05-23 10:00:58 +00:00
Frederick [Bot]
76bba1fb92
chore(i18n): update translations via Crowdin
2025-05-23 00:55:39 +00:00
kolaente
d7d277f9b6
fix(config): do not attempt to parse config values from env when they contain an invalid data type
...
Related https://github.com/go-vikunja/vikunja/issues/719
2025-05-22 17:06:20 +02:00
Frederick [Bot]
b96a1701d8
chore(i18n): update translations via Crowdin
2025-05-22 00:55:50 +00:00
kolaente
ca98b7da73
feat: add /token/test route
...
This new route returns 200 if a valid bearer token was presented. It does not return any information about the user.
2025-05-21 22:27:34 +02:00
kolaente
c4566fdb53
chore(i18n): improve overdue task emails translation
2025-05-21 10:28:50 +02:00
Frederick [Bot]
1648b71634
[skip ci] Updated swagger docs
2025-05-20 08:12:41 +00:00
Weijie Zhao
00c4148f05
feat(auth): add ForceUserInfo option to OpenID provider ( #797 )
...
Problem:
When using Casdoor as an OpenID provider, there's an inconsistency between the user information in the JWT token and the UserInfo endpoint. The token contains the user's unique ID in the `name` field, while the UserInfo endpoint correctly returns the user's display name.
Solution:
This PR adds a new `ForceUserInfo` option to the OpenID provider configuration. When enabled, it forces the use of the UserInfo endpoint to retrieve user information instead of relying on claims from the ID token.
Impact:
- Default behavior remains unchanged (backward compatible)
- New option allows administrators to force using UserInfo endpoint data
- Particularly useful for providers like Casdoor that don't fully comply with OIDC standards
Related:
I've opened an issue in the Casdoor repository (https://github.com/casdoor/casdoor/issues/3806 ) to discuss the root cause. However, changing Casdoor's token structure might cause significant compatibility issues for existing integrations, so it's unclear if this can be fixed at the provider level. This PR provides a workaround in Vikunja that doesn't affect existing functionality.
2025-05-20 08:06:34 +00:00
Frederick [Bot]
adf54f97ab
chore(i18n): update translations via Crowdin
2025-05-20 00:56:51 +00:00
kolaente
5acca8144b
fix(projects): do not try to fetch project permissions when no projects exist
...
Resolves https://vikunja.sentry.io/issues/6572520737/events/2a747d0e53e7431fafca89429c552eae/
2025-05-19 18:21:05 +02:00
Frederick [Bot]
5df5030c68
chore(i18n): update translations via Crowdin
2025-05-18 00:59:45 +00:00
Frederick [Bot]
fad3e05ba8
chore(i18n): update translations via Crowdin
2025-05-17 00:54:35 +00:00
kolaente
d16d13d730
feat(i18n): use plural translations in humanize duration
2025-05-16 21:57:07 +02:00
kolaente
96369f3b1c
feat(i18n): add params replacement to translation functions
2025-05-16 21:57:07 +02:00
kolaente
43f9fb61a7
feat(i18n): add pluralization function for translation strings
2025-05-16 21:57:07 +02:00
Frederick [Bot]
53f201bdfc
chore(i18n): update translations via Crowdin
2025-05-16 00:55:58 +00:00
kolaente
9f30a099ee
fix(projects): (un-)archive child projects when archiving parent ( #775 )
2025-05-15 14:31:56 +00:00
kolaente
3e46457c03
fix: remove unused import
2025-05-15 09:54:15 +02:00
kolaente
13dfe78121
fix(project): correctly handle invalid project id error
2025-05-15 09:50:33 +02:00
kolaente
cb0e68f625
fix(i18n): make notification settings link translatable
2025-05-15 09:18:27 +02:00
Frederick [Bot]
ee0c68b1a2
chore(i18n): update translations via Crowdin
2025-05-15 00:54:18 +00:00
Frederick [Bot]
c19a8cfcc4
[skip ci] Updated swagger docs
2025-05-13 11:27:04 +00:00
kolaente
4d8c17f577
feat(i18n): make overdue reminder translations more explicit ( #761 )
2025-05-13 11:12:56 +00:00
Piotr Sarna
1d38306e7d
fix(docs): improve swagger output by setting swaggertype and enums ( #705 )
...
Co-authored-by: Piotr Sarna <piotr@piksar.eu>
2025-05-13 11:02:12 +00:00
kolaente
f7229ba647
fix(i18n): translate all parts of reminder notifications
2025-05-12 16:24:20 +02:00
Frederick [Bot]
aaf6de11a5
[skip ci] Updated swagger docs
2025-05-12 10:24:22 +00:00
Vladimir
c3fffefcf4
fix(db): refactor filtering with subqueries ( #701 )
...
Resolves #285
2025-05-12 10:52:48 +02:00
Frederick [Bot]
3e02604317
chore(i18n): update translations via Crowdin
2025-05-12 00:57:57 +00:00
Frederick [Bot]
48814867b4
chore(i18n): update translations via Crowdin
2025-05-11 00:58:59 +00:00
Frederick [Bot]
7b693f055f
chore(i18n): update translations via Crowdin
2025-04-28 00:56:09 +00:00
Frederick [Bot]
ad8a17571c
chore(i18n): update translations via Crowdin
2025-04-12 00:52:09 +00:00
Frederick [Bot]
8e6b059634
chore(i18n): update translations via Crowdin
2025-04-11 00:52:53 +00:00
Frederick [Bot]
9fe2caa251
chore(i18n): update translations via Crowdin
2025-04-10 00:52:35 +00:00
renovate[bot]
4a75f7d4da
chore(deps): update golangci/golangci-lint-action action to v7 ( #462 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-04-02 09:28:56 +02:00
Frederick [Bot]
c381e47720
chore(i18n): update translations via Crowdin
2025-03-31 00:55:09 +00:00
kolaente
7803fe8aef
fix(avatar): use keyvalue store to cache gravatar instead of map
...
Resolves https://community.vikunja.io/t/docker-crash-concurrent-map-writes-google-login/3454
2025-03-30 16:24:34 +02:00
kolaente
6847f44058
chore(openid): add more debug logging when retrieving token
2025-03-29 19:24:07 +01:00
kolaente
4ea3c01b5f
chore: add more debug logging when returning error
2025-03-29 18:21:34 +01:00
kolaente
303dbec78a
feat(i18n): add Hebrew translation for selection
2025-03-27 11:58:23 +01:00
kolaente
cfc7f17352
feat(i18n): add Finnish translation for selection
2025-03-27 11:54:17 +01:00
Frederick [Bot]
03ca85aaf1
chore(i18n): update translations via Crowdin
2025-03-26 00:21:22 +00:00
kolaente
25f3c5d9d7
fix(migration): cast to text
2025-03-25 21:47:52 +01:00
kolaente
26eeb07829
fix(i18n): adjust task strings
2025-03-25 09:18:13 +01:00
Frederick [Bot]
04a7cabbcb
chore(i18n): update translations via Crowdin
2025-03-25 00:23:17 +00:00
kolaente
2e11c55e9e
fix(test): use correct assertion
...
Resolves a regression introduced in 1bdb01712e
2025-03-24 17:41:39 +01:00
kolaente
1bdb01712e
fix(filter): correctly use user time zone when filtering for date fields
...
Resolves https://community.vikunja.io/t/upcoming-list-doesnt-display-repeating-tasks/3539
2025-03-24 17:22:33 +01:00
kolaente
3509f1beb3
chore!: remove deprecated config settings
2025-03-24 16:52:46 +01:00
kolaente
13d4e0e00d
chore(utils): remove deprecated MakeRandomString function
2025-03-24 16:52:46 +01:00
Frederick [Bot]
f188762b86
chore(i18n): update translations via Crowdin
2025-03-24 00:22:33 +00:00
kolaente
62b2c6771a
fix(project): correctly migrate old project view filters
...
This fixes a bug where old filters where not converted to the new json format correctly, leading to issues when trying to decode the raw filter string as json.
It is unclear whether that old migration had a bug or was not executed at all.
This change adds a new migration to fix all filters in views still stuck in the old filter string format.
Resolves https://github.com/go-vikunja/vikunja/issues/420
2025-03-23 21:34:49 +01:00
kolaente
063753a543
fix(filter): do not try to set timezone when doer does not exist
...
Resolves https://vikunja.sentry.io/issues/6025547266/events/e0d0a5fdf01c46a2ac9101d94ab4f304/
2025-03-23 19:08:11 +01:00
kolaente
8489cf57f6
fix(typesense): use upsert instead of emplace when updating tasks in typesense
...
Resolves https://github.com/go-vikunja/vikunja/issues/376
2025-03-23 18:46:49 +01:00
kolaente
bbd9d0d0b3
fix(comment): add validation check for the max comment length
...
Resolves https://vikunja.sentry.io/issues/6441922105/events/245b8f1de3e64951a108e2f6cb654c58/
2025-03-23 18:03:29 +01:00
kolaente
4e504c288e
fix(auth): hide two factor authentication when using non-local user
...
Resolves https://github.com/go-vikunja/vikunja/issues/431
2025-03-23 17:43:36 +01:00
Frederick [Bot]
2e2f82bc44
chore(i18n): update translations via Crowdin
2025-03-22 00:21:30 +00:00
kolaente
4d41a1bd9b
feat(kanban): create To-Do, Doing, Done buckets when creating a new kanban view
2025-03-21 19:16:52 +01:00
kolaente
d522d40773
fix(migration): do not fail when an attachment is too large
...
Resolves https://vikunja.sentry.io/issues/6389417364/events/d79bdea146b54a9dace8c81e3f787975/
2025-03-21 18:03:27 +01:00
kolaente
23d2814b94
fix(migration): check if the provided file is a valid csv before importing
2025-03-21 17:53:05 +01:00
kolaente
d19a93dece
fix(migration): check if uploaded csv is empty
2025-03-21 17:48:08 +01:00
kolaente
0585045260
fix(kanban): Mark tasks done when creating them in the done bucket
...
Resolves https://community.vikunja.io/t/bugs-around-project-duplication-with-kanban-buckets/3433/6
2025-03-21 17:32:50 +01:00
kolaente
096de3382f
fix(kanban): load full task when moving task between buckets
2025-03-21 16:59:20 +01:00
Frederick [Bot]
c4ef566a42
chore(i18n): update translations via Crowdin
2025-03-21 00:21:23 +00:00
kolaente
e3f006c527
fix(i18n): add missing translations
2025-03-20 17:41:45 +01:00
kolaente
5a93379d81
fix(ldap): update user name and email during login
2025-03-20 17:24:00 +01:00
kolaente
d585de77a4
fix(ldap): crop avatar when syncing
2025-03-20 17:19:58 +01:00
kolaente
e287364b78
fix(team): do not allow leaving exernal teams
2025-03-20 17:13:51 +01:00
kolaente
b010e3851c
fix(project): add position in test fixtures
2025-03-20 14:00:18 +01:00
kolaente
6e9886c6b8
fix(project): make order stable in duplicate test
2025-03-20 13:46:32 +01:00
Frederick [Bot]
8e475e77be
chore(i18n): update translations via Crowdin
2025-03-20 00:21:23 +00:00
kolaente
164f2eab9d
feat(ldap): also look for username only when checking group membership
2025-03-19 22:16:12 +01:00
kolaente
f4b9a9cccd
feat(ldap): make member id attribute configurable
2025-03-19 22:15:50 +01:00
kolaente
84cbd25e67
chore(project): do not use fmt.Sprintf directly
2025-03-19 19:47:38 +01:00
kolaente
7e1aba7606
fix(kanban): correctly set default bucket id when duplicating project
...
Partially resolves https://community.vikunja.io/t/bugs-around-project-duplication-with-kanban-buckets/3433
2025-03-19 17:28:59 +01:00
kolaente
4887f7fe60
fix(webhook): do not fail to send webhook when loading the project fails
...
https://community.vikunja.io/t/webhook-project-error/3305/7
2025-03-19 16:27:04 +01:00
Frederick [Bot]
4998926f55
[skip ci] Updated swagger docs
2025-03-19 15:21:25 +00:00
kolaente
617070f9f7
fix(kanban): use full updated kanban bucket when moving task
2025-03-19 16:06:20 +01:00
kolaente
134c2a1a80
fix(kanban): do not allow creating tasks in full bucket
2025-03-19 15:18:55 +01:00
kolaente
ea42fef2da
feat: don't log all headers when debug log is enabled
...
This reverts commit 9fc6cdd076 .
2025-03-19 15:15:04 +01:00
kolaente
ffd5a962f5
feat(i18n): add Turkish as language for selection
2025-03-19 14:56:35 +01:00
kolaente
e12ebfebed
feat(ldap): sync avatar from ldap
2025-03-18 18:28:54 +01:00
kolaente
26c7ceaed4
chore(avatar): decouple upload from web handler
2025-03-18 18:28:54 +01:00
kolaente
77480814fd
fix(i18n): translations json
2025-03-18 18:28:29 +01:00
kolaente
732431773d
fix(i18n): remove duplicate api strings
2025-03-18 18:23:47 +01:00
Frederick [Bot]
02f9f92232
[skip ci] Updated swagger docs
2025-03-18 16:58:29 +00:00
kolaente
99213c66ee
chore(openid): use general external team sync
2025-03-18 16:36:00 +00:00
kolaente
216df5bedc
feat(ldap): make group sync configurable
2025-03-18 16:36:00 +00:00
kolaente
a3b19a7b3c
feat(auth): refactor group sync
2025-03-18 16:36:00 +00:00
kolaente
c2f286437c
feat(auth): ldap group sync
2025-03-18 16:36:00 +00:00
kolaente
9f5c761fd9
chore(auth): rename error
2025-03-18 16:36:00 +00:00
kolaente
06851ca639
chore(auth): rename external team id find methods
2025-03-18 16:36:00 +00:00
kolaente
62beb3db2d
feat(auth): rename oidc_id to external_id
2025-03-18 16:36:00 +00:00
Frederick [Bot]
55a078b171
chore(i18n): update translations via Crowdin
2025-03-18 00:21:21 +00:00
kolaente
12aba8e9b1
chore(openid): move openid team struct to openid package
2025-03-17 17:34:49 +01:00
Frederick [Bot]
e5160bf1fe
chore(i18n): update translations via Crowdin
2025-03-17 00:21:14 +00:00
kolaente
87cfe89441
feat(ldap): add tests
2025-03-16 18:23:55 +01:00
kolaente
91f9fe5b96
fix(ldap): return meaningful error when providing wrong credentials
2025-03-16 18:23:55 +01:00
Frederick [Bot]
754e1541ae
[skip ci] Updated swagger docs
2025-03-16 17:17:37 +00:00
kolaente
dbb4652fad
fix(docs): clarify team member username instead of id
2025-03-16 18:02:17 +01:00
Frederick [Bot]
3dc63986b2
[skip ci] Updated swagger docs
2025-03-16 16:35:04 +00:00
kolaente
5c6be117fe
fix(kanban): increase dates when moving a task into the done bucket
...
Resolves https://community.vikunja.io/t/unable-to-drag-a-repeating-task-to-done-bucket/3321/2
Resolves https://github.com/go-vikunja/vikunja/issues/402
2025-03-16 17:19:51 +01:00
Frederick [Bot]
ddf5fab364
chore(i18n): update translations via Crowdin
2025-03-16 00:21:45 +00:00
Frederick [Bot]
c0de2e03b7
chore(i18n): update translations via Crowdin
2025-03-14 00:21:16 +00:00
kolaente
e94c744477
fix(auth): return ldap as auth provider name when using it
2025-03-09 09:23:40 +01:00
Frederick [Bot]
0f81e18d85
chore(i18n): update translations via Crowdin
2025-03-09 08:05:39 +00:00
kolaente
9fc6cdd076
feat: log request headers when debug logs are enabled
...
Related to https://github.com/go-vikunja/vikunja/issues/415
2025-03-08 14:47:21 +01:00
Frederick [Bot]
de403c365a
[skip ci] Updated swagger docs
2025-03-02 19:00:53 +00:00
kolaente
61333c9b7f
fix: lint
2025-03-02 19:43:41 +01:00
Marc
f4a0c0ef31
feat(auth): sso fallback mapping ( #3068 )
...
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/3068
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Marc <marc88@free.fr>
Co-committed-by: Marc <marc88@free.fr>
2025-03-02 15:21:09 +00:00
Frederick [Bot]
b489703d6f
[skip ci] Updated swagger docs
2025-03-02 15:09:28 +00:00
kolaente
4e93806a44
fix(auth): load oidc provider before trying to use it
...
Resolves https://kolaente.dev/vikunja/vikunja/issues/3067
2025-03-02 14:09:02 +01:00
kolaente
bbbfbb36bb
fix(filters): ignore invalid task fields when recomputing task positions
...
Resolves https://vikunja.sentry.io/issues/6025547266/
2025-03-02 14:00:31 +01:00
kolaente
734033c843
fix(avatars): always return correct mime type for cached avatar
2025-03-02 13:33:40 +01:00
kolaente
2ead48c1e9
fix(migration): do not crash when relating a task to itself
...
Resolves https://community.vikunja.io/t/vikunja-import-error-tried-to-relate-a-task-with-itself/1105
2025-03-02 13:24:55 +01:00
kolaente
c6cade3aeb
feat(i18n): automatically set language during registration
2025-03-02 13:21:24 +01:00
kolaente
4e90c6bb78
chore(deps): update golangci-lint
2025-03-02 13:00:18 +01:00
kolaente
1d1295e065
feat(i18n): add translations for migration notifications
2025-03-02 12:33:30 +01:00
kolaente
250bb8ec99
fix(i18n): pass language to notification mail function
2025-03-02 12:29:31 +01:00
kolaente
f662b79abb
fix(i18n): use only one function to get translations
2025-03-02 12:27:10 +01:00
kolaente
c00768499f
fix(notifications): test assertion
2025-03-02 12:05:17 +01:00
kolaente
e11a3026b9
feat: translate notifications
2025-03-02 11:41:38 +01:00
kolaente
b230bb94a4
chore(webhook): refactor reloading event data
2025-02-24 18:18:38 +01:00
kolaente
70e1fdae91
feat: always add project to webhook payload
...
Resolves https://github.com/go-vikunja/vikunja/issues/410
2025-02-21 19:45:07 +01:00
kolaente
398d0c7ab5
fix: add missing error messages to translations
2025-02-21 17:27:52 +01:00
kolaente
65df9e5ef9
fix: return meaningful error message when selecting an invalid timezone
2025-02-21 17:20:51 +01:00
das_j
989a40ad42
fix(caldav): return other status codes than 500 when projects are not found ( #3065 )
...
This allows CalDav clients to behave properly. In particular, DavX5 will error out on syncing the collections list rather than removing deleted projects from its local cache.
Resolves: https://community.vikunja.io/t/deleting-a-project-breaks-caldav/3315/3
Co-authored-by: Janne Heß <janne@hess.ooo>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/3065
Reviewed-by: konrad <k@knt.li>
Co-authored-by: das_j <das_j@noreply.kolaente.dev>
Co-committed-by: das_j <das_j@noreply.kolaente.dev>
2025-02-06 12:38:27 +00:00
kolaente
e9d9f04763
chore: improve debug logging
2025-02-03 17:42:17 +01:00
jyte
e9444159c5
Add Issuer and Subject to user list command ( #3063 )
...
I believe that it is possible to endup in the following situation :
- A user logs in using an authorized OIDC provider
- A vikunja user is created with the issuer & subject from the OIDC provider
- The same user logs in using another OIDC provider
- A 2nd vikunja user is created with a different issuer (possibly all other fields beside `created`, `updated` and `id` are equals)
I think it is important to be able to distinguish them in the `user list` command.
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/3063
Co-authored-by: jyte <marc88@free.fr>
Co-committed-by: jyte <marc88@free.fr>
2025-01-30 17:22:02 +00:00
Frederick [Bot]
60aa9485b1
[skip ci] Updated swagger docs
2025-01-28 10:18:36 +00:00
kolaente
90bf5ba81b
chore(auth): refactor registration enabled setting in /info
2025-01-28 09:59:08 +00:00
kolaente
9dc351f5a4
feat(auth): show login form when only ldap is enabled
2025-01-28 09:59:08 +00:00
kolaente
f898bdaf2d
feat(auth): use config variable to check if we should verify tls
2025-01-28 09:59:08 +00:00
kolaente
03412dd358
feat(auth): verify ldap config before trying to connect
2025-01-28 09:59:08 +00:00
kolaente
d22c3fb19e
feat(auth): make ldap user filter configurable
2025-01-28 09:59:08 +00:00
kolaente
f01dd2ff52
feat(auth): make sure local auth and ldap can both work when configured at the same time
2025-01-28 09:59:08 +00:00
kolaente
71cad7aa13
chore(auth): refactor creating users in openid and ldap
2025-01-28 09:59:08 +00:00
kolaente
38bb8de4f1
feat(auth): authenticate users via ldap
2025-01-28 09:59:08 +00:00
kolaente
ef01c2217b
fix(task): correctly validate all task fields
2025-01-25 14:38:25 +01:00
kolaente
acf1ce862a
fix(filter): validate fields before using them
...
Resolves https://vikunja.sentry.io/share/issue/0e99ec2d0ee64e7aa40ea78098d5a316/
2025-01-24 19:06:59 +01:00
Frederick [Bot]
878b443ce6
[skip ci] Updated swagger docs
2025-01-24 14:04:14 +00:00
kolaente
5c02527d2d
fix!(config): read all env variables into config store explicitly
...
This changes the way environment variables are read into Vikunja's config.
With this change, Vikunja loads the config from all env variables into the config store explicitly, after all config files have been processed. The breaking change here is that values from env variables now may override values from a config file when both are specified.
This allows specifying openid providers using only environment values. Previously this still required a config file to work, because viper wouldn't know about these values otherwise.
Resolves https://community.vikunja.io/t/configure-openid-via-environment/628/16
2025-01-24 14:42:27 +01:00
kolaente
9aa197b196
fix: swagger docs
2025-01-24 14:20:07 +01:00
kolaente
6b7c3ffef3
feat(tasks): add parameter to expand comments on a task
2025-01-24 13:00:06 +01:00
kolaente
75bd569a93
fix(projects): return list of projects when accessing as link share
2025-01-24 11:46:45 +01:00
kolaente
e887cdeb5e
feat(task): expand reactions via parameter
2025-01-24 11:39:51 +01:00
kolaente
68d07a8c0f
feat(webhooks): expand buckets in webhooks
...
Resolves https://community.vikunja.io/t/bucket-id-is-0-in-webhook-payload-after-moving-task-between-columns/2993/2
2025-01-24 11:21:53 +01:00
kolaente
333e35e648
feat: add expand property to read one task
2025-01-24 11:20:23 +01:00
kolaente
7f6cb1e06e
feat: expand buckets
2025-01-24 11:03:40 +01:00
kolaente
bc0c0b103f
feat: validate expand api parameter
2025-01-24 10:09:36 +01:00
kolaente
88761db2b1
fix(auth): check for existence of field before casting
...
Resolves https://vikunja.sentry.io/share/issue/6a21a679011a40b290ac531dd96c2adc/
2025-01-22 09:45:14 +01:00
Frederick [Bot]
94da5c1c4e
[skip ci] Updated swagger docs
2025-01-21 15:46:37 +00:00
kolaente
090dd4b2f6
fix(user): do not allow changing name in settings when the user originates from an external auth provider
...
This improves the UX because it does not allow external users to change their name in Vikunja, since that change would be overridden once they log in again.
Resolves https://github.com/go-vikunja/vikunja/issues/357
2025-01-21 16:27:06 +01:00
kolaente
760f6d6800
fix(projects): adjust test assumptions
...
This adjusts the test for the changes made in f6bfe2f13c
2025-01-21 12:43:01 +01:00
kolaente
f6bfe2f13c
fix(quick actions): show saved filters in search results
...
This fixes a bug where saved filters would not show up in quick actions search results. It was caused by explicitely only searching for projects.
During the debugging of this, I've discovered the search parameter is ignored when searching for filters.
Resolves https://community.vikunja.io/t/virtual-projects-a-k-a-saved-filters-do-not-show-up-in-search-bar-results/3180/4
2025-01-21 11:07:28 +01:00
kolaente
b85befb86a
fix: start server when listening on socket
...
This fixes a regression introduced in daa7ad053c where the http server was not started when listening on a unix socket instead of a http interface.
Resolves https://github.com/go-vikunja/vikunja/issues/396
2025-01-21 10:18:14 +01:00
Frederick [Bot]
20cd15fb98
[skip ci] Updated swagger docs
2025-01-21 07:27:59 +00:00
kolaente
f25f983417
feat(notifications): include link to settings in notifications
2025-01-20 17:38:18 +01:00
kolaente
debdcd4dd3
docs: clarify return value of /tasks
2025-01-20 16:23:26 +01:00
kolaente
a7be41ef04
fix(filter): do not override filter include nulls query
...
This fixes a bug where the "include nulls" query parameter would get overridden when the current view had a filter set, even if that filter didn't specify the parameter.
2025-01-20 14:23:35 +01:00
kolaente
6673adf0b5
fix(filter): do not show tasks in filter results when they are filtered out by labels
...
This fixes a bug where tasks which were filtered out by their label would still be shown. That was caused by the way the filter query was translated to sql under the hood.
Resolves https://github.com/go-vikunja/vikunja/issues/394
2025-01-20 14:05:42 +01:00
kolaente
4858f7c82f
fix(project): transfer ownership after deleting a user
...
This fixes a bug where the ownership of a project was not transferred when the user was deleted, leading to errors when viewing the project, as the owner user could not be found.
Resolves https://kolaente.dev/vikunja/vikunja/issues/2827
2025-01-20 12:25:38 +01:00
kolaente
0e37049343
fix(migration): add more debug logging
2025-01-20 12:08:10 +01:00
Dominik Pschenitschni
47538ca810
fix: method name
2025-01-17 13:59:12 +01:00
kolaente
abae6f05e0
fix(auth): move read all notifications to notification group
...
Resolves
https://kolaente.dev/vikunja/vikunja/issues/2977
2025-01-17 12:52:42 +01:00
kolaente
45ec1a4c47
fix(auth): make sure routes from the "other" group work as intended
...
Resolves
https://kolaente.dev/vikunja/vikunja/issues/2977
2025-01-17 11:06:00 +01:00
kolaente
2522cffa61
fix(auth): return proper error when a jwt claim contains wrong data
...
Resolves https://vikunja.sentry.io/share/issue/69b578ccc3794de58cecfc7b8291ae64/
2025-01-14 16:38:49 +01:00
kolaente
33b9917c7d
fix(auth): return correct error when trying to do a user action as a link share
...
Resolves https://vikunja.sentry.io/share/issue/77f7aa4cda9442439deba3cfe2cb32c6/
2025-01-14 15:01:13 +01:00
kolaente
1db99dba47
fix(kanban): correctly check bucket limit for saved filters or view filters
...
Resolves https://github.com/go-vikunja/vikunja/issues/355
2025-01-09 16:21:28 +01:00
kolaente
017fa1b5af
fix(restore): restore encoded float values properly
...
Resolves https://kolaente.dev/vikunja/vikunja/issues/2934
2025-01-09 15:42:12 +01:00
kolaente
7e66f3ec6b
fix(restore): make sure all json columns are properly restored
2025-01-09 15:40:22 +01:00
kolaente
3d5d17336e
fix(migration): return proper error when uploaded file is not a zip file
...
Resolves https://vikunja.sentry.io/share/issue/73a7b6f60b3e446e949d072016f31c22/
2025-01-09 14:32:24 +01:00
Frederick [Bot]
0826d72e38
[skip ci] Updated swagger docs
2024-12-22 23:39:06 +00:00
kolaente
70f1b4f28b
fix(export): update only current user export file id
2024-12-22 19:48:47 +01:00
kolaente
703a88e99f
fix: lint
2024-12-17 10:53:18 +01:00
kolaente
4359819faf
fix(auth): do not allow commas in usernames
2024-12-16 23:09:35 +01:00
kolaente
47ff7d8ad3
fix(migration): fetch members when they do not exist
...
Resolves https://github.com/go-vikunja/vikunja/issues/378
2024-12-15 13:11:29 +01:00
kolaente
28a58303f0
fix(auth): convert to int when failed password value is not int
...
Resolves https://github.com/go-vikunja/vikunja/issues/377
2024-12-13 20:46:36 +01:00
kolaente
b3c93ae811
fix(task): do not update all project_view ids
...
Might fix https://community.vikunja.io/t/not-able-to-move-task-between-buckets-within-a-kanban-view-for-saved-filter/2882/6
2024-12-11 18:50:01 +01:00
kolaente
c9a68d3a63
fix(openid): lint
2024-12-11 17:10:41 +01:00
kolaente
7ac2c42e4d
fix(caldav): fetch saved filter
...
This fixes a bug which caused fetching saved filter and favorite projects to crash, because the respective project ID is not a valid project id without special handling.
2024-12-11 17:05:51 +01:00
kolaente
5abca0927b
fix(caldav): do not crash with error 400 when fetching the list of all projects
...
Because the "all projects" handler is the same as the one to fetch a single project, the handler would fail because no project was specified. However, it should return an empty project instead so that it later fetches all projects.
Resolves https://community.vikunja.io/t/http-400-when-trying-to-connect-via-caldav/3054
2024-12-11 16:51:30 +01:00
kolaente
4512045cbf
fix: check if all required keys are available when parsing openid configuration
...
Related to https://github.com/go-vikunja/vikunja/issues/371
2024-12-11 16:25:41 +01:00
kolaente
25fd0f6108
fix(filter): correctly create task positions during filter creation
...
This fixes a bug where a saved filter would contain many "dead" entries for tasks which are not part of that filter. These entries were "dead" because the filter would not match for them and thus they were not shown.
The problem was caused by a routine during the creation of the filter where all projects from all matching tasks would be used as input for fetching the tasks to add to task_positions.
https://community.vikunja.io/t/not-able-to-move-task-between-buckets-within-a-kanban-view-for-saved-filter/2882/3
2024-12-09 19:21:13 +01:00
kolaente
942c2e4af6
fix: specify cols when upgrading
...
Resolves https://github.com/go-vikunja/vikunja/issues/367
2024-12-09 17:42:31 +01:00
graves501
ed5474a28a
fix(typo): Simpl -> Simple -> GetProjectsMapSimpleByTaskIDs ( #2906 )
...
Fix typo -> GetProjectSimplByTaskID -> GetProjectSimpleByTaskID
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2906
Co-authored-by: graves501 <graves501@protonmail.com>
Co-committed-by: graves501 <graves501@protonmail.com>
2024-12-09 13:55:16 +00:00
kolaente
8d8406df05
fix: task overdue at the same time as the notification
...
If a task is overdue at the same time the notification is sent, it would contain a message like "overdue since" without a time. This now shows "overdue now" instead.
2024-12-03 08:33:16 +01:00
kolaente
8732837596
chore: simplify sentry code
2024-11-22 12:05:02 +01:00
kolaente
3659b7b58d
fix(attachments): check permissions when accessing all attachments
2024-11-21 15:42:53 +01:00
kolaente
bbbd936868
fix(saved filters): check permissions when accessing tasks of a filter
2024-11-21 15:42:26 +01:00
ScribblerCoder
a5cc5e3783
Add healthcheck command ( #2856 )
...
Currently vikunja has a `/health` endpoint that was added in https://kolaente.dev/vikunja/vikunja/pulls/998 . Docker/compose cannot utilize this feature since vikunja's docker image doesn't have curl/wget as it is pruned which is great for the image size. This PR adds a `healthcheck` command that send an http request to `/health` and exits with 0 or non-zero depending on the result.
It also adds a `HEALTHCHECK` to the docker image which calls this automatically.
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2856
Reviewed-by: konrad <k@knt.li>
Co-authored-by: ScribblerCoder <omar2001.oh@gmail.com>
Co-committed-by: ScribblerCoder <omar2001.oh@gmail.com>
2024-11-20 18:04:55 +00:00
kolaente
f2eac4623d
fix(filters): do not crash when paginating bucket with empty filter
...
Resolves https://community.vikunja.io/t/error-in-kanban-view-of-virtual-project-saved-filter/2876/7
2024-11-19 19:32:09 +01:00
kolaente
0b9fd2c485
fix(project): correctly set done bucket after duplicating project
...
Resolves https://community.vikunja.io/t/duplicating-projects-with-a-kanband-done-bucket-is-broken/2979
2024-11-19 19:23:08 +01:00
Frederick [Bot]
940b450a56
[skip ci] Updated swagger docs
2024-11-19 16:44:45 +00:00
kolaente
d616bab76d
fix(views): enable search in bucket filters
2024-11-19 16:27:22 +00:00
kolaente
624907ad6a
fix: make search in saved filter work
2024-11-19 16:27:22 +00:00
Maximilian Bosch
3bafaa7101
fix(tasks): also delete corresponding task positions ( #2840 )
...
Closes [#348 ](https://github.com/go-vikunja/vikunja/issues/348 )
When moving a project, the old task bucket entries (project, saved
filters) will be removed, but not the corresponding position. This has
the effect that the saved_filter event hook UpdateTaskInSavedFilterViews
wrongly assumes that the task doesn't need to be re-added to the saved
filter since the position part still exists.
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2840
Co-authored-by: Maximilian Bosch <maximilian@mbosch.me>
Co-committed-by: Maximilian Bosch <maximilian@mbosch.me>
2024-11-18 16:02:05 +00:00
kolaente
b8c4e0a91e
fix(openid): log error when config is still using array value
2024-11-18 12:16:38 +01:00
kolaente
feb6b708e3
fix(tasks): prefix created and updated columns when sorting by them
...
Resolves https://github.com/go-vikunja/vikunja/issues/350
2024-11-18 12:07:29 +01:00
kolaente
bd3eab8c34
fix(filters): validate filter expression when creating or updating filter
...
Resolves https://github.com/go-vikunja/vikunja/issues/354
2024-11-18 11:02:21 +01:00
kolaente
1db1333d8a
chore(config): append .file to config values when reading
2024-11-18 10:35:02 +01:00
kolaente
05349ddb5c
feat!: config for auth providers now use a map instead of an array
...
The config values for openid providers now use a map with the provider as key instead of an array. For example before:
auth:
openid:
providers:
- name: foo
clientid: ...
now becomes:
auth:
openid:
providers:
foo:
clientid: ...
This allows us to read values for openid providers from files using the same syntax as everywhere and makes the configuration more predictable. It also allows configuring providers through env variables, though it is still required to set at least one value via the config file because Vikunja won't discover the provider otherwise.
2024-11-18 10:34:30 +01:00
kolaente
3479fa1228
feat(config): only read file sub-keys from files
...
This removes reading config values from _file and instead only reads from file sub keys. This should make it easier to not accidentally specify the same value twice.
The syntax via env does not change, but via a config file this:
database:
password_file: foo
becomes
database:
password:
file: foo
2024-11-18 08:52:21 +01:00
kolaente
c7914bc245
feat: load any config value from file
...
This change allows to read any config value from a file, when the path to that file is specified in the config with the target config value suffixed with _file. This works with environment variables as well.
For example, setting database.password_file=/path/to/password will load the value from /path/to/password and set it as the config value of database.password.
Resolves https://kolaente.dev/vikunja/vikunja/issues/704
Resolves https://kolaente.dev/vikunja/vikunja/pulls/1621
2024-11-04 16:47:39 +01:00
kolaente
4556cfb057
fix(attachments): return error message when attachment upload is not multipart form request
...
Resolves https://vikunja.sentry.io/issues/6041469388/
2024-11-04 12:26:53 +01:00
kolaente
3f62c013ba
fix(typesense): fetch task comments without permission check
...
Fetching the task comments during indexing would always check the permissions - in the specific case of indexing comments into Typesense, this will always return true, because we're checking with the owner of the project. Because this is a rather expensive operation, it is even more unnecessary.
2024-11-02 18:42:12 +01:00
kolaente
e393cfdfd7
fix(views): delete task buckets and task positions as well when deleting a view
2024-10-31 19:22:51 +01:00
kolaente
1fac81c8de
feat(cli): add cli command to delete orphan task positions
2024-10-31 19:19:56 +01:00
kolaente
d03f9c7b73
fix(positions): directly look in the database to fetch tasks when recalculating their position
2024-10-31 19:02:15 +01:00
kolaente
d7eff8e43b
feat(positions): add more debug logs
2024-10-31 18:46:09 +01:00
kolaente
7f5f5a4b8d
fix(events): do not crash filter event handler when triggered by a link share user
...
Resolves https://vikunja.sentry.io/issues/6030883119/events/4013802889b64b6b9d868e7c83ba4eb5/
2024-10-30 14:49:33 +01:00
kolaente
d081cf80fc
chore(caldav): refactor fetching projects
2024-10-30 08:37:27 +01:00
kolaente
b9366ca9e3
fix(filter): use correct syntax for not in query in typesense
...
Related to https://github.com/typesense/typesense/issues/2038
2024-10-29 17:23:16 +01:00
kolaente
57c6f2cd10
feat(filters): add "not in" operator for filters
...
Resolves https://community.vikunja.io/t/feature-requests-regarding-view-ordering-project-reference-in-kanban-and-a-notin-operator/2728
2024-10-29 12:03:16 +01:00
kolaente
412a8ef654
chore(projects): only pass users to checks
2024-10-29 09:11:06 +01:00
kolaente
816da6bc50
fix(projects): check with the current user if they have access to the project
2024-10-29 08:40:14 +01:00
kolaente
dace07efda
fix(projects): return 0 if no parent project exists
2024-10-29 08:25:20 +01:00
kolaente
fa032a889f
fix(filters): do not crash when a filter is invalid
...
Resolves https://vikunja.sentry.io/issues/6025547266/events/a62beaa09caf482ba238b18f363956df
2024-10-28 16:16:48 +01:00
kolaente
e30374a28c
fix(projects): only add conditions to query when they are non-empty
2024-10-28 16:09:31 +01:00
kolaente
b013b294e2
fix(projects): remove unnecessary join
...
The removal of the unnecessary join condition speeds up the query 10x. Before, it would take ~700ms on Vikunja Cloud. With this removal, the otherwise same query now takes ~70ms (which still leaves plenty of room for improvements, but it's already a great step forwards).
2024-10-28 15:58:07 +01:00