diff --git a/config/packages/security.yaml b/config/packages/security.yaml index 54fbd6b1..c8e61f87 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -40,7 +40,7 @@ security: logout: path: logout target: homepage - handlers: [App\EventSubscriber\LogoutListener] + handlers: [App\EventSubscriber\LogSystem\LogoutLoggerHandler] remember_me: secret: '%kernel.secret%' diff --git a/config/services.yaml b/config/services.yaml index f5fa21a8..a08ad9c0 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -48,7 +48,7 @@ services: resource: '../src/Controller' tags: ['controller.service_arguments'] - App\EventSubscriber\MailFromListener: + App\EventSubscriber\SetMailFromSubscriber: tags: ['kernel.event_subscriber'] arguments: $email: '%sender_email%' @@ -75,7 +75,7 @@ services: tags: - { name: "doctrine.orm.entity_listener" } - App\EventSubscriber\EventLoggerSubscriber: + App\EventSubscriber\LogSystem\EventLoggerSubscriber: arguments: $save_changed_fields: '%env(bool:HISTORY_SAVE_CHANGED_FIELDS)%' $save_changed_data: '%env(bool:HISTORY_SAVE_CHANGED_DATA)%' @@ -83,7 +83,7 @@ services: tags: - { name: 'doctrine.event_subscriber' } - App\EventSubscriber\MigrationListener: + App\EventSubscriber\LogSystem\LogDBMigrationSubscriber: tags: - { name: 'doctrine.event_subscriber' } @@ -138,7 +138,7 @@ services: arguments: $demo_mode: '%demo_mode%' - App\EventSubscriber\TimezoneListener: + App\EventSubscriber\UserSystem\SetUserTimezoneSubscriber: arguments: $timezone: '%timezone%' diff --git a/src/EventSubscriber/EventLoggerSubscriber.php b/src/EventSubscriber/LogSystem/EventLoggerSubscriber.php similarity index 92% rename from src/EventSubscriber/EventLoggerSubscriber.php rename to src/EventSubscriber/LogSystem/EventLoggerSubscriber.php index 8a888ecb..9be5ca86 100644 --- a/src/EventSubscriber/EventLoggerSubscriber.php +++ b/src/EventSubscriber/LogSystem/EventLoggerSubscriber.php @@ -1,4 +1,22 @@ . + */ declare(strict_types=1); @@ -21,7 +39,7 @@ declare(strict_types=1); * along with this program. If not, see . */ -namespace App\EventSubscriber; +namespace App\EventSubscriber\LogSystem; use App\Entity\Attachments\Attachment; use App\Entity\Base\AbstractDBElement; @@ -47,6 +65,10 @@ use Doctrine\Persistence\Event\LifecycleEventArgs; use Symfony\Component\PropertyAccess\PropertyAccessorInterface; use Symfony\Component\Serializer\SerializerInterface; +/** + * This event subscriber write to event log when entities are changed, removed, created. + * @package App\EventSubscriber\LogSystem + */ class EventLoggerSubscriber implements EventSubscriber { /** @var array The given fields will not be saved, because they contain sensitive informations */ diff --git a/src/EventSubscriber/MigrationListener.php b/src/EventSubscriber/LogSystem/LogDBMigrationSubscriber.php similarity index 94% rename from src/EventSubscriber/MigrationListener.php rename to src/EventSubscriber/LogSystem/LogDBMigrationSubscriber.php index 1b50aaba..1e51d518 100644 --- a/src/EventSubscriber/MigrationListener.php +++ b/src/EventSubscriber/LogSystem/LogDBMigrationSubscriber.php @@ -40,7 +40,7 @@ declare(strict_types=1); * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -namespace App\EventSubscriber; +namespace App\EventSubscriber\LogSystem; use App\Entity\LogSystem\DatabaseUpdatedLogEntry; use App\Services\LogSystem\EventLogger; @@ -48,7 +48,11 @@ use Doctrine\Common\EventSubscriber; use Doctrine\Migrations\Event\MigrationsEventArgs; use Doctrine\Migrations\Events; -class MigrationListener implements EventSubscriber +/** + * This subscriber logs databaseMigrations to Event log. + * @package App\EventSubscriber + */ +class LogDBMigrationSubscriber implements EventSubscriber { protected $old_version = null; protected $new_version = null; diff --git a/src/EventSubscriber/LogoutListener.php b/src/EventSubscriber/LogSystem/LogoutLoggerHandler.php similarity index 92% rename from src/EventSubscriber/LogoutListener.php rename to src/EventSubscriber/LogSystem/LogoutLoggerHandler.php index 96adcd8f..f6c91451 100644 --- a/src/EventSubscriber/LogoutListener.php +++ b/src/EventSubscriber/LogSystem/LogoutLoggerHandler.php @@ -40,7 +40,7 @@ declare(strict_types=1); * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -namespace App\EventSubscriber; +namespace App\EventSubscriber\LogSystem; use App\Entity\LogSystem\UserLogoutLogEntry; use App\Entity\UserSystem\User; @@ -50,7 +50,11 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Http\Logout\LogoutHandlerInterface; -class LogoutListener implements LogoutHandlerInterface +/** + * This handler logs to event log, if a user logs out. + * @package App\EventSubscriber\LogSystem + */ +class LogoutLoggerHandler implements LogoutHandlerInterface { protected $logger; protected $gpdr_compliance; diff --git a/src/EventSubscriber/SecurityEventLoggerSubscriber.php b/src/EventSubscriber/LogSystem/SecurityEventLoggerSubscriber.php similarity index 95% rename from src/EventSubscriber/SecurityEventLoggerSubscriber.php rename to src/EventSubscriber/LogSystem/SecurityEventLoggerSubscriber.php index 77f2f3ca..c7252089 100644 --- a/src/EventSubscriber/SecurityEventLoggerSubscriber.php +++ b/src/EventSubscriber/LogSystem/SecurityEventLoggerSubscriber.php @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -namespace App\EventSubscriber; +namespace App\EventSubscriber\LogSystem; use App\Entity\LogSystem\SecurityEventLogEntry; @@ -29,6 +29,10 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; +/** + * This subscriber writes entries to log if an security related event happens (e.g. the user changes its password). + * @package App\EventSubscriber\LogSystem + */ final class SecurityEventLoggerSubscriber implements EventSubscriberInterface { diff --git a/src/EventSubscriber/MailFromListener.php b/src/EventSubscriber/SetMailFromSubscriber.php similarity index 92% rename from src/EventSubscriber/MailFromListener.php rename to src/EventSubscriber/SetMailFromSubscriber.php index 5bde6b5c..71d96a03 100644 --- a/src/EventSubscriber/MailFromListener.php +++ b/src/EventSubscriber/SetMailFromSubscriber.php @@ -47,7 +47,11 @@ use Symfony\Component\Mailer\Event\MessageEvent; use Symfony\Component\Mime\Address; use Symfony\Component\Mime\Email; -final class MailFromListener implements EventSubscriberInterface +/** + * This subscriber set the "From" field for all sent email, based on the global configured sender name and email. + * @package App\EventSubscriber + */ +final class SetMailFromSubscriber implements EventSubscriberInterface { private $email; private $name; diff --git a/src/EventSubscriber/SymfonyDebugToolbarSubscriber.php b/src/EventSubscriber/SymfonyDebugToolbarSubscriber.php index e132bd18..377c9633 100644 --- a/src/EventSubscriber/SymfonyDebugToolbarSubscriber.php +++ b/src/EventSubscriber/SymfonyDebugToolbarSubscriber.php @@ -47,6 +47,10 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; use Symfony\Component\HttpKernel\Event\ResponseEvent; +/** + * This subscriber sets an Header in Debug mode that signals the Symfony Profiler to also update on Ajax requests. + * @package App\EventSubscriber + */ final class SymfonyDebugToolbarSubscriber implements EventSubscriberInterface { private $kernel_debug; diff --git a/src/EventSubscriber/LoginSuccessListener.php b/src/EventSubscriber/UserSystem/LoginSuccessSubscriber.php similarity index 96% rename from src/EventSubscriber/LoginSuccessListener.php rename to src/EventSubscriber/UserSystem/LoginSuccessSubscriber.php index b2bcc07c..30bacb57 100644 --- a/src/EventSubscriber/LoginSuccessListener.php +++ b/src/EventSubscriber/UserSystem/LoginSuccessSubscriber.php @@ -40,7 +40,7 @@ declare(strict_types=1); * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -namespace App\EventSubscriber; +namespace App\EventSubscriber\UserSystem; use App\Entity\LogSystem\UserLoginLogEntry; use App\Entity\UserSystem\User; @@ -52,9 +52,9 @@ use Symfony\Component\Security\Http\SecurityEvents; use Symfony\Contracts\Translation\TranslatorInterface; /** - * This event listener shows an login successful flash to the user after login. + * This event listener shows an login successful flash to the user after login and write the login to event log. */ -final class LoginSuccessListener implements EventSubscriberInterface +final class LoginSuccessSubscriber implements EventSubscriberInterface { private $translator; private $flashBag; diff --git a/src/EventSubscriber/LogoutOnDisabledUserListener.php b/src/EventSubscriber/UserSystem/LogoutDisabledUserSubscriber.php similarity index 92% rename from src/EventSubscriber/LogoutOnDisabledUserListener.php rename to src/EventSubscriber/UserSystem/LogoutDisabledUserSubscriber.php index 7b1d07f7..565aa907 100644 --- a/src/EventSubscriber/LogoutOnDisabledUserListener.php +++ b/src/EventSubscriber/UserSystem/LogoutDisabledUserSubscriber.php @@ -40,7 +40,7 @@ declare(strict_types=1); * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -namespace App\EventSubscriber; +namespace App\EventSubscriber\UserSystem; use App\Entity\UserSystem\User; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -50,7 +50,12 @@ use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Security\Core\Security; -final class LogoutOnDisabledUserListener implements EventSubscriberInterface +/** + * This subscriber is used to log out a disabled user, as soon as he to do an request. + * It is not possible for him to login again, afterwards. + * @package App\EventSubscriber\UserSystem + */ +final class LogoutDisabledUserSubscriber implements EventSubscriberInterface { private $security; private $urlGenerator; diff --git a/src/EventSubscriber/PasswordChangeNeededSubscriber.php b/src/EventSubscriber/UserSystem/PasswordChangeNeededSubscriber.php similarity index 99% rename from src/EventSubscriber/PasswordChangeNeededSubscriber.php rename to src/EventSubscriber/UserSystem/PasswordChangeNeededSubscriber.php index 15a891a4..8f3b8426 100644 --- a/src/EventSubscriber/PasswordChangeNeededSubscriber.php +++ b/src/EventSubscriber/UserSystem/PasswordChangeNeededSubscriber.php @@ -40,7 +40,7 @@ declare(strict_types=1); * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -namespace App\EventSubscriber; +namespace App\EventSubscriber\UserSystem; use App\Entity\UserSystem\User; use Symfony\Component\EventDispatcher\EventSubscriberInterface; diff --git a/src/EventSubscriber/U2FRegistrationSubscriber.php b/src/EventSubscriber/UserSystem/RegisterU2FSubscriber.php similarity index 94% rename from src/EventSubscriber/U2FRegistrationSubscriber.php rename to src/EventSubscriber/UserSystem/RegisterU2FSubscriber.php index 78092b66..3e520ecf 100644 --- a/src/EventSubscriber/U2FRegistrationSubscriber.php +++ b/src/EventSubscriber/UserSystem/RegisterU2FSubscriber.php @@ -40,7 +40,7 @@ declare(strict_types=1); * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -namespace App\EventSubscriber; +namespace App\EventSubscriber\UserSystem; use App\Entity\UserSystem\U2FKey; use App\Entity\UserSystem\User; @@ -55,7 +55,11 @@ use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; -final class U2FRegistrationSubscriber implements EventSubscriberInterface +/** + * This subscriber is used to write U2F keys to DB, after user added them via GUI. + * @package App\EventSubscriber\UserSystem + */ +final class RegisterU2FSubscriber implements EventSubscriberInterface { private $em; diff --git a/src/EventSubscriber/TimezoneListener.php b/src/EventSubscriber/UserSystem/SetUserTimezoneSubscriber.php similarity index 97% rename from src/EventSubscriber/TimezoneListener.php rename to src/EventSubscriber/UserSystem/SetUserTimezoneSubscriber.php index 52257319..c4af39e2 100644 --- a/src/EventSubscriber/TimezoneListener.php +++ b/src/EventSubscriber/UserSystem/SetUserTimezoneSubscriber.php @@ -40,7 +40,7 @@ declare(strict_types=1); * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -namespace App\EventSubscriber; +namespace App\EventSubscriber\UserSystem; use App\Entity\UserSystem\User; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -51,7 +51,7 @@ use Symfony\Component\Security\Core\Security; /** * The purpose of this event listener is to set the timezone to the one preferred by the user. */ -final class TimezoneListener implements EventSubscriberInterface +final class SetUserTimezoneSubscriber implements EventSubscriberInterface { private $default_timezone; private $security; diff --git a/tests/EventSubscriber/PasswordChangeNeededSubscriberTest.php b/tests/EventSubscriber/PasswordChangeNeededSubscriberTest.php index d09cb000..916ca5c1 100644 --- a/tests/EventSubscriber/PasswordChangeNeededSubscriberTest.php +++ b/tests/EventSubscriber/PasswordChangeNeededSubscriberTest.php @@ -45,7 +45,7 @@ namespace App\Tests\EventSubscriber; use App\Entity\UserSystem\Group; use App\Entity\UserSystem\U2FKey; use App\Entity\UserSystem\User; -use App\EventSubscriber\PasswordChangeNeededSubscriber; +use App\EventSubscriber\UserSystem\PasswordChangeNeededSubscriber; use PHPUnit\Framework\TestCase; class PasswordChangeNeededSubscriberTest extends TestCase @@ -57,11 +57,11 @@ class PasswordChangeNeededSubscriberTest extends TestCase //A user without a group must not redirect $user->setGroup(null); - $this->assertFalse(PasswordChangeNeededSubscriber::TFARedirectNeeded($user)); + $this->assertFalse(\App\EventSubscriber\UserSystem\PasswordChangeNeededSubscriber::TFARedirectNeeded($user)); //When the group does not enforce the redirect the user must not be redirected $user->setGroup($group); - $this->assertFalse(PasswordChangeNeededSubscriber::TFARedirectNeeded($user)); + $this->assertFalse(\App\EventSubscriber\UserSystem\PasswordChangeNeededSubscriber::TFARedirectNeeded($user)); //The user must be redirected if the group enforces 2FA and it does not have a method $group->setEnforce2FA(true);