Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
77326c4
TT-153: Reflect changes from v7.9 release into Mails.md
Ente Feb 15, 2025
7367353
Merge pull request #71 from Ente/TT-153
Ente Feb 15, 2025
fc901f5
TT-163: Fix being unable to access "Forgot password" page
Ente Feb 20, 2025
54da9e9
TT-168: Remove usercount plugin entirely
Ente Feb 20, 2025
6bf7b09
TT-165: Fix typo in userdetail plugin preventing save
Ente Feb 20, 2025
af4c8f4
TT-166: Redirect when calendar ID is not found
Ente Feb 20, 2025
aefeb82
Merge pull request #72 from Ente/TT-166
Ente Feb 20, 2025
be340e3
Merge pull request #73 from Ente/TT-163
Ente Feb 20, 2025
f985789
Merge pull request #74 from Ente/TT-165
Ente Feb 20, 2025
1ba34d0
Merge pull request #75 from Ente/TT-168
Ente Feb 20, 2025
7b221a6
TT-156: Remove webedit for app.json
Ente Feb 20, 2025
6aeea67
Merge pull request #76 from Ente/TT-156
Ente Feb 20, 2025
2bc89c3
TT-164: Display warning before changing username
Ente Feb 20, 2025
66c0e8f
TT-164: Prevent userdetail plugin from crashing when accessing non-ex…
Ente Feb 20, 2025
489ac3e
Merge pull request #77 from Ente/TT-164
Ente Feb 20, 2025
476251d
Adjust versions / CHANGELOG.md
Ente Feb 20, 2025
02dab51
Update issue templates
Ente Feb 20, 2025
268a174
TT-170: Add missing CSS to elements
Ente Mar 1, 2025
3ebf1af
Merge pull request #78 from Ente/TT-170
Ente Mar 1, 2025
52404c1
TT-170: Hotfix for adding worktime in normal mode
Ente Mar 1, 2025
8ebdb27
Merge pull request #79 from Ente/TT-170
Ente Mar 1, 2025
58210d9
TT-171: Small fixes
Ente Mar 14, 2025
d308140
Merge pull request #80 from Ente/TT-171
Ente Mar 14, 2025
5791114
TT-173: Implement base functionality to change user properties
Ente Mar 28, 2025
e64e4b8
Merge pull request #81 from Ente/TT-173
Ente Mar 28, 2025
7830716
TT-174: Fix being unable to set worktime as uncompliant
Ente Mar 28, 2025
820222c
Merge pull request #82 from Ente/TT-174
Ente Mar 28, 2025
4fff831
TT-174: Fix accidental overwrite of sickness end dates
Ente Mar 28, 2025
94ee937
Merge pull request #83 from Ente/TT-174
Ente Mar 28, 2025
9ac7cf5
TT-85: Differentiate API endpoints between admin, internal and public
Ente Mar 28, 2025
7fb67b3
Merge branch 'develop' into TT-85
Ente Mar 28, 2025
af62243
Merge pull request #84 from Ente/TT-85
Ente Mar 28, 2025
8e379fa
TT-7: Security Enhancements and fix sql
Ente Mar 29, 2025
46dc937
Merge pull request #85 from Ente/TT-7
Ente Mar 29, 2025
d502fa6
TT-4: Implement NFC token login
Ente Mar 30, 2025
d165474
Merge pull request #86 from Ente/TTT-4
Ente Mar 30, 2025
8d44b62
TT-4: Fix missing class
Ente Mar 30, 2025
a0dac3a
Merge pull request #87 from Ente/TTT-4
Ente Mar 30, 2025
23c5ceb
TT-4: Fix wrong class name
Ente Mar 30, 2025
15d0108
Merge pull request #88 from Ente/TTT-4
Ente Mar 30, 2025
82a0ba3
TT-6: Rewrite db update process
Ente Mar 31, 2025
787bece
Merge pull request #89 from Ente/TT-6
Ente Mar 31, 2025
3dc0733
TT-4: Finalizing NFCLogin plugin
Ente Mar 31, 2025
bd27f40
Merge branch 'develop' into TTT-4
Ente Mar 31, 2025
ccbb962
Merge pull request #90 from Ente/TTT-4
Ente Mar 31, 2025
557e380
static isAdmin function
Ente Mar 31, 2025
6826516
Remove auth for NFC write
Ente Mar 31, 2025
d3e6686
Fix JSON and JS for nfclogin
Ente Mar 31, 2025
d1f26c7
Fix nfclogin
Ente Mar 31, 2025
34b56b2
Fix incorrect type
Ente Mar 31, 2025
b6b6f2d
Fix incorrect type
Ente Mar 31, 2025
b95724f
Integrate NFClogin into GUI
Ente Mar 31, 2025
fa67af6
fix for mapping
Ente Mar 31, 2025
f5e92a5
Fix authentication flow
Ente Mar 31, 2025
2ac624e
Fix auth; add card overview
Ente Mar 31, 2025
cf8cae2
Fix login; add functionality to remove card
Ente Mar 31, 2025
f2e31a0
Align all cards div
Ente Mar 31, 2025
68f6181
Center actual table
Ente Mar 31, 2025
1174a12
TT-175: Update changelog and version files
Ente Mar 31, 2025
5727b8a
Merge pull request #91 from Ente/TT-175
Ente Mar 31, 2025
ce3d949
TT-28: Added events
Ente Apr 5, 2025
dd5371e
TT-28: Display TT and API version
Ente Apr 5, 2025
6e0bc3a
TT-28: Allow disabling emails
Ente Apr 5, 2025
a14bd28
TT-28: Added simple favicon
Ente Apr 5, 2025
0987b1e
TT-28: Fix LDAP again
Ente Apr 5, 2025
328525e
Update api/v1/class/events/README.md
Ente Apr 5, 2025
786e9e9
Fix example for EventListener
Ente Apr 5, 2025
1481053
Merge pull request #92 from Ente/TT-28
Ente Apr 5, 2025
39c4f4e
Merge pull request #93 from Ente/TT-28
Ente Apr 5, 2025
b7f3e4f
Update Changelog and versions
Ente Apr 5, 2025
b3d97a7
Merge branch 'develop' of https://github.com/Ente/timetrack into develop
Ente Apr 5, 2025
96d3d65
Fix first user creation
Ente Apr 6, 2025
c7e213b
Fix generatedExport event for ExportModule
Ente Apr 6, 2025
59b5dff
Allow setting timezone via app.json
Ente Apr 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,7 @@ If applicable, add screenshots to help explain your problem.
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**TimeTrack Version**: e.g. v7.9

