Frederick [Bot]
faa4231523
chore(i18n): update translations via Crowdin
2025-09-21 00:57:00 +00:00
Frederick [Bot]
d53f4079ae
chore(i18n): update translations via Crowdin
2025-09-19 00:53:14 +00:00
Frederick [Bot]
3397d88f0e
chore(i18n): update translations via Crowdin
2025-09-18 00:51:01 +00:00
kolaente
fb426a6e22
fix(webhook): actually fetch project before enriching details
...
This fixes a bug where the project is fetched before adding more details
through ReadOne since ReadOne does not fetch the project. In the normal
project reading flow through the api, this is done in the permission
check.
Resolves https://github.com/go-vikunja/vikunja/issues/1498
2025-09-17 17:04:39 +02:00
Frederick [Bot]
57b4e27278
chore(i18n): update translations via Crowdin
2025-09-17 00:51:22 +00:00
kolaente
0506b9215a
fix(filters): initialize task positions for saved filters ( #1477 )
2025-09-11 17:39:56 +02:00
kolaente
f0cb752f2c
fix(task): preserve done timestamp when moving tasks between projects ( #1470 )
2025-09-11 17:07:43 +02:00
Frederick [Bot]
f1de3a9c19
[skip ci] Updated swagger docs
2025-09-11 07:53:45 +00:00
kolaente
e5e0413b70
fix(task): ensure done_at can never be set by user ( #1461 )
2025-09-11 07:45:42 +00:00
Frederick [Bot]
801ddf19e4
[skip ci] Updated swagger docs
2025-09-10 16:49:05 +00:00
kolaente
db123674a7
feat: share logic for bulk update ( #1456 )
...
This change refactors the bulk task update logic so that it updates all fields a single task update would update as well.
Could be improved in the future so that it is more efficient, instead of calling the update function repeatedly. Right now, this reduces the complexity by a lot and it should be fast enough for most cases using this.
Resolves #1452
2025-09-10 16:40:59 +00:00
Frederick [Bot]
70175c31c2
[skip ci] Updated swagger docs
2025-09-04 16:33:42 +00:00
kolaente
1b5a9dbdea
refactor: use helper function to check user local
2025-09-04 18:09:21 +02:00
kolaente
b8afdcf62d
fix(user): do not reject 2fa for local users
...
https://github.com/go-vikunja/vikunja/issues/1402
2025-09-04 18:09:21 +02:00
kolaente
bd74733632
fix: show pagination controls for task comments ( #1413 )
...
Resolves https://community.vikunja.io/t/task-comment-pagination-in-1-0-0-rc1/3988
2025-09-04 16:04:05 +00:00
renovate[bot]
a519312d55
fix(deps): update module github.com/threedotslabs/watermill to v1.5.1 ( #1391 )
2025-09-02 18:11:45 +00:00
Copilot
70ff047588
fix(avatar): recover gracefully from broken avatar cache ( #1379 )
2025-09-02 14:03:58 +00:00
kolaente
15ea38183c
fix: bypass Typesense in user export ( #1385 )
2025-09-02 15:49:17 +02:00
Frederick [Bot]
4b47f0c3cd
chore(i18n): update translations via Crowdin
2025-09-02 00:54:00 +00:00
kolaente
bd310f50ad
fix: show error when user list filter is empty ( #1372 )
2025-09-01 21:08:13 +00:00
kolaente
ed04638726
fix(task): only load first comments page when loading comments with task
...
Resolves
https://community.vikunja.io/t/task-comment-pagination-in-1-0-0-rc1/3988
2025-08-31 21:58:46 +02:00
andreymal
1047e62978
feat(i18n): add pluralization rules for Russian ( #1334 )
2025-08-31 17:40:41 +00:00
Copilot
c7a26d81fe
fix(auth): do not panic with invalid openid provider configuration ( #1354 )
2025-08-31 07:17:50 +00:00
Copilot
5ca637a7e6
feat(auth): add oauth require availability configuration on startup ( #1358 )
2025-08-30 22:15:20 +00:00
kolaente
e29561e49c
fix: require publicurl when cors enabled ( #1351 )
2025-08-29 20:51:31 +00:00
kolaente
fd8a36c9bb
fix: use correct filepath
...
Resolves https://github.com/go-vikunja/vikunja/issues/1345
2025-08-29 17:20:43 +02:00
Frederick [Bot]
f5c6295f42
chore(i18n): update translations via Crowdin
2025-08-19 00:56:39 +00:00
kolaente
e2e9b28d4e
feat(config): validate publicurl
2025-08-18 11:37:44 +02:00
Frederick [Bot]
a5407e3f99
chore(i18n): update translations via Crowdin
2025-08-18 01:01:59 +00:00
kolaente
0039ec045e
fix(auth): fail when link share token is not parsable
2025-08-14 17:11:57 +02:00
kolaente
31611e13a4
chore(deps): update golangci-lint to 2.4.0 ( #1291 )
2025-08-14 10:50:49 +00:00
Frederick [Bot]
6a91862384
[skip ci] Updated swagger docs
2025-08-13 09:23:47 +00:00
kolaente
a81a3ee0e5
feat!: rename right to permission ( #1277 )
2025-08-13 11:05:05 +02:00
Frederick [Bot]
a81b546f99
chore(i18n): update translations via Crowdin
2025-08-07 01:02:44 +00:00
Dominik Pschenitschni
feb17792e4
fix(user): persist status on email updates ( #1084 )
2025-08-04 14:07:00 +00:00
kolaente
0a44f53759
feat(caldav): return proper caldav intervals instead of FREQ=SECONDLY ( #1230 )
2025-08-04 13:41:28 +02:00
Frederick [Bot]
544960af65
[skip ci] Updated swagger docs
2025-08-03 20:46:06 +00:00
Copilot
7762d7746e
fix: make user data export download return 404 for nonexistent files ( #1227 )
2025-08-03 20:36:15 +00:00
Frederick [Bot]
5e65f223bc
[skip ci] Updated swagger docs
2025-08-03 11:35:15 +00:00
kolaente
ebaf4a0aa0
feat(settings): show extra settings links on user settings page
2025-08-03 13:25:32 +02:00
kolaente
da0f6fb366
feat(auth): allow passing custom settings links to user account via openid claims
2025-08-03 13:25:32 +02:00
kolaente
9acba7a245
refactor: schedule user deletion
2025-08-01 17:06:02 +02:00
kolaente
e5c860afec
feat(plugins): allow plugins to register routes
2025-08-01 17:06:02 +02:00
kolaente
b08b43953b
feat(plugins): add rudimentary plugin system
2025-08-01 17:06:02 +02:00
Frederick [Bot]
78bbadbd25
chore(i18n): update translations via Crowdin
2025-07-31 01:01:45 +00:00
Frederick [Bot]
ec7446684e
[skip ci] Updated swagger docs
2025-07-30 16:00:27 +00:00
kolaente
4042f66efa
feat: show user export status in settings ( #1200 )
2025-07-30 15:50:26 +00:00
kolaente
388af80ece
fix: log correct response status
2025-07-28 13:27:12 +02:00
kolaente
de917467cb
fix(openid): manually fetch providers
...
Partially reverts fcdcdcf46a
Resolves https://github.com/go-vikunja/vikunja/issues/1165
2025-07-28 11:40:09 +02:00
Frederick [Bot]
84a9428b4e
[skip ci] Updated swagger docs
2025-07-28 09:06:26 +00:00
kolaente
2fd3046acc
chore: rename user_id field to username
...
The field is actually the username, but it was called user_id for some reason. This change makes this more clear
2025-07-28 10:56:36 +02:00
kolaente
e10837476a
fix: subscription should only be visible for the user who subscribed ( #1183 )
2025-07-28 10:32:59 +02:00
kolaente
bbd3567e43
chore: add debug logging around provider failure
...
https://github.com/go-vikunja/vikunja/issues/1165
2025-07-24 16:00:03 +02:00
kolaente
7243a10fb2
fix(openid): check different provider types
...
Related to https://github.com/go-vikunja/vikunja/issues/1165
2025-07-23 15:40:51 +02:00
kolaente
4faf50a91f
fix(user): ensure deletion tokens can only be used by the user who created them
2025-07-23 11:18:37 +02:00
kolaente
2b497e6265
fix: pass pointer when fetching provider
...
Resolves https://github.com/go-vikunja/vikunja/issues/1165
2025-07-23 11:09:09 +02:00
Tobias
a31255707e
fix "null" in project views ( #1158 )
...
Co-authored-by: kolaente <k@knt.li>
2025-07-22 17:43:04 +00:00
Copilot
9712dbe2ab
fix: MySQL constraint violations returning HTTP 500 instead of 400 for task bucket duplicates ( #1154 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-07-22 08:59:12 +00:00
kolaente
ad0cf7a13c
fix: improve ldap sanitization ( #1155 )
2025-07-21 21:06:38 +00:00
kolaente
62200f6e0f
feat!: remove echo log options - unify with general http logging
2025-07-21 18:15:39 +02:00
kolaente
ca83ad1f98
feat: move to slog for logging
2025-07-21 18:15:39 +02:00
kolaente
7985a6500a
fix: use assertions which are more specific
2025-07-18 23:18:04 +02:00
kolaente
07d83e67d7
feat(projects): add support for ParadeDB when searching for project
2025-07-18 23:18:04 +02:00
kolaente
1e3a68210a
chore(db): simplify MultiFieldSearch
2025-07-18 23:18:04 +02:00
kolaente
22579dffae
chore: cleanup unused helper
2025-07-18 23:18:04 +02:00
kolaente
a571d42f46
chore: refactor searching for link shares
2025-07-18 23:18:04 +02:00
kolaente
3db1ddcee4
feat(tasks): add support for ParadeDB when searching tasks
2025-07-18 23:18:04 +02:00
kolaente
e7f5142e3d
fix: adjust benchmark so that it only checks the task fetching
2025-07-18 23:18:04 +02:00
kolaente
a5591c1603
fix: correctly cache unsplash background
...
Resolves
https://vikunja.sentry.io/issues/6753151793/events/3d8773d79b9c4da0bf65140e4b7617b4/
2025-07-18 18:38:12 +02:00
kolaente
c3fd659851
fix: correctly return cached intitals avatar
...
Resolves https://vikunja.sentry.io/issues/6752872121/events/92ff6a64c4b64aa3aecc6973611bd449/
2025-07-18 18:38:12 +02:00
kolaente
566657c54a
fix: correctly return cached provider
2025-07-18 18:38:12 +02:00
kolaente
45e7f6e316
fix: upload avatar caching
2025-07-18 18:38:12 +02:00
kolaente
fcdcdcf46a
feat: use keyvalue.Remember where it makes sense
2025-07-17 16:19:13 +02:00
kolaente
c7a98386c2
feat: add keyvalue.Remember function
2025-07-17 16:19:13 +02:00
Quiwy
5ee3077f5d
docs: fix typo ( #1122 )
2025-07-16 11:01:49 +00:00
kolaente
42534cdd79
fix: don't panic when using api token when not correctly put into context ( #1119 )
2025-07-15 21:26:28 +00:00
Tobias
ecc95e9139
fix: panic on restoring with numeric position fields ( #1089 )
...
Co-authored-by: kolaente <k@knt.li>
2025-07-15 15:44:21 +00:00
kolaente
4da4bf69ca
fix(background): validate unsupported formats and show error message ( #1123 )
2025-07-15 13:21:48 +02:00
Vlad Yarotsky
d4347f00f6
fix(caldav): make CalDAV REPORT request properly respond with VTODO objects ( #1116 )
2025-07-14 21:57:55 +00:00
Dominik Pschenitschni
efff6955c5
fix: remove fmt output in token check
2025-07-03 17:09:41 +02:00
Dominik Pschenitschni
20bd961c20
fix(config): log fatal when timezone parse fails ( #1077 )
2025-07-03 17:06:54 +02:00
Dominik Pschenitschni
9efdde8f1a
docs: delete caldav token uses DELETE instead of GET
2025-07-03 17:06:20 +02:00
kolaente
510b1f246a
refactor: move test
2025-07-02 23:16:05 +02:00
kolaente
9b579d282c
fix(tasks): do not return subtasks multiple times when they are related
...
to multiple tasks
Resolves https://community.vikunja.io/t/tasks-with-parent-tasks-appear-duplicated-in-list-views/3676
2025-07-02 23:16:05 +02:00
kolaente
4d36771362
feat: introduce shared health check logic ( #1073 )
2025-07-02 21:01:41 +00:00
Dominik Pschenitschni
ef80fa77b4
docs: fix comments in web package
2025-07-02 17:46:21 +02:00
Dominik Pschenitschni
d48d88d442
fix: comment typo and misspellings
2025-07-02 17:46:21 +02:00
Dominik Pschenitschni
342bbd6192
fix: correct comments
2025-07-02 17:46:21 +02:00
kolaente
3b05f7859f
fix(users): refresh initials avatar refresh after name change ( #1047 )
2025-06-30 16:20:54 +00:00
kolaente
59130766e8
fix(avatar): fallback to username when no name is set
2025-06-27 14:30:33 +02:00
kolaente
99bc065272
feat(user): use name for initals avatar, not username
...
For external auth providers, the username might be randomly generated,
which results in a random initial - this is unexpected and confusing for
users.
2025-06-27 14:13:49 +02:00
kolaente
4f8a2b0d38
chore(user): refactor invalidating upload avatar cache
2025-06-27 14:07:22 +02:00
kolaente
0ecbd9e1a3
feat(user): add avatar cache flushing ( #1041 )
2025-06-27 14:01:43 +02:00
kolaente
ae92822ee0
feat: add prefix key support to keyvalue store ( #1038 )
...
feat: add prefix key operations to keyvalue store
2025-06-27 11:05:37 +00:00
kolaente
a8025a9e36
fix: guard invalid user lookups ( #1034 )
2025-06-26 21:58:47 +00:00
kolaente
c6c18d1ca1
fix(task): ambiguous description search ( #1032 )
...
test: relocate search regression
2025-06-26 20:05:04 +00:00
kolaente
17b8d20e7b
fix(migration): reset buckets before creating related tasks so that they are actually created ( #1015 )
2025-06-25 14:03:44 +02:00
kolaente
53264d350e
fix(kanban): make bucket query fixed per-view ( #1007 )
2025-06-25 11:38:24 +00:00
kolaente
159961b5e0
fix: add migration for non-unique task buckets
2025-06-25 11:12:24 +02:00
kolaente
f9b31ab4bf
fix: ambiguous title column in task search ( #1012 )
2025-06-24 20:38:35 +00:00
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