mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Make sure user group is deleted as well when empty.
This commit is contained in:
parent
7dd560a2e3
commit
fbf7578fb0
@ -26,6 +26,7 @@ use Exception;
|
|||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\BudgetLimit;
|
use FireflyIII\Models\BudgetLimit;
|
||||||
use FireflyIII\Models\Role;
|
use FireflyIII\Models\Role;
|
||||||
|
use FireflyIII\Models\UserGroup;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\QueryException;
|
use Illuminate\Database\QueryException;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
@ -164,7 +165,10 @@ class UserRepository implements UserRepositoryInterface
|
|||||||
public function destroy(User $user): bool
|
public function destroy(User $user): bool
|
||||||
{
|
{
|
||||||
Log::debug(sprintf('Calling delete() on user %d', $user->id));
|
Log::debug(sprintf('Calling delete() on user %d', $user->id));
|
||||||
|
|
||||||
|
$user->groupMemberships()->delete();
|
||||||
$user->delete();
|
$user->delete();
|
||||||
|
$this->deleteEmptyGroups();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -396,4 +400,20 @@ class UserRepository implements UserRepositoryInterface
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public function deleteEmptyGroups(): void
|
||||||
|
{
|
||||||
|
$groups = UserGroup::get();
|
||||||
|
/** @var UserGroup $group */
|
||||||
|
foreach ($groups as $group) {
|
||||||
|
$count = $group->groupMemberships()->count();
|
||||||
|
if (0 === $count) {
|
||||||
|
Log::info(sprintf('Deleted empty group #%d ("%s")', $group->id, $group->title));
|
||||||
|
$group->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,11 @@ interface UserRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function all(): Collection;
|
public function all(): Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function deleteEmptyGroups(): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gives a user a role.
|
* Gives a user a role.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user