createGroupMemberships(); return 0; } /** * @throws FireflyException */ private function createGroupMemberships(): void { $users = User::get(); /** @var User $user */ foreach ($users as $user) { self::createGroupMembership($user); } } /** * TODO move to helper. * * @throws FireflyException */ public static function createGroupMembership(User $user): void { // check if membership exists $userGroup = UserGroup::where('title', $user->email)->first(); if (null === $userGroup) { $userGroup = UserGroup::create(['title' => $user->email]); } $userRole = UserRole::where('title', UserRoleEnum::OWNER->value)->first(); if (null === $userRole) { throw new FireflyException('Firefly III could not find a user role. Please make sure all migrations have run.'); } $membership = GroupMembership::where('user_id', $user->id) ->where('user_group_id', $userGroup->id) ->where('user_role_id', $userRole->id)->first() ; if (null === $membership) { GroupMembership::create( [ 'user_id' => $user->id, 'user_role_id' => $userRole->id, 'user_group_id' => $userGroup->id, ] ); } if (null === $user->user_group_id) { $user->user_group_id = $userGroup->id; $user->save(); } } }