diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php
index 5d7f731206..79701fe3f7 100644
--- a/app/Http/Controllers/Auth/RegisterController.php
+++ b/app/Http/Controllers/Auth/RegisterController.php
@@ -36,6 +36,7 @@ use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
+use Illuminate\Support\Facades\Log;
use Illuminate\Validation\ValidationException;
use Illuminate\View\View;
use Psr\Container\ContainerExceptionInterface;
@@ -94,7 +95,7 @@ class RegisterController extends Controller
$this->validator($request->all())->validate();
$user = $this->createUser($request->all());
- app('log')->info(sprintf('Registered new user %s', $user->email));
+ Log::info(sprintf('Registered new user %s', $user->email));
$owner = new OwnerNotifiable();
event(new RegisteredUser($owner, $user));
diff --git a/app/Support/Navigation.php b/app/Support/Navigation.php
index e3edfa9b7f..d88b01ba38 100644
--- a/app/Support/Navigation.php
+++ b/app/Support/Navigation.php
@@ -464,7 +464,7 @@ class Navigation
$displayFormat = (string) trans('config.month_and_day_js', [], $locale);
$diff = $start->diffInMonths($end, true);
// increment by month (for year)
- if ($diff >= 1.0001) {
+ if ($diff >= 1.0001 && $diff < 12.001) {
$increment = 'addMonth';
$displayFormat = (string) trans('config.month_js');
}
@@ -495,7 +495,7 @@ class Navigation
$format = 'Y-m-d';
$diff = $start->diffInMonths($end, true);
// Log::debug(sprintf('preferredCarbonFormat(%s, %s) = %f', $start->format('Y-m-d'), $end->format('Y-m-d'), $diff));
- if ($diff >= 1.001) {
+ if ($diff >= 1.001 && $diff < 12.001) {
// Log::debug(sprintf('Return Y-m because %s', $diff));
$format = 'Y-m';
}
@@ -566,7 +566,7 @@ class Navigation
{
$locale = app('steam')->getLocale();
$diff = $start->diffInMonths($end, true);
- if ($diff >= 1.001) {
+ if ($diff >= 1.001 && $diff < 12.001) {
return (string) trans('config.month_js', [], $locale);
}
@@ -584,7 +584,7 @@ class Navigation
public function preferredEndOfPeriod(Carbon $start, Carbon $end): string
{
$diff = $start->diffInMonths($end, true);
- if ($diff >= 1.001) {
+ if ($diff >= 1.001 && $diff < 12.001) {
return 'endOfMonth';
}
@@ -602,7 +602,7 @@ class Navigation
public function preferredRangeFormat(Carbon $start, Carbon $end): string
{
$diff = $start->diffInMonths($end, true);
- if ($diff >= 1.001) {
+ if ($diff >= 1.001 && $diff < 12.001) {
return '1M';
}
@@ -620,7 +620,7 @@ class Navigation
public function preferredSqlFormat(Carbon $start, Carbon $end): string
{
$diff = $start->diffInMonths($end, true);
- if ($diff >= 1.001) {
+ if ($diff >= 1.001 && $diff < 12.001) {
return '%Y-%m';
}
diff --git a/app/Support/Repositories/UserGroup/UserGroupTrait.php b/app/Support/Repositories/UserGroup/UserGroupTrait.php
index 52f78553fa..5e5eb6c59f 100644
--- a/app/Support/Repositories/UserGroup/UserGroupTrait.php
+++ b/app/Support/Repositories/UserGroup/UserGroupTrait.php
@@ -66,7 +66,7 @@ trait UserGroupTrait
if ($user instanceof User) {
$this->user = $user;
if (null === $user->userGroup) {
- throw new FireflyException(sprintf('User #%d has no user group.', $user->id));
+ throw new FireflyException(sprintf('User #%d ("%s") has no user group.', $user->id, $user->email));
}
$this->userGroup = $user->userGroup;
diff --git a/app/User.php b/app/User.php
index 3ebadaf347..03976c22c3 100644
--- a/app/User.php
+++ b/app/User.php
@@ -74,7 +74,7 @@ class User extends Authenticatable
use HasApiTokens;
use Notifiable;
use ReturnsIntegerIdTrait;
- protected $fillable = ['email', 'password', 'blocked', 'blocked_code'];
+ protected $fillable = ['email', 'password', 'blocked', 'blocked_code','user_group_id'];
protected $hidden = ['password', 'remember_token'];
protected $table = 'users';
diff --git a/phpunit.xml b/phpunit.xml
index 7c96bdee3e..d6b3e3e27d 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -31,12 +31,15 @@
failOnRisky="true"
failOnWarning="true"
processIsolation="false"
+ stopOnError="true"
stopOnFailure="true">
+
+
+
-
diff --git a/tests/integration/Api/Autocomplete/BillControllerTest.php b/tests/integration/Api/Autocomplete/BillControllerTest.php
index 7dc6b950b7..c464022132 100644
--- a/tests/integration/Api/Autocomplete/BillControllerTest.php
+++ b/tests/integration/Api/Autocomplete/BillControllerTest.php
@@ -45,20 +45,6 @@ final class BillControllerTest extends TestCase
*/
use RefreshDatabase;
- #[Override]
- protected function createAuthenticatedUser(): User
- {
- $userGroup = UserGroup::create(['title' => 'Test Group']);
-
- $user = User::create([
- 'email' => 'test@email.com',
- 'password' => 'password',
- ]);
- $user->user_group_id = $userGroup->id;
- $user->save();
-
- return $user;
- }
private function createTestBills(int $count, User $user): void
{
@@ -96,7 +82,6 @@ final class BillControllerTest extends TestCase
$response = $this->get(route('api.v1.autocomplete.bills'), ['Accept' => 'application/json']);
$response->assertStatus(200);
$response->assertHeader('Content-Type', 'application/json');
-
}
public function testGivenAuthenticatedRequestWhenCallingTheBillsEndpointThenReturnsBills(): void
diff --git a/tests/integration/Api/Autocomplete/BudgetControllerTest.php b/tests/integration/Api/Autocomplete/BudgetControllerTest.php
index e137f5d262..f4ccac21f8 100644
--- a/tests/integration/Api/Autocomplete/BudgetControllerTest.php
+++ b/tests/integration/Api/Autocomplete/BudgetControllerTest.php
@@ -45,21 +45,6 @@ final class BudgetControllerTest extends TestCase
*/
use RefreshDatabase;
- #[Override]
- protected function createAuthenticatedUser(): User
- {
- $userGroup = UserGroup::create(['title' => 'Test Group']);
-
- $user = User::create([
- 'email' => 'test@email.com',
- 'password' => 'password',
- ]);
- $user->user_group_id = $userGroup->id;
- $user->save();
-
- return $user;
- }
-
private function createTestBudgets(int $count, User $user): void
{
for ($i = 1; $i <= $count; ++$i) {
diff --git a/tests/integration/Api/Autocomplete/CategoryControllerTest.php b/tests/integration/Api/Autocomplete/CategoryControllerTest.php
index 9456cf4001..2fd62f9412 100644
--- a/tests/integration/Api/Autocomplete/CategoryControllerTest.php
+++ b/tests/integration/Api/Autocomplete/CategoryControllerTest.php
@@ -25,7 +25,9 @@ declare(strict_types=1);
namespace Tests\integration\Api\Autocomplete;
use FireflyIII\Models\Category;
+use FireflyIII\Models\UserRole;
use Illuminate\Foundation\Testing\RefreshDatabase;
+use Illuminate\Support\Facades\DB;
use Tests\integration\TestCase;
use FireflyIII\User;
use FireflyIII\Models\UserGroup;
@@ -45,20 +47,7 @@ final class CategoryControllerTest extends TestCase
*/
use RefreshDatabase;
- #[Override]
- protected function createAuthenticatedUser(): User
- {
- $userGroup = UserGroup::create(['title' => 'Test Group']);
- $user = User::create([
- 'email' => 'test@email.com',
- 'password' => 'password',
- ]);
- $user->user_group_id = $userGroup->id;
- $user->save();
-
- return $user;
- }
private function createTestCategories(int $count, User $user): void
{
diff --git a/tests/integration/Api/Autocomplete/CurrencyControllerTest.php b/tests/integration/Api/Autocomplete/CurrencyControllerTest.php
index efdd02a866..73fc6952f9 100644
--- a/tests/integration/Api/Autocomplete/CurrencyControllerTest.php
+++ b/tests/integration/Api/Autocomplete/CurrencyControllerTest.php
@@ -45,21 +45,6 @@ final class CurrencyControllerTest extends TestCase
*/
use RefreshDatabase;
- #[Override]
- protected function createAuthenticatedUser(): User
- {
- $userGroup = UserGroup::create(['title' => 'Test Group']);
-
-
- $user = User::create([
- 'email' => 'test@email.com',
- 'password' => 'password',
- ]);
- $user->user_group_id = $userGroup->id;
- $user->save();
-
- return $user;
- }
private function createTestCurrencies(int $count, bool $enabled): void
{
diff --git a/tests/integration/Api/Autocomplete/ObjectGroupControllerTest.php b/tests/integration/Api/Autocomplete/ObjectGroupControllerTest.php
index e6a089b7ec..14f3cfbc7c 100644
--- a/tests/integration/Api/Autocomplete/ObjectGroupControllerTest.php
+++ b/tests/integration/Api/Autocomplete/ObjectGroupControllerTest.php
@@ -45,22 +45,6 @@ final class ObjectGroupControllerTest extends TestCase
*/
use RefreshDatabase;
- #[Override]
- protected function createAuthenticatedUser(): User
- {
- $userGroup = UserGroup::create(['title' => 'Test Group']);
-
-
- $user = User::create([
- 'email' => 'test@email.com',
- 'password' => 'password',
- ]);
- $user->user_group_id = $userGroup->id;
- $user->save();
-
- return $user;
- }
-
private function createTestObjectGroups(int $count, User $user): void
{
for ($i = 1; $i <= $count; ++$i) {
diff --git a/tests/integration/TestCase.php b/tests/integration/TestCase.php
index b55259c8c7..8f88b2d372 100644
--- a/tests/integration/TestCase.php
+++ b/tests/integration/TestCase.php
@@ -23,10 +23,13 @@ declare(strict_types=1);
namespace Tests\integration;
+use FireflyIII\Models\GroupMembership;
use FireflyIII\Models\UserGroup;
+use FireflyIII\Models\UserRole;
use FireflyIII\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
+use Illuminate\Support\Facades\DB;
use Tests\integration\Traits\CollectsValues;
/**
@@ -57,11 +60,26 @@ abstract class TestCase extends BaseTestCase
protected function createAuthenticatedUser(): User
{
$group = UserGroup::create(['title' => 'test@email.com']);
-
- return User::create([
+ $role = UserRole::where('title', 'owner')->first();
+ $user = User::create([
'email' => 'test@email.com',
'password' => 'password',
'user_group_id' => $group->id,
]);
+
+ GroupMembership::create(
+ [
+ 'user_id' => $user->id,
+ 'user_group_id' => $group->id,
+ 'user_role_id' => $role->id,
+ ]
+ );
+
+
+
+
+ return $user;
}
+
+
}