**Additional context**
Add any other context about the problem here.
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# CHANGELOG

## v7.12

* Added a simple Favicon
* TimeTrack and API version are now displayed in the settings menu
* Added Events which can be listened to by plugins (see `api/v1/class/events/README.md`) / Developers can now create their own events
* Mails can now be disabled by setting the `smtp` setting to `false` within the `smtp` section of the `app.json`
* Fixed `composer.json` contents for LDAPTools plugin again
* Removed unused `Hooks` plugin class file

## v7.11

* Added plugin to allow NFC PC/SC login (see `api/v1/class/plugins/plugins/nfclogin/README.md`)
* Added db migrations with phinx to update the database schema
* improved overall security with function node system
* API can now handle public endpoints

## v7.10.2

* Added native function to `Benutzer` class to update user proprties which not lets the `userdetail` plugin actually update user properties
* Fixed bug

## v7.10.1.1

* Hotfix preventing to add a worktime in normal mode

## v7.10.1

* Added some CSS to certain elements which were missing it

## v7.10

* Reflected changes from v7.9 release into Mails.md
* You now get redirected when calendar ID is not found
* Fixed being unable to access the "Forgot password" page
* Fixed typo in userdetail plugin preventing save
* Remove usercount plugin entirely
* Removed webedit for app.json
* A warning is now displayed when an admin changes user information within the userdetail plugin
* Fixed an bug causing userdetail plugin to crash when the selected user could not be found

## v7.9

* Fixed being unable to access "userdetail" plugin
Expand Down
29 changes: 15 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ Additional functionality can be unlocked with TimeTrack Oval

### Requirements

- at least PHP 8.2 (`curl|gd|gmp|intl|mbstring|mysqli|openssl|pgsql|xsl|gettext|dom|ldap`)
- composer (to install dependencies; phpmailer: for sending emails via smtp, parsedown: markdown parser for the `CHANGELOG.md`, simple-router: does the API routing, yaml: for reading plugin yaml files, ldaptools: for LDAP authentication, dompdf: for PDF generation)
- at least PHP 8.2 (`curl|gd|gmp|intl|mbstring|mysqli|openssl|xsl|gettext|dom|ldap`)
- composer (to install dependencies; phpmailer: for sending emails via smtp, parsedown: markdown parser for the `CHANGELOG.md`, simple-router: does the API routing, yaml: for reading plugin yaml files, ldaptools: for LDAP authentication, dompdf: for PDF generation, phinx: for database migrations)
- Apache2.4 with enabled rewrite mod (optional)

