Files
firefly-iii/app/Providers/EventServiceProvider.php

297 lines
13 KiB
PHP
Raw Normal View History

<?php
/**
* EventServiceProvider.php
2020-02-16 13:55:52 +01:00
* Copyright (c) 2019 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
2017-10-21 08:40:00 +02:00
*
* This program is distributed in the hope that it will be useful,
2017-10-21 08:40:00 +02:00
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
2017-10-21 08:40:00 +02:00
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Providers;
2015-02-06 04:39:52 +01:00
2021-10-13 05:57:11 +02:00
use FireflyIII\Events\ActuallyLoggedIn;
2022-10-01 12:21:42 +02:00
use FireflyIII\Events\Admin\InvitationCreated;
use FireflyIII\Events\DestroyedTransactionGroup;
2020-08-28 21:58:03 +02:00
use FireflyIII\Events\DetectedNewIPAddress;
use FireflyIII\Events\Model\BudgetLimit\Created;
use FireflyIII\Events\Model\BudgetLimit\Deleted;
use FireflyIII\Events\Model\BudgetLimit\Updated;
use FireflyIII\Events\Model\PiggyBank\ChangedAmount;
use FireflyIII\Events\Model\Rule\RuleActionFailedOnArray;
2023-08-13 15:01:12 +02:00
use FireflyIII\Events\Model\Rule\RuleActionFailedOnObject;
2022-09-24 11:41:07 +02:00
use FireflyIII\Events\NewVersionAvailable;
2024-12-21 07:12:11 +01:00
use FireflyIII\Events\Preferences\UserGroupChangedDefaultCurrency;
2017-12-05 20:50:04 +01:00
use FireflyIII\Events\RegisteredUser;
2018-04-02 15:10:40 +02:00
use FireflyIII\Events\RequestedNewPassword;
2018-06-25 16:01:45 +02:00
use FireflyIII\Events\RequestedReportOnJournals;
2020-12-02 19:30:09 +01:00
use FireflyIII\Events\RequestedSendWebhookMessages;
2017-12-28 19:03:15 +01:00
use FireflyIII\Events\RequestedVersionCheckStatus;
use FireflyIII\Events\Security\DisabledMFA;
use FireflyIII\Events\Security\EnabledMFA;
use FireflyIII\Events\Security\MFABackupFewLeft;
use FireflyIII\Events\Security\MFABackupNoLeft;
use FireflyIII\Events\Security\MFAManyFailedAttempts;
use FireflyIII\Events\Security\MFANewBackupCodes;
use FireflyIII\Events\Security\MFAUsedBackupCode;
2024-12-12 07:09:17 +01:00
use FireflyIII\Events\Security\UnknownUserAttemptedLogin;
2024-12-14 07:13:01 +01:00
use FireflyIII\Events\Security\UserAttemptedLogin;
2021-04-10 17:25:48 +02:00
use FireflyIII\Events\StoredAccount;
2019-03-30 11:03:39 +01:00
use FireflyIII\Events\StoredTransactionGroup;
use FireflyIII\Events\Test\OwnerTestNotificationChannel;
use FireflyIII\Events\Test\UserTestNotificationChannel;
2022-10-02 05:37:38 +02:00
use FireflyIII\Events\TriggeredAuditLog;
2021-04-10 17:25:48 +02:00
use FireflyIII\Events\UpdatedAccount;
2019-03-30 11:03:39 +01:00
use FireflyIII\Events\UpdatedTransactionGroup;
2018-04-02 15:10:40 +02:00
use FireflyIII\Events\UserChangedEmail;
2022-03-28 12:23:46 +02:00
use FireflyIII\Events\WarnUserAboutBill;
use FireflyIII\Handlers\Observer\AccountObserver;
use FireflyIII\Handlers\Observer\AttachmentObserver;
2024-12-20 05:20:37 +01:00
use FireflyIII\Handlers\Observer\AutoBudgetObserver;
use FireflyIII\Handlers\Observer\AvailableBudgetObserver;
use FireflyIII\Handlers\Observer\BillObserver;
2024-12-20 05:31:16 +01:00
use FireflyIII\Handlers\Observer\BudgetLimitObserver;
use FireflyIII\Handlers\Observer\BudgetObserver;
use FireflyIII\Handlers\Observer\CategoryObserver;
2024-12-20 05:31:16 +01:00
use FireflyIII\Handlers\Observer\PiggyBankEventObserver;
use FireflyIII\Handlers\Observer\PiggyBankObserver;
use FireflyIII\Handlers\Observer\RecurrenceObserver;
use FireflyIII\Handlers\Observer\RecurrenceTransactionObserver;
use FireflyIII\Handlers\Observer\RuleGroupObserver;
use FireflyIII\Handlers\Observer\RuleObserver;
use FireflyIII\Handlers\Observer\TagObserver;
use FireflyIII\Handlers\Observer\TransactionGroupObserver;
use FireflyIII\Handlers\Observer\TransactionJournalObserver;
use FireflyIII\Handlers\Observer\TransactionObserver;
use FireflyIII\Handlers\Observer\WebhookMessageObserver;
use FireflyIII\Handlers\Observer\WebhookObserver;
use FireflyIII\Models\Account;
use FireflyIII\Models\Attachment;
2024-12-20 05:20:37 +01:00
use FireflyIII\Models\AutoBudget;
use FireflyIII\Models\AvailableBudget;
use FireflyIII\Models\Bill;
use FireflyIII\Models\Budget;
2024-12-20 05:31:16 +01:00
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Models\Category;
2015-02-25 19:32:33 +01:00
use FireflyIII\Models\PiggyBank;
2024-12-20 05:31:16 +01:00
use FireflyIII\Models\PiggyBankEvent;
use FireflyIII\Models\Recurrence;
use FireflyIII\Models\RecurrenceTransaction;
use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Models\Tag;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\Webhook;
use FireflyIII\Models\WebhookMessage;
2017-12-05 20:50:04 +01:00
use Illuminate\Auth\Events\Login;
2015-02-06 04:39:52 +01:00
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
2018-05-26 13:55:11 +02:00
use Laravel\Passport\Events\AccessTokenCreated;
2015-04-07 18:26:14 +02:00
/**
2017-11-15 12:25:49 +01:00
* Class EventServiceProvider.
2023-12-22 20:12:38 +01:00
*
2025-01-03 18:16:27 +01:00
* @SuppressWarnings("PHPMD.CouplingBetweenObjects")
*/
2015-02-11 07:35:10 +01:00
class EventServiceProvider extends ServiceProvider
{
protected $listen
= [
// is a User related event.
2024-12-22 08:43:12 +01:00
RegisteredUser::class => [
2017-11-15 12:25:49 +01:00
'FireflyIII\Handlers\Events\UserEventHandler@sendRegistrationMail',
2022-09-24 08:23:07 +02:00
'FireflyIII\Handlers\Events\UserEventHandler@sendAdminRegistrationNotification',
2017-11-15 12:25:49 +01:00
'FireflyIII\Handlers\Events\UserEventHandler@attachUserRole',
2021-08-28 15:47:33 +02:00
'FireflyIII\Handlers\Events\UserEventHandler@createGroupMembership',
'FireflyIII\Handlers\Events\UserEventHandler@createExchangeRates',
2017-11-15 12:25:49 +01:00
],
2024-12-22 08:43:12 +01:00
UserAttemptedLogin::class => [
2024-12-14 07:13:01 +01:00
'FireflyIII\Handlers\Events\UserEventHandler@sendLoginAttemptNotification',
],
2017-12-05 20:50:04 +01:00
// is a User related event.
2024-12-22 08:43:12 +01:00
Login::class => [
2017-12-05 20:50:04 +01:00
'FireflyIII\Handlers\Events\UserEventHandler@checkSingleUserIsAdmin',
'FireflyIII\Handlers\Events\UserEventHandler@demoUserBackToEnglish',
2021-10-13 05:57:11 +02:00
],
2024-12-22 08:43:12 +01:00
ActuallyLoggedIn::class => [
2020-08-28 21:58:03 +02:00
'FireflyIII\Handlers\Events\UserEventHandler@storeUserIPAddress',
],
2024-12-22 08:43:12 +01:00
DetectedNewIPAddress::class => [
2020-08-28 21:58:03 +02:00
'FireflyIII\Handlers\Events\UserEventHandler@notifyNewIPAddress',
2017-12-28 19:03:15 +01:00
],
2024-12-22 08:43:12 +01:00
RequestedVersionCheckStatus::class => [
2017-12-28 11:38:40 +01:00
'FireflyIII\Handlers\Events\VersionCheckEventHandler@checkForUpdates',
2017-12-05 20:50:04 +01:00
],
2024-12-22 08:43:12 +01:00
RequestedReportOnJournals::class => [
2018-06-25 16:01:45 +02:00
'FireflyIII\Handlers\Events\AutomationHandler@reportJournals',
],
2017-12-05 20:50:04 +01:00
// is a User related event.
2024-12-22 08:43:12 +01:00
RequestedNewPassword::class => [
'FireflyIII\Handlers\Events\UserEventHandler@sendNewPassword',
2016-11-22 21:21:11 +01:00
],
2024-12-22 08:43:12 +01:00
UserTestNotificationChannel::class => [
'FireflyIII\Handlers\Events\UserEventHandler@sendTestNotification',
],
// is a User related event.
2024-12-22 08:43:12 +01:00
UserChangedEmail::class => [
'FireflyIII\Handlers\Events\UserEventHandler@sendEmailChangeConfirmMail',
'FireflyIII\Handlers\Events\UserEventHandler@sendEmailChangeUndoMail',
],
2017-09-27 15:45:55 +02:00
// admin related
2024-12-22 08:43:12 +01:00
OwnerTestNotificationChannel::class => [
2024-12-08 16:28:22 +01:00
'FireflyIII\Handlers\Events\AdminEventHandler@sendTestNotification',
2017-09-27 15:45:55 +02:00
],
2024-12-22 08:43:12 +01:00
NewVersionAvailable::class => [
2022-09-24 11:41:07 +02:00
'FireflyIII\Handlers\Events\AdminEventHandler@sendNewVersion',
],
2024-12-22 08:43:12 +01:00
InvitationCreated::class => [
2022-10-01 12:21:42 +02:00
'FireflyIII\Handlers\Events\AdminEventHandler@sendInvitationNotification',
2022-10-01 19:06:55 +02:00
'FireflyIII\Handlers\Events\UserEventHandler@sendRegistrationInvite',
2022-10-01 12:21:42 +02:00
],
2024-12-22 08:43:12 +01:00
UnknownUserAttemptedLogin::class => [
2024-12-12 07:09:17 +01:00
'FireflyIII\Handlers\Events\AdminEventHandler@sendLoginAttemptNotification',
],
2022-10-01 12:21:42 +02:00
// is a Transaction Journal related event.
2024-12-22 08:43:12 +01:00
StoredTransactionGroup::class => [
2019-03-30 11:03:39 +01:00
'FireflyIII\Handlers\Events\StoredGroupEventHandler@processRules',
'FireflyIII\Handlers\Events\StoredGroupEventHandler@recalculateCredit',
'FireflyIII\Handlers\Events\StoredGroupEventHandler@triggerWebhooks',
2017-11-15 12:25:49 +01:00
],
// is a Transaction Journal related event.
2024-12-22 08:43:12 +01:00
UpdatedTransactionGroup::class => [
'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@unifyAccounts',
2019-03-30 11:03:39 +01:00
'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@processRules',
'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@recalculateCredit',
'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@triggerWebhooks',
],
2024-12-22 08:43:12 +01:00
DestroyedTransactionGroup::class => [
'FireflyIII\Handlers\Events\DestroyedGroupEventHandler@triggerWebhooks',
2017-11-15 12:25:49 +01:00
],
2018-05-26 13:55:11 +02:00
// API related events:
2024-12-22 08:43:12 +01:00
AccessTokenCreated::class => [
2018-05-26 13:55:11 +02:00
'FireflyIII\Handlers\Events\APIEventHandler@accessTokenCreated',
],
2020-12-02 19:30:09 +01:00
// Webhook related event:
2024-12-22 08:43:12 +01:00
RequestedSendWebhookMessages::class => [
2020-12-02 19:30:09 +01:00
'FireflyIII\Handlers\Events\WebhookEventHandler@sendWebhookMessages',
],
2021-04-10 17:25:48 +02:00
// account related events:
2024-12-22 08:43:12 +01:00
StoredAccount::class => [
2021-04-10 17:25:48 +02:00
'FireflyIII\Handlers\Events\StoredAccountEventHandler@recalculateCredit',
],
2024-12-22 08:43:12 +01:00
UpdatedAccount::class => [
2021-04-10 17:25:48 +02:00
'FireflyIII\Handlers\Events\UpdatedAccountEventHandler@recalculateCredit',
],
2022-03-28 12:23:46 +02:00
// bill related events:
2024-12-22 08:43:12 +01:00
WarnUserAboutBill::class => [
2022-03-28 12:23:46 +02:00
'FireflyIII\Handlers\Events\BillEventHandler@warnAboutBill',
],
2022-10-02 05:37:38 +02:00
// audit log events:
2024-12-22 08:43:12 +01:00
TriggeredAuditLog::class => [
2022-10-02 05:37:38 +02:00
'FireflyIII\Handlers\Events\AuditEventHandler@storeAuditEvent',
],
// piggy bank related events:
2024-12-22 08:43:12 +01:00
ChangedAmount::class => [
'FireflyIII\Handlers\Events\Model\PiggyBankEventHandler@changePiggyAmount',
2022-10-02 05:37:38 +02:00
],
// budget related events: CRUD budget limit
2024-12-22 08:43:12 +01:00
Created::class => [
'FireflyIII\Handlers\Events\Model\BudgetLimitHandler@created',
],
2024-12-22 08:43:12 +01:00
Updated::class => [
'FireflyIII\Handlers\Events\Model\BudgetLimitHandler@updated',
],
2024-12-22 08:43:12 +01:00
Deleted::class => [
'FireflyIII\Handlers\Events\Model\BudgetLimitHandler@deleted',
],
// rule actions
2024-12-22 08:43:12 +01:00
RuleActionFailedOnArray::class => [
2023-08-13 15:01:12 +02:00
'FireflyIII\Handlers\Events\Model\RuleHandler@ruleActionFailedOnArray',
],
2024-12-22 08:43:12 +01:00
RuleActionFailedOnObject::class => [
2023-08-13 15:01:12 +02:00
'FireflyIII\Handlers\Events\Model\RuleHandler@ruleActionFailedOnObject',
],
// security related
2024-12-22 08:43:12 +01:00
EnabledMFA::class => [
'FireflyIII\Handlers\Events\Security\MFAHandler@sendMFAEnabledMail',
],
2024-12-22 08:43:12 +01:00
DisabledMFA::class => [
'FireflyIII\Handlers\Events\Security\MFAHandler@sendMFADisabledMail',
],
2024-12-22 08:43:12 +01:00
MFANewBackupCodes::class => [
'FireflyIII\Handlers\Events\Security\MFAHandler@sendNewMFABackupCodesMail',
],
2024-12-22 08:43:12 +01:00
MFAUsedBackupCode::class => [
'FireflyIII\Handlers\Events\Security\MFAHandler@sendUsedBackupCodeMail',
],
2024-12-22 08:43:12 +01:00
MFABackupFewLeft::class => [
'FireflyIII\Handlers\Events\Security\MFAHandler@sendBackupFewLeftMail',
],
2024-12-22 08:43:12 +01:00
MFABackupNoLeft::class => [
'FireflyIII\Handlers\Events\Security\MFAHandler@sendBackupNoLeftMail',
],
2024-12-22 08:43:12 +01:00
MFAManyFailedAttempts::class => [
'FireflyIII\Handlers\Events\Security\MFAHandler@sendMFAFailedAttemptsMail',
],
2024-12-21 07:12:11 +01:00
// preferences
2024-12-22 08:43:12 +01:00
UserGroupChangedDefaultCurrency::class => [
2024-12-21 07:12:11 +01:00
'FireflyIII\Handlers\Events\PreferencesEventHandler@resetNativeAmounts',
],
2015-02-11 07:35:10 +01:00
];
2015-02-06 04:39:52 +01:00
2015-02-11 07:35:10 +01:00
/**
2016-09-16 07:05:34 +02:00
* Register any events for your application.
2015-02-11 07:35:10 +01:00
*/
2018-07-26 06:10:17 +02:00
public function boot(): void
2015-02-11 07:35:10 +01:00
{
$this->registerObservers();
2022-09-18 16:28:04 +02:00
}
private function registerObservers(): void
2022-12-29 19:42:26 +01:00
{
Attachment::observe(new AttachmentObserver());
Account::observe(new AccountObserver());
2024-12-20 05:20:37 +01:00
AutoBudget::observe(new AutoBudgetObserver());
2024-12-20 05:31:16 +01:00
AvailableBudget::observe(new AvailableBudgetObserver());
Bill::observe(new BillObserver());
Budget::observe(new BudgetObserver());
2024-12-20 05:31:16 +01:00
BudgetLimit::observe(new BudgetLimitObserver());
Category::observe(new CategoryObserver());
2024-12-20 05:31:16 +01:00
PiggyBank::observe(new PiggyBankObserver());
PiggyBankEvent::observe(new PiggyBankEventObserver());
Recurrence::observe(new RecurrenceObserver());
RecurrenceTransaction::observe(new RecurrenceTransactionObserver());
Rule::observe(new RuleObserver());
RuleGroup::observe(new RuleGroupObserver());
Tag::observe(new TagObserver());
Transaction::observe(new TransactionObserver());
TransactionJournal::observe(new TransactionJournalObserver());
TransactionGroup::observe(new TransactionGroupObserver());
Webhook::observe(new WebhookObserver());
WebhookMessage::observe(new WebhookMessageObserver());
2022-12-29 19:42:26 +01:00
}
2015-02-06 04:39:52 +01:00
}