Constantin Graf
c791057f25
Allow only one running time entry per user across organizations
...
The running time entry check in the store endpoint was scoped to the
member, so a user could start a time entry in each of their
organizations. The active time entry endpoint and the database
consistency check expect only one running time entry per user.
2026-10-09 12:58:15 +02:00
Constantin Graf
4a4acb2214
Lock creation of running time entries to prevent race condition
...
Concurrent requests could both pass the running time entry check and
create more than one running time entry for the same member.
2026-10-09 12:58:06 +02:00
Gregor Vostrak
689b2e93e1
move goal progress calculation out of the resources
2026-10-08 20:47:12 +02:00
Gregor Vostrak
63ca886154
Add goals feature for personal goals with filters
2026-10-08 20:47:12 +02:00
Constantin Graf
f01a4111b6
Fix Scramble API docs warnings
...
Remove redundant @var annotations from API resources and defer the user
access in the email unique rule of UserUpdateRequest, so rules() can be
evaluated by Scramble without route model binding. Add a test that fails
on any Scramble diagnostic and tests for the email unique rule.
2026-10-08 16:39:46 +02:00
Constantin Graf
2dadf1ef02
Updated Laravel to v13
2026-09-24 10:45:18 +02:00
Constantin Graf
37579b1e5c
Updated compose dependencies
2026-09-24 10:45:18 +02:00
Constantin Graf
70646a0dd4
Add additional validation for import, Enhanced ZIP extraction in importer
2026-09-16 15:02:54 +02:00
Constantin Graf
593372bae5
Add still-running email preference
2026-08-31 12:26:02 +02:00
Andrew Herron
453d5ed066
Set content-disposition 'attachment' for both local and S3 downloads. Added a bunch of tests. Fixes #1148 .
2026-08-28 17:30:27 +02:00
Andrew Herron
dfe3206614
Add "Week" grouping option to reporting
2026-08-20 17:11:35 +02:00
Andrew Herron
97fd882878
Format date group labels in all aggregate exports
2026-08-20 17:11:35 +02:00
Gregor Vostrak
cbcd1e51f6
add break time entries and simplified time tracker ui
2026-07-28 16:52:36 +02:00
Constantin Graf
114a32536d
Fixed update of member_id in time_entries.update and time_entries.updateMultiple
...
Removed usage of legacy user_id in TimeEntryController
2026-07-23 12:02:46 +02:00
Gregor Vostrak
c90c1ed8fa
add stable secondary sorting based on id to the tests to avoid flakyness
2026-07-09 13:01:23 +02:00
Gregor Vostrak
a97c02542b
add unique id tiebreaker to paginated index endpoints to make pagination
...
stable (#1138 )
2026-07-09 13:01:23 +02:00
Gregor Vostrak
981bcbe091
add tests for tag match type (backend + e2e)
2026-06-26 14:53:37 +02:00
Constantin Graf
6a197f7f34
Add password check to users.destroy and organizations.destroy
2026-06-18 13:27:43 +02:00
Gregor Vostrak
24875f9424
add currency to organization update endpoint
2026-06-18 13:27:43 +02:00
Gregor Vostrak
c5c129b239
add switch current organization endpoint
2026-06-18 13:27:43 +02:00
Constantin Graf
89a9341d91
Removed Laravel Jetstream
2026-06-18 13:27:43 +02:00
Constantin Graf
5eb1a6a006
Add reset pending email endpoint to user controller
2026-06-18 13:27:43 +02:00
Gregor Vostrak
486b5d2152
add user endpoint tests for idempotence email update, unauthenticated
...
update and invalid email
2026-06-18 13:27:43 +02:00
Gregor Vostrak
cb8047028c
add 1MB photo upload limit
2026-06-18 13:27:43 +02:00
Gregor Vostrak
e29be581fa
add photo delete logic to user update endpoint
2026-06-18 13:27:43 +02:00
Constantin Graf
02da133fb3
Updated composer dependencies
2026-06-18 13:27:43 +02:00
Constantin Graf
d00fe2baff
Add more tests
2026-06-18 13:27:43 +02:00
Constantin Graf
5d744d70c4
Migrate permission away from Jetstream; Moved update user to REST API
2026-06-18 13:27:43 +02:00
Constantin Graf
a30d192ea2
Updated invitation flow, Moved jetstream function to REST endpoints; Lower case email
2026-06-18 13:27:43 +02:00
Gregor Vostrak
0e15d9d9c2
add project visibility ui
2026-05-26 11:15:15 +02:00
Gregor Vostrak
b73aa543fd
Merge commit from fork
2026-04-21 21:12:30 +02:00
Gregor Vostrak
53d91b65d6
fix: use timezoned dates in public report endpoint tests
...
Replace travelTo + now() with Carbon::now($timezone)->startOfDay() to eliminate flakiness when tests run near midnight UTC, where the UTC and Vienna dates can differ.
2026-03-31 13:21:54 +02:00
Gregor Vostrak
192c8c3b88
fix IDOR private projects
2026-03-19 13:52:28 +01:00
Gregor Vostrak
eed638d0aa
add default sorting to task, project, member, invitation, api token endpoints
2026-02-18 19:16:14 +01:00
Gregor Vostrak
c17d87b710
Allow updating public_until on already-public reports
2026-02-11 17:29:41 +01:00
Gregor Vostrak
28fc324c6a
Allow NONE filter value to shared reports and add shared-report tests
2026-02-11 17:29:41 +01:00
Gregor Vostrak
b2af9c6bf1
Add client_ids filter to time entry export
2026-02-11 17:29:41 +01:00
Gregor Vostrak
dd75a80df7
add no project, no task, no client, no task, no tag support to the API
2026-02-11 17:29:41 +01:00
Constantin Graf
51af3db305
Add test to TimeEntryEndpointTest
2026-01-28 12:56:58 +01:00
Gregor Vostrak
743c64909a
restrict time entries create endpoints for employees to only projects where they have access to
2025-12-17 12:54:07 +01:00
Gregor Vostrak
280032ee02
allow employee manage task setting to organization
2025-11-25 15:39:20 +01:00
Gregor Vostrak
1e985b71ec
move Client visibleByEmployee logic from controller to model
2025-10-21 12:22:17 +02:00
Alexander Groß
93d6a86f74
Show clients that are assigned to the employee, closes #893
2025-10-21 12:20:28 +02:00
Gregor Vostrak
19a206d57c
add prevent_overlapping_time_entries setting to organization
...
when enabled users are blocked from creating or editing new time entries that are overlapping with other time entries
2025-10-13 14:23:41 +02:00
Constantin Graf
e7fa414c06
Restrict rounding to premium users
2025-07-23 16:09:36 +02:00
Gregor Vostrak
e3cfc155b8
add rounding frontend to reports, and support for shared reports
2025-07-17 18:38:21 +02:00
Constantin Graf
4b726635b2
Add rounding feature
2025-07-17 18:38:21 +02:00
Constantin Graf
2ab28001be
Updated dependencies; Major update laravel passport
2025-07-17 11:47:34 +02:00
Constantin Graf
47aa65d959
Add checks for placeholder invitation; Fixed bug in member deletion
2025-07-08 16:49:05 +02:00
Constantin Graf
ead9cf2185
Add option to delete members with relations
2025-06-30 12:54:22 +02:00