Commit Graph

456 Commits

Author SHA1 Message Date
Igor Scheller 72d48de3ae Add ETag to FeedController 2023-05-03 16:04:39 +02:00
Michael Weimann 1292722ac3 Add Username validation 2023-04-17 23:09:08 +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
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 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 e0a702ec3b Fixed stats test 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
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
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
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
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 f835a7538c Tests: Improved execution time, test more factories 2022-12-13 22:59:56 +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 b4402a5b59 Update PHP dependencies (major version bumps) 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 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
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 7a92ea077f ShiftType test: Fix test 2022-12-02 15:07:29 +01:00
Igor Scheller 992e708276 Replaced ShiftTypes with shift_types / ShiftType model 2022-11-27 14:17:02 +01:00
Igor Scheller ac162f4411 Removed referenced angeltype from shift type 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
Xu b860b37ba9 add option to hide angeltype at registration 2022-10-21 22:30:17 +02:00
Igor Scheller ff1dfd5a18 Use config for session tests 2022-10-21 19:49:18 +02:00
Xu 2391415969 make session lifetime configurable 2022-10-21 19:42:10 +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
Igor Scheller cf53d85ced Fixed coverage for BarChart test 2022-07-12 00:36:38 +02:00
Igor Scheller c957b2784a Cleanup duplicated app calls, replaced deprecated methods, readability improvements 2022-07-11 23:30:41 +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
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
Xu a68cf7ae53 Exclude voucher edit permission migration from tests with sqlite 2022-06-12 16:14:22 +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 b41a675a35 Require @covers annotation for tests, increase workspace mem limit to 512M, improved coverage for db factories 2022-06-02 13:18:37 +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 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 80d87617f2 Fix migration and test improvements 2022-01-01 16:33:40 +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 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 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 59993788ec Added check if table exists to shifts migration 2021-11-27 11:43:53 +01:00
Igor Scheller 657b44f9cf Redirect back from login after 403 (Not authorized) 2021-10-23 17:13:46 +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 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 19fc114cf7
Added ?theme parameter to temporary change theme 2021-07-29 20:01:10 +02:00
Igor Scheller 03185f8865
Fixed globals and design unit tests 2021-07-29 20:00:57 +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 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 f0bddb321c MySQL: Use bin format to compare oauth users 2020-12-29 00:28:37 +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 53d5f8518b Questions: Change sorting 2020-12-20 20:48:12 +01:00
Igor Scheller b5c974b9e3 Add new questions frontend 2020-12-20 17:46:45 +01:00
Igor Scheller e322867716 Tests: Added abstract ControllerTest 2020-12-20 17:46:45 +01:00
Igor Scheller 857ed23548 Added FAQ 2020-12-20 17:46:45 +01:00
Xu ab82e1cbc0 NewsController: redirect after edit to /news instead of /news/[id] 2020-12-18 17:56:12 +01:00
msquare 39f96783cf review changes 2020-11-25 00:49:45 +01:00
msquare 0c3ff73454 new setting page layout 2020-11-25 00:49:45 +01:00
msquare d3265ef70a add password settings page 2020-11-25 00:49:45 +01:00
Igor Scheller ebab34ee67 Schedule import: Add overview 2020-11-22 16:53:07 +01:00
Igor Scheller 251f2cbfa6 OAuth: Added display name and metrics, show providers on user page 2020-11-22 14:55:29 +01:00
Igor Scheller 80941c2999 Login: Added OAuth support 2020-11-22 14:55:29 +01:00
Igor Scheller 620c9a02bb News: Render as markdown 2020-10-21 21:51:48 +02:00
Igor Scheller a309d873a7 News: Show preview 2020-10-21 21:51:48 +02:00
Igor Scheller f8d9cddcc6 Added CleanupModel stub 2020-10-21 21:51:48 +02:00
Igor Scheller 2be3e17db7 Exceptions: Log previous exception 2020-10-18 16:58:36 +02:00
Allen Taylor 6c177d5173 Added timestamps for questions 2020-09-27 19:28:27 +02:00
Igor Scheller f732a4af6f Added Worklog model 2020-09-24 17:38:12 +02:00
Igor Scheller acf84f222d Added Room model 2020-09-24 09:34:00 +02:00