2350 Commits

Author SHA1 Message Date
af663cf27c
Create the helper ChillSecurity
En symfony 5.4 le typage a été vraiment amélioré, et phpstan peut détecter plus d'erreur potentielles.

Mais le problème est que Symfony "type" les `User` avec son propre `Symfony\Component\Security\Core\User\UserInterface` alors qu'on a besoin de `Chill\MainBundle\Entity\User`.

Imaginons qu'on a ceci:

```php

namespace Chill\Bundle\Service;

final readonly class SomeService
{
    public function myMethod(\Chill\MainBundle\Entity\User $user): void
    {
        // ...
    }
}
```

Quand on l'appelle dans un contrôleur ou dans un service:

```php

namespace Chill\Bundle\Service;

use Symfony\Component\Security\Core\Security;

final readonly OtherService
{
    public function __construct(private Security $security, private SomeService $service) {}

    public function __invoke(): void
    {
        $this->service->myMethod($this->security->getUser());
    }
}
```

PHPstan va se plaindre:

```
Parameter #1 $user of method SomeService::myMethod() expects Chill\MainBundle\Entity\User, Symfony\Component\Security\Core\User\UserInterface|null given.
```

Du coup, j'ai créé ce service:

```php
<?php

namespace Chill\MainBundle\Security;

use Chill\MainBundle\Entity\User;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Component\Security\Core\Security;

/**
 * Security helper for Chill user
 *
 * Provides security-related functionality such as user retrieval, authorization checks,
 * and token retrieval, in a context where only an authenticated @see{User::class} is expected.
 *
 */
final readonly class ChillSecurity implements AuthorizationCheckerInterface
{

    public function hasUser(): bool
    {
        // implementation detail not shown here
    }

    public function getUser(): User
    {
        // implementation detail not shown here
    }

    public function isGranted($attribute, $subject = null): bool
    {
        // implementation detail not shown here
    }

    public function getToken(): ?TokenInterface
    {
        // implementation detail not shown here
    }
}
```

Et maintenant, on peut faire:

```php

namespace Chill\Bundle\Service;

use Chill\MainBundle\Security\ChillSecurity;

final readonly OtherService
{
    public function __construct(private ChillSecurity $security, private SomeService $service) {}

    public function __invoke(): void
    {
        $this->service->myMethod($this->security->getUser());
    }
}
```

Et tout va bien se passer.

Ca sera dans la version de chill qui fait passer à symfony 5.4.
2023-12-12 22:43:24 +01:00
f35f5f0876
fixup! fix typo in classname (Phonenumber => PhoneNumber) 2023-12-12 17:19:28 +01:00
e2a37fd80b
fix typo in classname (Phonenumber => PhoneNumber) 2023-12-12 17:12:01 +01:00
f68deca992
Fix icu message 2023-12-12 16:13:58 +01:00
2f8de4bf01
Upgrade recipes: symfony/security-bundle 2023-12-12 16:08:46 +01:00
c6bb7b1d98
Rector rules: apply rules for 5.0 types 2023-12-12 16:08:46 +01:00
f424c5464f
Fix issues with new version of rector 2023-12-04 16:46:48 +01:00
673518e0eb Merge branch 'master' of gitlab.com:Chill-Projet/chill-bundles 2023-11-30 12:15:47 +01:00
4700a0fef7 update URL for postal code FR import 2023-11-30 12:15:22 +01:00
fffc4a9c33
Fix error on listEvaluation
- force default calcDate
- Export / UserHelper: handle case when a single user is given, when we expect more than one user
2023-11-29 22:22:06 +01:00
be57c96a2f Add phonenumber to user 2023-11-16 15:12:12 +00:00
d8fa743bc9
Export: fix loading of form for "filter action by type, goal and result" 2023-11-16 10:57:59 +01:00
eaa40d6725
DX: remove some unnecessary console.log 2023-11-16 10:57:32 +01:00
e9df26c2f7
Export: add clauses on the social work start date and end date within the filter "Filter accompanying period by accompanying period work"' 2023-11-15 13:25:08 +01:00
86e659edd4
DX: replace some string by constants 2023-11-14 21:17:09 +01:00
83fe3ec3fc
Export: add a "filter activity by creator job" filter 2023-11-07 16:06:22 +01:00
c6deb21606 replace old method of getting translator with injection of translatorInterface 2023-10-26 15:20:19 +02:00
2c50f484f0
Fix export controller when generating an export without any data in session 2023-10-24 20:46:23 +02:00
617d09ab8a Merge branch '179-remove-filter-by-center-in-exports' into 'master'
Resolve "Export: permettre de ne pas filtrer les résultats par centre"

