Commit Graph

36 Commits

Author SHA1 Message Date
Constantin Graf
34273a4863 Add audit owner through parent model
Models that belong to an organization via a parent model (for example
project members via their project) implement AuditableThroughParent and
return the parent relation. The owner organization of their audits is
taken from the loaded parent if it matches the foreign key, otherwise it
is queried. The declaration is also used to backfill the owner of
existing audits.
2026-10-07 18:43:16 +02:00
Constantin Graf
f921452419 Add marker for auditable models without owner
Models implementing AuditableWithoutOwner intentionally have no audit
owner, either because they belong to neither an organization nor a user,
or because they and their audits have to be kept when the owner is
deleted (for example billing records). Adds helpers and a scope on the
audit model to find audits that are missing an owner although they
should have one.
2026-10-07 18:43:16 +02:00
Constantin Graf
135984f9ef Add owner organization and owner user to audits
- Rename the audit actor columns user_type/user_id to actor_type/actor_id
- Add owner_organization_id and owner_user_id to the audits table as
  foreign keys with cascade on delete, so that the audits of an
  organization or user are deleted together with it. The indexes and
  foreign keys are created without blocking writes on the large table.
- Fill the owner columns for new audits via CustomAuditable. Organizations
  and users no longer record their own deletion audit, since it would
  reference the already deleted owner.
2026-10-07 18:43:16 +02:00
Gregor Vostrak
95ddbf9ead fix placeholder users being resolved by authentication flows 2026-09-16 15:25:08 +02:00
Constantin Graf
734aab6353 Replaces all Jetstream model trait functions and relations 2026-06-18 13:27:43 +02:00
Constantin Graf
f9c0d64f82 Add email notifications for expiring api tokens 2025-07-17 18:16:25 +02:00
Constantin Graf
2ab28001be Updated dependencies; Major update laravel passport 2025-07-17 11:47:34 +02:00
Constantin Graf
ef9f353047 Fixed data type of project and task spend time 2025-04-25 22:32:37 +02:00
Constantin Graf
c03aad1abd Added shareable reports 2024-12-09 12:57:25 +01:00
Constantin Graf
3b3f593080 Fix foreign keys and deletion service 2024-11-05 12:09:04 +01:00
Constantin Graf
9a60e2b911 Add tests for export endpoints 2024-10-29 17:20:21 +01:00
Constantin Graf
d5a4df738f Fix bug in time-entry.update-multiple; Add computed property for client_id 2024-10-08 19:19:08 +02:00
Constantin Graf
bff766d363 Add spend_time to projects and tasks 2024-09-30 14:19:47 +02:00
Constantin Graf
a820d8540f Added time estimates for projects and tasks, fixes ST-283 2024-09-30 14:19:47 +02:00
Constantin Graf
d8968399d6 Updated dependencies; Fixed codeformatting and phpstan 2024-09-11 18:07:35 +02:00
Constantin Graf
5b7df869ad Added trial and blocking to billing contract, fixed bug in running time tracker command 2024-09-11 18:07:35 +02:00
Constantin Graf
364168debd Add ability to set task to done, fixes ST-244 2024-07-01 17:06:44 +02:00
Constantin Graf
a69d1cb4c4 Added ability to archive projects and clients, fixes ST-37 2024-07-01 17:06:44 +02:00
Constantin Graf
2184b3c835 Add ability to update billable rate of existing time entries 2024-07-01 17:06:44 +02:00
Constantin Graf
86f5ea47bb Added user and organization deletion system; Added coverage annotations 2024-06-09 13:58:46 +02:00
Constantin Graf
2a8ab12017 Added filled gaps to time entry aggregation; Moved aggregation to service 2024-05-21 17:31:45 +02:00
Constantin Graf
b2365e2778 Migrated endpoints from user to member; Renamed membership to member 2024-05-13 19:50:50 +02:00
Constantin Graf
d5bbba2c2f Added aggregate time entries endpoint 2024-05-06 18:38:55 +02:00
Constantin Graf
ad6146c483 Added usage check to delete endpoints 2024-04-19 18:00:31 +02:00
Constantin Graf
e593430d72 Added missing chart data to dashboard endpoint 2024-04-17 12:39:23 +02:00
Constantin Graf
1f79d5e50a Added importer details endpoint 2024-04-16 23:47:54 +02:00
Constantin Graf
726aabe724 Fixed private build 2024-04-15 16:21:30 +02:00
Constantin Graf
0e96ad992f Fixed timezones in time entry endpoints 2024-04-11 12:43:30 +02:00
Constantin Graf
b67961cb07 Added member and invitation endpoints 2024-04-11 12:43:30 +02:00
Constantin Graf
234fa06324 Fixed permissions for tasks endpoints 2024-04-11 12:43:30 +02:00
Constantin Graf
ba0212ea01 Added billable rates; Added project members; Added visibility to projects 2024-04-02 14:33:29 +02:00
Constantin Graf
77e7a63b83 Added placeholder users; Better exception handling; Enhanced local setup 2024-03-08 13:32:31 +01:00
Constantin Graf
e8912650c0 Added client and organization endpoints 2024-03-04 18:44:44 +01:00
Constantin Graf
e60e502612 Added telescope, basic project endpoint, basic filament resources, GitHub actions 2024-02-05 22:50:43 +01:00
Constantin Graf
0a8d958ccc Renamed jetstream team to organization 2024-01-21 19:52:19 +01:00
Constantin Graf
6377df1f44 Added basic models and factories 2024-01-21 18:35:29 +01:00