Add code for administrations.

This commit is contained in:
James Cole
2025-01-19 11:34:23 +01:00
parent 950c60d55c
commit 3766128cb8
26 changed files with 1095 additions and 38 deletions

View File

@@ -26,9 +26,11 @@ namespace FireflyIII\Http\Middleware;
use FireflyIII\Models\Account;
use FireflyIII\Models\Bill;
use FireflyIII\Models\GroupMembership;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\UserGroup;
use FireflyIII\Models\Webhook;
use FireflyIII\User;
use Illuminate\Http\Request;
@@ -53,6 +55,10 @@ class InterestingMessage
app('preferences')->mark();
$this->handleGroupMessage($request);
}
if ($this->userGroupMessage($request)) {
app('preferences')->mark();
$this->handleUserGroupMessage($request);
}
if ($this->accountMessage($request)) {
app('preferences')->mark();
$this->handleAccountMessage($request);
@@ -87,6 +93,14 @@ class InterestingMessage
return null !== $transactionGroupId && null !== $message;
}
private function userGroupMessage(Request $request): bool
{
// get parameters from request.
$transactionGroupId = $request->get('user_group_id');
$message = $request->get('message');
return null !== $transactionGroupId && null !== $message;
}
private function handleGroupMessage(Request $request): void
{
@@ -135,6 +149,42 @@ class InterestingMessage
return null !== $accountId && null !== $message;
}
private function handleUserGroupMessage(Request $request): void
{
// get parameters from request.
$userGroupId = $request->get('user_group_id');
$message = $request->get('message');
/** @var User $user */
$user = auth()->user();
$userGroup = UserGroup::find($userGroupId);
$valid = false;
$memberships = $user->groupMemberships()->get();
/** @var GroupMembership $membership */
foreach($memberships as $membership) {
if($membership->userGroup->id === $userGroup->id) {
$valid = true;
break;
}
}
if(false === $valid) {
return;
}
if ('deleted' === $message) {
session()->flash('success', (string) trans('firefly.flash_administration_deleted', ['title' => $userGroup->title]));
}
if ('created' === $message) {
session()->flash('success', (string) trans('firefly.flash_administration_created', ['title' => $userGroup->title]));
}
if ('updated' === $message) {
session()->flash('success', (string) trans('firefly.flash_administration_updated', ['title' => $userGroup->title]));
}
}
private function handleAccountMessage(Request $request): void
{
// get parameters from request.