Auto commit for release 'develop' on 2025-02-10

This commit is contained in:
github-actions
2025-02-10 04:10:23 +01:00
parent 41ad35880d
commit 57ec9b8e36
22 changed files with 44 additions and 38 deletions

View File

@@ -125,7 +125,8 @@ class StoreController extends Controller
// filter on transaction group.
->setTransactionGroup($transactionGroup)
// all info needed for the API:
->withAPIInformation();
->withAPIInformation()
;
$selectedGroup = $collector->getGroups()->first();
if (null === $selectedGroup) {

View File

@@ -32,7 +32,6 @@ use FireflyIII\Models\AccountBalance;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface;
use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;

View File

@@ -29,10 +29,8 @@ use FireflyIII\Models\Account;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\UserGroup;
use FireflyIII\Rules\UniqueIban;
use FireflyIII\Services\Internal\Update\AccountUpdateService;
use FireflyIII\User;
use Illuminate\Database\QueryException;
/**

View File

@@ -96,7 +96,8 @@ class TransactionGroupFactory
$this->user = $user;
}
public function setUserGroup(UserGroup $userGroup): void {
public function setUserGroup(UserGroup $userGroup): void
{
$this->userGroup = $userGroup;
}
}

View File

@@ -178,6 +178,7 @@ class TransactionJournalFactory
if (true === FireflyConfig::get('utc', false)->data) {
$carbon->setTimezone('UTC');
}
try {
// validate source and destination using a new Validator.
$this->validateAccounts($row);
@@ -413,7 +414,8 @@ class TransactionJournalFactory
$this->accountRepository->setUser($this->user);
}
public function setUserGroup(UserGroup $userGroup): void {
public function setUserGroup(UserGroup $userGroup): void
{
$this->userGroup = $userGroup;
$this->currencyRepository->setUserGroup($userGroup);
$this->tagFactory->setUserGroup($userGroup);

View File

@@ -54,7 +54,6 @@ class AccountRepository implements AccountRepositoryInterface
{
use UserGroupTrait;
/**
* Moved here from account CRUD.
*/

View File

@@ -149,6 +149,7 @@ interface AccountRepositoryInterface
public function searchAccountNr(string $query, array $types, int $limit): Collection;
public function setUser(null|Authenticatable|User $user): void;
public function setUserGroup(UserGroup $userGroup): void;
public function store(array $data): Account;

View File

@@ -39,8 +39,6 @@ use FireflyIII\Services\Internal\Update\BillUpdateService;
use FireflyIII\Support\CacheProperties;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use FireflyIII\User;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Query\JoinClause;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;

View File

@@ -40,6 +40,7 @@ interface BillRepositoryInterface
public function billEndsWith(string $query, int $limit): Collection;
public function billStartsWith(string $query, int $limit): Collection;
public function setUserGroup(UserGroup $userGroup): void;
/**

View File

@@ -42,8 +42,6 @@ use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface;
use FireflyIII\Services\Internal\Destroy\BudgetDestroyService;
use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use FireflyIII\User;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\QueryException;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;

View File

@@ -40,6 +40,7 @@ interface BudgetRepositoryInterface
public function budgetEndsWith(string $query, int $limit): Collection;
public function budgetStartsWith(string $query, int $limit): Collection;
public function setUserGroup(UserGroup $userGroup): void;
/**

View File

@@ -88,6 +88,7 @@ interface CategoryRepositoryInterface
public function searchCategory(string $query, int $limit): Collection;
public function setUser(null|Authenticatable|User $user): void;
public function setUserGroup(UserGroup $userGroup): void;
/**

View File

@@ -51,7 +51,6 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
use UserGroupTrait;
public function destroyAll(): void
{
Log::channel('audit')->info('Delete all piggy banks through destroyAll');

View File

@@ -137,6 +137,7 @@ interface PiggyBankRepositoryInterface
public function setOrder(PiggyBank $piggyBank, int $newOrder): bool;
public function setUser(null|Authenticatable|User $user): void;
public function setUserGroup(UserGroup $userGroup): void;
/**

View File

@@ -44,8 +44,6 @@ use FireflyIII\Services\Internal\Destroy\TransactionGroupDestroyService;
use FireflyIII\Services\Internal\Update\GroupUpdateService;
use FireflyIII\Support\NullArrayObject;
use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait;
use FireflyIII\User;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;

View File

@@ -99,6 +99,7 @@ interface TransactionGroupRepositoryInterface
public function getTags(int $journalId): array;
public function setUser(null|Authenticatable|User $user): void;
public function setUserGroup(UserGroup $userGroup): void;
/**

View File

@@ -39,6 +39,7 @@ use Illuminate\Support\Facades\Log;
trait ValidatesUserGroupTrait
{
protected ?UserGroup $userGroup = null;
/**
* An "undocumented" filter
*
@@ -100,6 +101,7 @@ trait ValidatesUserGroupTrait
if ($user->hasRoleInGroupOrOwner($group, $role)) {
Log::debug(sprintf('validateUserGroup: User has role "%s" in group #%d, return the group.', $role->value, $groupId));
$this->userGroup = $group;
return $group;
}
Log::debug(sprintf('validateUserGroup: User does NOT have role "%s" in group #%d, continue searching.', $role->value, $groupId));

View File

@@ -48,11 +48,13 @@ trait UserGroupTrait
public function checkUserGroupAccess(UserRoleEnum $role): bool
{
$result = $this->user->hasRoleInGroupOrOwner($this->userGroup, $role);
if($result) {
if ($result) {
Log::debug(sprintf('User #%d has role %s in group #%d or is owner/full.', $this->user->id, $role->value, $this->userGroup->id));
return true;
}
Log::warning(sprintf('User #%d DOES NOT have role %s in group #%d.', $this->user->id, $role->value, $this->userGroup->id));
return false;
}
@@ -62,7 +64,7 @@ trait UserGroupTrait
public function setUserGroup(UserGroup $userGroup): void
{
if (null === $this->user) {
Log::warning(sprintf('User is not set in repository %s', get_class($this)));
Log::warning(sprintf('User is not set in repository %s', static::class));
}
$this->userGroup = $userGroup;
}
@@ -70,7 +72,7 @@ trait UserGroupTrait
/**
* @throws FireflyException
*/
public function setUser(null | Authenticatable | User $user): void
public function setUser(null|Authenticatable|User $user): void
{
if ($user instanceof User) {
$this->user = $user;
@@ -78,8 +80,10 @@ trait UserGroupTrait
throw new FireflyException(sprintf('User #%d has no user group.', $user->id));
}
$this->userGroup = $user->userGroup;
return;
}
throw new FireflyException(sprintf('Object is of class %s, not User.', get_class($user)));
}
@@ -90,7 +94,8 @@ trait UserGroupTrait
{
$memberships = GroupMembership::where('user_id', $this->user->id)
->where('user_group_id', $userGroupId)
->count();
->count()
;
if (0 === $memberships) {
throw new FireflyException(sprintf('User #%d has no access to administration #%d', $this->user->id, $userGroupId));
}

View File

@@ -81,7 +81,7 @@ return [
'running_balance_column' => env('USE_RUNNING_BALANCE', false),
// see cer.php for exchange rates feature flag.
],
'version' => 'develop/2025-02-09',
'version' => 'develop/2025-02-10',
'api_version' => '2.1.0', // field is no longer used.
'db_version' => 25,

View File

@@ -18,8 +18,8 @@
"is_reconciled": "Est rapproch\u00e9",
"split": "S\u00e9paration",
"single_split": "S\u00e9paration unique",
"not_enough_currencies": "Not enough currencies",
"not_enough_currencies_enabled": "If you have just one currency enabled, there is no need to add exchange rates.",
"not_enough_currencies": "Pas assez de devises",
"not_enough_currencies_enabled": "Si vous n'avez qu'une seule devise activ\u00e9e, il n'y a pas besoin d'ajouter des taux de change.",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">L'op\u00e9ration n\u00b0{ID} (\"{title}\")<\/a> a \u00e9t\u00e9 enregistr\u00e9e.",
"webhook_stored_link": "<a href=\"webhooks\/show\/{ID}\">Le Webhook #{ID} (\"{title}\")<\/a> a \u00e9t\u00e9 enregistr\u00e9.",
"webhook_updated_link": "<a href=\"webhooks\/show\/{ID}\">Le webhook #{ID}<\/a> (\"{title}\") a \u00e9t\u00e9 mis \u00e0 jour.",