mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-12 23:45:10 +00:00
Add code for administrations.
This commit is contained in:
@@ -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.
|
||||
|
Reference in New Issue
Block a user