BCard - Documentation technique

SubscriberController extends AbstractController
in package

Consulte les abonnés de la plateforme depuis le back-office, segmentés par offre.

Fournit deux listings filtrables (offre Free et offre Pro) construits à partir de UserRepository::createSubscriberListFilterQueryBuilder(), ainsi qu'une fiche de détail par abonné. Les filtres exposés couvrent la recherche libre, le statut du compte, le pays, l'activité, le statut d'abonnement et le cycle de facturation.

Préfixe de route : /admin/subscriber. Authentification complète requise au niveau de la classe ; chaque action exige en plus l'un des rôles ROLE_ADMIN, ROLE_MANAGER, ROLE_OPERATOR ou ROLE_SUPPORT.

Attributes
#[IsGranted]
'IS_AUTHENTICATED_FULLY'
#[Route]
'/admin/subscriber'

Table of Contents

Properties

$entityManager  : EntityManagerInterface
$paginator  : PaginatorInterface
$userRepository  : UserRepository

Methods

__construct()  : mixed
freeSubscribers()  : Response
Liste les abonnés de l'offre gratuite (« Free »).
proSubscribers()  : Response
Liste les abonnés de l'offre « Pro ».
view()  : Response
Affiche la fiche détaillée d'un abonné et répare au passage les hash publics de ses cartes.
buildCountriesList()  : array<string, string>
Construit la liste des pays destinée aux filtres, avec les pays prioritaires en tête.

Properties

Methods

__construct()

public __construct(UserRepository $userRepository, PaginatorInterface $paginator, EntityManagerInterface $entityManager) : mixed
Parameters
$userRepository : UserRepository

Dépôt des utilisateurs, fournit le query builder de filtrage des abonnés.

$paginator : PaginatorInterface

Service de pagination KnpPaginator.

$entityManager : EntityManagerInterface

Gestionnaire d'entités, utilisé pour flusher les hash publics recalculés.

freeSubscribers()

Liste les abonnés de l'offre gratuite (« Free »).

public freeSubscribers(Request $request) : Response

L'accès est refusé si l'utilisateur ne possède aucun des rôles ROLE_ADMIN, ROLE_MANAGER, ROLE_OPERATOR ou ROLE_SUPPORT. Les filtres proviennent de la query string (q, account_status, country, activity) ; trois contraintes sont imposées en dur : statut d'abonnement ACTIVE, particuliers uniquement (only_individuals) et prise en compte du dernier abonnement seulement (latest_subscription_only). Résultats paginés par 10.

Route : /admin/subscriber/free-subscriber (GET), nom app_free_subscriber. Requiert ROLE_ADMIN, ROLE_MANAGER, ROLE_OPERATOR ou ROLE_SUPPORT.

Parameters
$request : Request

Requête HTTP courante portant les filtres et le numéro de page.

Attributes
#[Route]
'/free-subscriber'
$name: 'app_free_subscriber'
$methods: ['GET']
Return values
Response

Rendu du template admin/subscriber/freeSubscribers.html.twig avec les utilisateurs paginés et la liste des pays issue de SubscriberController::buildCountriesList().

proSubscribers()

Liste les abonnés de l'offre « Pro ».

public proSubscribers(Request $request) : Response

Même contrôle de rôles que SubscriberController::freeSubscribers(). À la différence du listing Free, le statut d'abonnement est ici pilotable par la query string (subscription_status, valeur par défaut ACTIVE), le cycle de facturation (billing_cycle) est exposé comme filtre supplémentaire, et aucune restriction « particuliers uniquement » n'est appliquée. Résultats paginés par 10.

Route : /admin/subscriber/pro-subscriber (GET), nom app_pro_subscriber. Requiert ROLE_ADMIN, ROLE_MANAGER, ROLE_OPERATOR ou ROLE_SUPPORT.

Parameters
$request : Request

Requête HTTP courante portant les filtres et le numéro de page.

Attributes
#[Route]
'/pro-subscriber'
$name: 'app_pro_subscriber'
$methods: ['GET']
Return values
Response

Rendu du template admin/subscriber/proSubscribers.html.twig avec les utilisateurs paginés et la liste des pays.

view()

Affiche la fiche détaillée d'un abonné et répare au passage les hash publics de ses cartes.

public view(User $user) : Response

Après le contrôle de rôles, parcourt toutes les cartes BusinessCardAize de l'utilisateur et régénère le publicHash de celles qui n'en ont pas ou dont la valeur ne correspond pas au format attendu (64 caractères hexadécimaux). Le hash est calculé par hash_hmac('sha256', id, APP_SECRET) ; les cartes sans identifiant ou le cas où APP_SECRET est vide sont ignorés. Un unique flush n'est déclenché que si au moins une carte a été modifiée — effet de bord en écriture sur une route GET.

Route : /admin/subscriber/{id} (GET), nom app_admin_subscriber_view. Requiert ROLE_ADMIN, ROLE_MANAGER, ROLE_OPERATOR ou ROLE_SUPPORT.

Parameters
$user : User

Abonné résolu automatiquement depuis l'identifiant de l'URL.

Attributes
#[Route]
'/{id}'
$name: 'app_admin_subscriber_view'
$methods: ['GET']
Return values
Response

Rendu du template admin/subscriber/view.html.twig.

buildCountriesList()

Construit la liste des pays destinée aux filtres, avec les pays prioritaires en tête.

private buildCountriesList() : array<string, string>

Part des noms de pays fournis par Symfony\Component\Intl\Countries, place en premier les codes GN, BE, FR et CA (dans cet ordre de déclaration), puis ajoute les autres pays triés alphabétiquement selon la locale (SORT_LOCALE_STRING).

Return values
array<string, string>

Tableau associatif code ISO du pays => nom du pays.


        
On this page

Search results