Closes #179

See merge request Chill-Projet/chill-bundles!599
2023-10-24 13:18:03 +00:00
4375ecf49a
[export controller] skip the page "select a center" when the configuration value of filter_stats_by_center is set to false 2023-10-19 17:43:32 +02:00
a6e930958b
[export] create a parameter that will force to skip the filtering by center (ACL) when generating an export 2023-10-19 17:19:28 +02:00
5f805626f7
[export] sort filters and aggregators by title 2023-10-19 14:39:22 +02:00
981dc6a959
[export] add a filter and aggregator on accompanying periods: group by activity type (accompanying course having at least one activity from this type) 2023-10-19 10:33:56 +02:00
a4edb34668
[export] add a filter and aggregator on accompanying period work: group/filter by handling third party 2023-10-19 10:33:55 +02:00
bc2041cbdd
apply more cs rules for php-cs 2023-10-17 13:27:03 +02:00
c9cfe4c7e9
DX: mark some functions as pure 2023-10-17 10:43:12 +02:00
48e0a0af7d
DX: Increase the number of iteration to ensure that the test really pass on random executions 2023-10-17 10:27:33 +02:00
a6fcdb5256
Merge remote-tracking branch 'origin/rector/rules-symfony' into rector/rules-symfony 2023-10-16 18:07:42 +02:00
6b8d6b76ba
Upgrade code from 146 to new standards 2023-10-16 18:04:40 +02:00
0c8ecfe493 Merge branch 'rector/rules-symfony' into '147-history-user-scope-job'
# Conflicts:
#   src/Bundle/ChillMainBundle/Security/Resolver/ScopeResolverDispatcher.php
2023-10-16 16:00:40 +00:00
b32fa42afa
DX: fix test on AccompanyingCourseExportHelperTest.php 2023-10-16 17:52:25 +02:00
be8975ee04
Merge branch '146_parcours_annules' into rector/rules-symfony 2023-10-16 17:52:06 +02:00
c62495a280
Fix export of all users and mapping of columns in user csv export (admin zone) 2023-10-16 16:20:25 +02:00
51a4ffca2e
Fix cs with new cs rules (php-cs-fixer version 3.35) 2023-10-16 11:59:49 +02:00
68d28f3e28
Fix filtres and scopes to take into account job and scope when the refferrer is add to the accompanying period work 2023-10-16 11:52:03 +02:00
21524f052e
Create a custom dql function to build json object (JSON_BUILD_OBJECT) 2023-10-16 11:52:02 +02:00
978db5a5c5
update some queries in the interface to take into account history of user's scope and user's job 2023-10-16 11:52:02 +02:00
0b6b25fd95 improve histories order since User entity 2023-10-04 12:49:30 +02:00
c526973475 [admin][templates] move job/scope history in an unique template and display history for a given user 2023-10-04 12:33:50 +02:00
58e189ee07
Improve type declaration 2023-10-04 11:21:39 +02:00
9f476dddaf php cs fixer 2023-10-04 11:20:20 +02:00
dac48ea4e0 last processing of review remarks 2023-10-04 11:19:39 +02:00
af4bee4d50 correct test 2023-10-04 10:43:37 +02:00
e3559774fd
Improve the signature definition 2023-10-03 21:25:22 +02:00
d6a1044585 just mark other uses with mainScope and userJob !! 2023-10-03 19:43:18 +02:00
c5b153e6ed fix missing queries in job/scope history migration: remove mainscope_id and userjob_id from user table 2023-10-03 19:40:23 +02:00
2d4d1eda50 cs-fixer 2023-10-03 19:40:23 +02:00
baeccf0970 fix Entity/UserTest and phpstan error 2023-10-03 19:40:23 +02:00
6665a443b9 phpstan, rector, cs-fixer 2023-10-03 19:40:23 +02:00
fc919e9547 add tests for MainScope and UserJob getters/setters 2023-10-03 19:40:23 +02:00