Release 2.6.0 (#4472)

- Added: calendar entry title combination for customer, project and activity
- Added: show not_invoiced and not_exported data in detail screens
- Added: force logout if user is disabled
- Added: reduced amount of database queries on several screens
- Fixed: open-close status on work-contract screen for users without configuration
- Fixed: failsafe order/orderBy in query if manually manipulated to be null
- Fixed: unify statistic calculation (not_invoiced and not_exported) across screens
- Tech: bump packages
- Tech: Symfony 6.4
This commit is contained in:
Kevin Papst
2023-12-17 16:19:50 +01:00
committed by GitHub
parent af82fd040d
commit 5f4b6d3cfa
77 changed files with 1362 additions and 1242 deletions

View File

@@ -20,13 +20,14 @@ use Symfony\Component\Security\Core\User\UserProviderInterface;
/**
* @template-implements PasswordUpgraderInterface<User>
* @template-implements UserProviderInterface<User>
*/
final class KimaiUserProvider implements UserProviderInterface, PasswordUpgraderInterface
{
private ?ChainUserProvider $provider = null;
/**
* @param iterable|UserProviderInterface[] $providers
* @param iterable<UserProviderInterface<User>> $providers
*/
public function __construct(private iterable $providers, private SystemConfiguration $configuration)
{
@@ -60,12 +61,12 @@ final class KimaiUserProvider implements UserProviderInterface, PasswordUpgrader
public function loadUserByIdentifier(string $identifier): UserInterface
{
return $this->getInternalProvider()->loadUserByIdentifier($identifier);
return $this->getInternalProvider()->loadUserByIdentifier($identifier); // @phpstan-ignore-line
}
public function refreshUser(UserInterface $user): UserInterface
{
return $this->getInternalProvider()->refreshUser($user);
return $this->getInternalProvider()->refreshUser($user); // @phpstan-ignore-line
}
public function supportsClass(string $class): bool