This software has been tested on Debian 11/12, XAMPP, PHP internal server (e.g. `php -S 0.0.0.0:80`).
Expand All @@ -36,11 +36,10 @@ Simply install the software by following these steps:
- Git clone timetrack to e.g. `/var/www`: `cd /var/www && git clone https://github.com/Ente/timetrack.git && cd timetrack`
- Install requirements for composer `composer install`
- Create a new database, e.g. with the name `ab` and create a dedicated user, login (`mysql -u root -p`) then e.g. `timetool`: `CREATE DATABASE ab;` and `CREATE USER 'timetool'@'localhost' IDENTIFIED BY 'yourpassword';` and `GRANT ALL PRIVILEGES ON ab.* TO 'timetool'@'localhost';` don't forget to `FLUSH PRIVILEGES;`!
- Import the `setup/sql.sql` into your database, e.g. `mysql -u timetool -p ab < /full/path/to/sql.sql`
- To create your first user, run the `setup/usercreate.php` file, e.g. `php ./usercreate.php admin yourpassword email@admin.com` - `usercreate.php [USERNAME] [PASSWORD] [EMAIL]`
- Run the statement printed by the `usercreate.php` inside your database (`mysql -u root -p` and `use ab;` then the statement).
- Configure `app.json` (see below - required changes: `base_url`, `db_user`, `db_password`, `smtp` section and any other if your installation is different) then `mv api/v1/inc/app.json.sample app.json && cd /var/www/timetrack`
- Run DB migrations: `vendor/bin/phinx migrate`
- Start webserver e.g. `service apache2 stop && php -S 0.0.0.0:80` or using apache2 (then you have to configure the `sites-available` conf yourself)
- You can then access TimeTrack in your browser at `http://localhost`, default login is `admin` with password `admin`. Create yourself a new admin account, login and delete the default account afterwards.

### Configure app.json

Expand All @@ -53,9 +52,11 @@ In step 2, you need to configure the `app.json.sample` within the `api/v1/inc` f
- `auto_update`: (not yet implemented)
- `db_*`: Set the connection details for your mysql instance
- `app`: If set to true, users will be able to use the TimeTrack mobile application
- `timezone`: Set the timezone of your application, e.g. `Europe/Berlin` or `America/New_York` (default: `UTC`)

#### **SMTP section**

- `smtp`: Set to `true` to enable SMTP functionality (default: false)
- `host`: FQDN of your mail server
- `username`: Username for the mailbox you want to send emails from
- `password`: Self explaining
Expand Down Expand Up @@ -83,10 +84,16 @@ LDAP authentication works with OpenLDAP and Active Directory.
- `ldap_ip`: IP address of your LDAP server (e.g. `1.1.1.1`)
- `ldap_domain`: The domain your LDAP server controls (e.g. `example.local`)
- `ldap_basedn`: Base DN for your domain (e.g. `dc=example,dc=local`)
- `ldap_group`: Group membership required by LDAP users to be able to authenticate
- `ldap_group`: Group membership required by LDAP users to be able to authenticate (e.g. `Domain Users`, (new group) `TimeTrack Users`)
- `saf`: Specify if you only have one LDAP server (true) or another one as fallback (false)
- `saf_*`: If `saf` is set to `false`, please specify the corresponding values to the `saf_*` configuration
- `create_user`: If set to `true` it creates an user account automatically if the desired account is authenticated and within specified group. If set to `false` login simply fails, even if authenticated
- `create_user`: If set to `true` it creates an user account automatically if the desired account is authenticated and within specified group. If set to `false` login simply fails, even if authenticated.

#### **Export**

##### **PDF**

- `css`: Full path to the CSS file used for the PDF export (default: `api/v1/class/exports/modules/PDFExportModule/css/index.css`) - **optional value**

If done correctly, you should now be able to access the application via http://BASE_URL/ - redirects to http://BASE_URL/suite/

Expand Down Expand Up @@ -125,7 +132,6 @@ Already existing local accounts will get their authentication overwritten if an
In order to create accounts automatically if `create_user` is `true` make sure to set the user's email address! Otherwise login fails.

If above mentioned setting is set to `false` you have to create a user on your own locally and then let the user login with their LDAP credentials. The credentials you have entered will become usable if you disable LDAP or rename the account on your LDAP server.
Please run `run-patch.sh` within the `setup` folder to get LDAP working with php >8.0

## Export

Expand Down Expand Up @@ -182,9 +188,4 @@ If downloaded any other way, just make sure to copy and paste the new files into

### Database

You can update the database by downloading the `setup/upgrade.php` file into your local `setup` directory.
From here on just edit the `$missingUpdate` variable to the desired version as specified.

Please be aware that you are not able to skip an database update. You have to update one by one, e.g. from 1 -> 2, 2 -> 3, ...


You can update the database by using `vendor/bin/phinx migrate` to migrate to latest release or `vendor/bin/phinx rollback` to rollback.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7.9
7.12
Loading