Commit Graph

505 Commits

Author SHA1 Message Date
Michael Weimann c5317e2536 Add ShirtSize validation 2023-05-11 18:48:28 +02:00
Igor Scheller 72d48de3ae Add ETag to FeedController 2023-05-03 16:04:39 +02:00
Igor Scheller ca6e0813ba RouteDispatcher: Fixed string conversion 2023-04-19 20:11:38 +02:00
Michael Weimann 1292722ac3 Add Username validation 2023-04-17 23:09:08 +02:00
Igor Scheller 6e8dc642de Catch Exception when sending emails to users 2023-04-08 19:55:54 +02:00
Igor Scheller bf4a818e01 Make session cleanup more robust and tests explicit 2023-04-08 14:14:57 +02:00
Igor Scheller 9f35ebc482 Use app configured session lifetime for garbage collection 2023-04-08 00:34:43 +02:00
Thomas Rupprecht d4104850be
phpstan fixes (partial level 3) (#1091) 2023-04-01 14:39:25 +02:00
Thomas Rupprecht 3f0a5a5b73 hide language/theme menu if not more than 1 selection is available 2023-03-30 21:55:28 +02:00
Johannes Rudolph c67fbbad73 Add option to show user first and last name instead of nickname 2023-03-13 17:33:17 +01:00
xuwhite 668a9e86f5
refactor goodie config option as enum (#1100)
* goodie config as enum
* Unified goodie check, updated test
* Changed tshirt to goodie in url

---------

Co-authored-by: Igor Scheller <igor.scheller@igorshp.de>
2023-03-05 03:00:38 +01:00
Igor Scheller 523e984122 Added git HEAD to version parsing 2023-02-28 16:12:01 +01:00
Igor Scheller fb8c05edad Added email notification on new private messages 2023-02-26 16:59:48 +01:00
Igor Scheller a464682b47 Reimplemented admin room pages 2023-02-26 16:55:04 +01:00
Igor Scheller baca49c53b Fixed quotest 2023-02-26 16:32:02 +01:00
Igor Scheller 34e9d01c18 Translate more date / time outputs 2023-02-26 14:10:02 +01:00
Igor Scheller 6b15e6b86e Fixed news test 2023-02-26 13:49:13 +01:00
Igor Scheller cf18f058b5 Moved logging tests from feature to unit 2023-02-26 13:49:13 +01:00
Igor Scheller 98a0937b82 Reimplemented angeltypes about page 2023-02-15 18:05:30 +01:00
xuwhite 6fcb656299
Added important news (#1096) 2023-02-13 21:19:45 +01:00
Igor Scheller 713f8222e4 Unified user notifications 2023-02-13 19:38:29 +01:00
Bot ad360a70fb Require comma at last array element and no single line space 2023-02-09 18:19:38 +01:00
Igor Scheller 216185b65c Don't use double-quoted strings if not needed 2023-02-09 18:19:38 +01:00
Bot f9d22f9bda Set strict types everywhere (except includes) 2023-02-03 20:55:58 +01:00
Michael Weimann 3c6a5bb385 Fix strict types errors 2023-02-03 20:55:58 +01:00
Igor Scheller 7eccf2c535 Reimplemented shifts json export 2023-02-02 20:01:31 +01:00
Igor Scheller b0b4cb54ec Reimplemented shifts ical export 2023-02-02 20:01:31 +01:00
Igor Scheller 3d0d5067fd Reimplemented news Atom feed, added RSS feed 2023-02-02 20:01:31 +01:00
Igor Scheller 8223193330 Added uuid/uuidBy twig functions 2023-02-02 20:01:31 +01:00
Igor Scheller a9cd00c37a Authenticator: Improve auth methods handling, esp. for api endpoints 2023-02-02 20:01:31 +01:00
Xu ccdf1aa8d5 add config option for other goodies 2023-01-31 01:51:31 +01:00
Igor Scheller 0188ed5562 Fixed StringInputLength validation 2023-01-24 23:28:15 +01:00
Igor Scheller 37a26c123e Validation: Fixed worklog comment: ... 2023-01-24 20:49:31 +01:00
Igor Scheller f5a7598a45 tests: Removed exception handler registration because it has side effects 2023-01-24 20:49:31 +01:00
Thomas Rupprecht e844c98871
Convert class const's to enum's (#1050)
* convert `Migrate::(UP|DOWN)` class const to `MigrateDirection` enum
* convert `Handler::(ENV_PRODUCTION|ENV_DEVELOPMENT)` class const to `Environment` enum
* convert `ShiftSignupState::(FREE|...|NOT_ARRIVED)` class const to `ShiftSignupStatus::(FREE|...|NOT_ARRIVED)` enum
2023-01-24 19:23:57 +01:00
Thomas Rupprecht 5a2b8f7ff9
Improve navbar 2023-01-22 19:16:33 +01:00
Igor Scheller 96f703bf22
Migrate NeededAngelType model 2023-01-22 18:43:09 +01:00
Igor Scheller 89dc85c3d5
Add ShiftEntry model 2023-01-18 13:02:11 +01:00
Johannes Rudolph 64be48c646 Add Possibility for Custom Translations: config/[locale]/custom.po 2023-01-17 19:22:59 +01:00
Michael Weimann 01373cb192 Replace select 2 with choices.js and kill jQuery 2023-01-17 14:27:38 +01:00
Igor Scheller 2be8e565bf Refactored UUID generation: use pseudo unique named UUID for schedules 2023-01-06 14:16:41 +01:00
Igor Scheller 3115870ec4
Added Shift model 2023-01-03 22:19:03 +01:00
Michael Weimann 59cfce0c76
Enable space after cast sniff and remove .git-blame-ignore-revs 2022-12-25 11:59:45 +01:00
Igor Scheller b024650eaf Fix formatting 2022-12-22 00:35:07 +01:00
Thomas Rupprecht 3d88ae7916
convert `switch` to `match` 2022-12-22 00:08:54 +01:00
Igor Scheller d1b7b6886e Fix tests coverage 2022-12-21 15:11:37 +01:00
Thomas Rupprecht f24d31b928
Improve countdown logic
use `Intl.RelativeTimeFormat` to support different l10n add week as possible duration
2022-12-21 14:18:21 +01:00
Michael Weimann 6dac44d67f
Rename class props to match ctor param 2022-12-20 22:19:52 +01:00
Michael Weimann 2ad4203dd3
Add useless comment phpcs sniff 2022-12-20 22:19:49 +01:00
Michael Weimann 61139e03c3
Use constructor property promotion
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2022-12-20 22:18:34 +01:00
Michael Weimann b004f865b4
Set native property types
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2022-12-15 20:13:50 +01:00
Michael Weimann aff8826c99
Set native return types
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2022-12-15 20:13:31 +01:00
Michael Weimann 2b88322c0c
Set native parameter types
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2022-12-15 20:13:30 +01:00
Igor Scheller 93b30dcbdf OAuth2 event: refactoring 2022-12-13 22:46:16 +01:00
Igor Scheller 5b8805f884 Moved OAuth2 event helper and added tests 2022-12-13 22:46:16 +01:00
Igor Scheller 7f78f59840 Added UserAngelType model 2022-12-13 22:46:16 +01:00
Igor Scheller 99e7a088b0 Use PHP 8.2 for builds and fixed warning in email validation rule 2022-12-13 22:03:08 +01:00
Igor Scheller b4402a5b59 Update PHP dependencies (major version bumps) 2022-12-13 22:03:08 +01:00
Igor Scheller 6c4e92baf2 Bump minimum PHP version to 8.1 and update packages 2022-12-13 22:03:08 +01:00
Thomas Rupprecht ce0ac6f823
Use specific ID parameter names in routes (#1023) 2022-12-11 18:01:34 +01:00
Igor Scheller 31afc07d22 Ignore code coverage (parent::boot is not registered) 2022-12-08 19:23:44 +01:00
Igor Scheller 6686d58c06 Implemented AngelTypes model 2022-12-08 18:35:22 +01:00
frischler bdc62eaac3
Worklog Refactoring 2022-12-08 17:40:24 +01:00
Michael Weimann 9396a49412 Add phpstan 2022-12-08 16:32:04 +01:00
Thomas Rupprecht 0e3d47f2e1
replace md5 with random_bytes and use 64 chars for api_key 2022-12-08 15:57:13 +01:00
Joshua Bachmeier 6917f7805b Add support for oauth scopes
As defined in RFC6749:
* https://www.rfc-editor.org/rfc/rfc6749#section-4.1.1
* https://www.rfc-editor.org/rfc/rfc6749#section-3.3

Scopes can be configured per-provider in engelsystem config.
2022-12-02 15:35:10 +01:00
Joshua Bachmeier 44821019b6 Add error handling to oauth provider response processing 2022-12-02 15:35:10 +01:00
Igor Scheller 992e708276 Replaced ShiftTypes with shift_types / ShiftType model 2022-11-27 14:17:02 +01:00
Igor Scheller 99afe3f651
Permissions refactoring
* Migration: Added groups, privileges, user_groups, group_privileges, improved references
* Models: Added Group, Privilege and integrated it into User
* Replaced old permission handling with new models
2022-11-06 12:41:52 +01:00
frischler 35815b0838 Settings Modernization: Applied suggested changed from #972 2022-11-01 16:55:23 +01:00
frischler dba7bc29f9 Settings Modernization: Added mobile_show setting to /settings/profile page. 2022-11-01 16:55:23 +01:00
frischler 63f1c12429 Settings Modernization: Refactoring
Settings Modernization: Fixing Date issue

Settings Modernization: Reroute

Settings Modernization: Reroute settings to /settings/profile, Cleanup and Refactoring
2022-11-01 16:55:23 +01:00
frischler d6899d37d9 Settings Modernization: Applying buildup and teardown time, add localization 2022-11-01 16:55:23 +01:00
frischler 203531629f Settings Modernization: Creating /settings/profile page with Controller methods and tests 2022-11-01 16:55:23 +01:00
Igor Scheller 4d9f4694ae Groups: Fix naming and update IDs 2022-10-22 17:49:20 +02:00
Michael Weimann a81992ca04
Add countdowns to /design 2022-10-22 17:11:55 +02:00
Xu 2391415969 make session lifetime configurable 2022-10-21 19:42:10 +02:00
Xu f9da096308 add option to show mobile number of user in users view 2022-10-18 22:06:08 +02:00
Xu 4d6da1894a added dect option for rooms 2022-10-18 21:22:37 +02:00
Igor Scheller 7cd4befdfa Refactored shift entry deletion: Use event for notification and worklog creation 2022-10-14 16:27:51 +02:00
Igor Scheller 870a92efd5 Move NightShiftMultiplier calculation to Shifts helper 2022-10-14 16:27:51 +02:00
Igor Scheller 20e389fccd k8s: Use traefik as default ingress, added improved app url handling to support subpath deployments 2022-10-14 13:36:11 +02:00
Michael Weimann 29aec8d72f Fix barchart division by 0 error 2022-07-18 19:33:58 +02:00
Michael Weimann 006dde9d8e Add SlevomatCodingStandard.Variables.UnusedVariable 2022-07-11 23:30:41 +02:00
Michael Weimann 1277f8f96f Replace chart-js with backend rendering
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2022-07-11 23:30:41 +02:00
frischler 8380536055 Settings language handled in SettingsController 2022-06-30 14:05:46 +02:00
Xu 05e94bbfee add config option and permission for food voucher 2022-06-17 20:55:16 +02:00
frischler 3043a9512a Settings themes handled in SettingsController 2022-06-14 13:34:01 +02:00
Igor Scheller bb49b308fb Generate UUID as shifts transaction id and fixed translation 2022-06-12 17:02:19 +02:00
Igor Scheller 96277dcfc4 Added transaction id to shifts for bulk deletion 2022-06-12 17:02:17 +02:00
Igor Scheller 743a79ceea Replace model data access workaround with twigbridge patch 2022-06-10 12:45:24 +02:00
Igor Scheller d9e4bf3cac Unified message display, scroll to newest after sending or deleting 2022-06-06 16:12:47 +02:00
Igor Scheller 9e5f0ff854 Use pronoun for other pages too, a bit more cleanup 2022-06-06 16:12:47 +02:00
Igor Scheller 7acd34ba74 Added unread messages as global var 2022-06-06 16:12:47 +02:00
frischler 865873c099 Enabled to write messages to myself 2022-06-06 16:12:47 +02:00
frischler 71d183df01 Applied changes as suggested in https://github.com/engelsystem/engelsystem/pull/915 2022-06-06 16:12:47 +02:00
frischler 2c0d516578 Improved Messages UI and shrinking includes/user_messages.php 2022-06-06 16:12:47 +02:00
Igor Scheller d690d64d0e /metrics: Add newline at the end to be spec compliant
Fixes #909: Error trying to parse /metrics

See also https://prometheus.io/docs/instrumenting/exposition_formats/#text-format-details
2022-05-11 00:25:20 +02:00
Igor Scheller b842466b3a Added assets hashing after build, added favicon 2022-04-29 22:26:58 +02:00
Michael Weimann 66e7a3e183 Add unused imports phpcs rule 2022-04-19 23:33:44 +02:00
Michael Weimann c4b2fbda1a Remove date/time pickers 2022-04-19 23:33:44 +02:00
Igor Scheller 4b77290134 CI: Fix k8s deployment when commit message contains a # or \, add more app dirs to whoops handler 2022-04-18 14:32:36 +02:00
Igor Scheller d8076abc38 Make password enabled configurable via oauth settings 2022-03-20 18:29:51 +01:00
Igor Scheller 8fd2d5bfa5 Allow empty password in settings 2022-03-20 18:29:51 +01:00
Igor Scheller b345bf4ea7 Fix metrics and notifications when sql_mode is only_full_group_by (since MySQL 5.7/8.0) 2022-03-20 15:32:44 +01:00
Tobias Wiese e361400f68 news: remove html support
Since the support for markdown in news the html feature isn't really
necessary any more.
2022-01-01 16:33:40 +01:00
Tobias Wiese 9db8773150 markdown: let Parsedown escape content
Letting Parsedown escape the content, instead of calling
htmlspecialchars provides more context to the escape process.
For example the ampersand character can now be used in markdown links as
part of the url without breaking.
2022-01-01 16:33:40 +01:00
Igor Scheller 82486065e4 Disable mail logger 2021-12-30 14:29:14 +01:00
Igor Scheller 6a79aaeeaa Replaced swift mailer with symfony mailer 2021-12-29 22:28:12 +01:00
Igor Scheller 11c3a762b8 Remove space from email subjects 2021-12-29 17:12:19 +01:00
Igor Scheller 46d6ada728 Update composer packages and bump php version to 7.4 2021-12-29 17:12:19 +01:00
Igor Scheller 676a2113b4 Added User\License model 2021-12-29 17:12:19 +01:00
Igor Scheller 8d436d988a More PHP 8.1 fixes to be compatible 2021-12-29 11:00:02 +01:00
Igor Scheller a95fc0fbd1 Models: Use explicit casts and default attribute values 2021-12-29 11:00:02 +01:00
Igor Scheller f1531ad987 Added [more] tag to news 2021-12-12 13:23:01 +01:00
Igor Scheller 26ab0619f5 OAuth: Allow nested info attributes 2021-12-12 12:34:43 +01:00
Igor Scheller 8256b9d6bd Hide oauth from profile and settings page if not configured / should be hidden 2021-12-12 12:34:43 +01:00
Igor Scheller 2d45e04a90 Added option to allow sso account creation even if public registration is disabled 2021-12-12 12:34:43 +01:00
Igor Scheller 1ba4b57eac Added OAuth2 SSO login group mapping 2021-12-12 12:34:43 +01:00
Igor Scheller dc0cf101b2 Moved gdpr goodie mail opt in to own configurable option
Co-authored-by: Michael Weimann <mail@michael-weimann.eu>
2021-12-04 11:58:06 +01:00
Igor Scheller 2cfce86e25 Fixed formatting 2021-10-23 17:19:49 +02:00
Igor Scheller 657b44f9cf Redirect back from login after 403 (Not authorized) 2021-10-23 17:13:46 +02:00
msquare ca8f851ab1 user shirt edit: finetuning shirt edit view and logs 2021-10-23 17:04:19 +02:00
Igor Scheller 5c90a1ef37 Added shirt edit view 2021-10-23 17:04:19 +02:00
Igor Scheller 4825c2de2b Fixed test coverage and naming 2021-08-17 15:22:22 +02:00
Igor Scheller f201b2f1c8 Merge branch 'feature-bootstrap5'
# Conflicts:
#	package.json
#	tests/Unit/Renderer/Twig/Extensions/GlobalsTest.php
#	webpack.config.js
#	yarn.lock
2021-08-17 14:26:28 +02:00
Igor Scheller e0eeee013e
Fix secondary color on dark themes and theme 7 secondary buttons, formatting 2021-08-16 18:02:06 +02:00
Michael Weimann 98e9af8b8d
handle non-existing theme in user setting 2021-08-16 18:02:04 +02:00
Igor Scheller f7b9f59d95 OAuth: Compare strings so that numeric IDs can be used 2021-08-14 15:29:05 +02:00
Igor Scheller a8e012be72 Make news comments deletable 2021-08-08 19:11:16 +02:00
Igor Scheller ff8adafd33 Added more factories 2021-08-08 18:31:33 +02:00
Igor Scheller ec355d40f5 Added user related factories 2021-08-08 18:31:33 +02:00
Igor Scheller 7917e32f3e
Fixed api key toggle driver license config display and dashboard 2021-07-29 20:01:17 +02:00
Igor Scheller 19fc114cf7
Added ?theme parameter to temporary change theme 2021-07-29 20:01:10 +02:00
Michael Weimann 5f7fcb9018
make all themes basically working with bs5
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>

migrate buttons and badges

Signed-off-by: Michael Weimann <mail@michael-weimann.eu>

upgrade bootstrap, fix devtool

remove postcss-preset-env

remove npm-run-all

add theme info to design

add theme configs for 2-15

make all themes compile

fix node env in script

refactor theme config

make all themes basically working

fix sass 3rd party warnings

replace slash div by math.div
2021-07-29 20:00:54 +02:00
Igor Scheller 4ff44d141c Translator: Fix values handling when array keys are set
Fixes #820 (Password recovery not working)
2021-07-11 00:51:30 +02:00
Igor Scheller 3912b4e93e Set initial admin password if configured
Resolves #806 (Allow admins to configure the initial password of the admin user)
Closes #809 PR (Allow to configure initial admin pw)
2021-05-24 15:41:16 +02:00
Xu cb2ec5457e stats: added pronoun 2021-04-13 16:01:38 +02:00
Igor Scheller ef665c80ba ExceptionHandling: Show formatted stack trace on CLI 2021-04-12 17:13:48 +02:00
Igor Scheller c2b2487721 Locale: Set initial locale using request language 2021-04-12 17:13:48 +02:00
Igor Scheller 30e1d41c0a EventConfig: Set time on dates 2021-04-12 17:13:48 +02:00
Igor Scheller bb2a13f605 OAuth: Compare oauth users using exact compare 2021-04-12 17:13:48 +02:00
Igor Scheller a5757497e5 Add theme change to /design page 2021-04-12 16:42:15 +02:00
Igor Scheller 149155fbda Added email notification on new news 2021-04-12 16:15:25 +02:00
Igor Scheller 814cafd05d Added EventDispatcher 2021-04-12 16:15:25 +02:00
Allen Taylor 02ba802d6b configured var dump server 2021-01-09 16:44:02 +01:00
Igor Scheller 85044bc833 News: Add is_pinned 2020-12-27 10:59:28 +01:00
Igor Scheller d423bb07d3 OAuth: Save auth tokens 2020-12-26 21:09:24 +01:00
Igor Scheller 304b599cf4 OAuth: Allow - in URLs and fix response handling 2020-12-26 16:09:39 +01:00
Igor Scheller 53d5f8518b Questions: Change sorting 2020-12-20 20:48:12 +01:00