2017-09-28 11 views
0

Comment désactiver l'enregistrement dans FosUserBundle de manière sélective? Je veux savoir comment puis-je désactiver et activer l'enregistrement dans FosUserbundle. Je cherchais des informations et j'ai trouvé ce post: https://codereviewvideos.com/course/getting-started-with-fosuserbundle/video/how-to-disable-registation-in-fosuserbundleComment désactiver l'enregistrement dans FosUserbundle de manière sélective?

je vais extraire les informations importantes à partir de là:

It may be that you wish to enabled and disable registration selectively. 

In this instance, and for the improvement of site administrator user experience, we can use a simple parameter value to allow the site registration to be toggled between and enabled and disabled state. 

To achieve this, all we need to do is add in a new parameter in to parameters.yml: 

# app/config/parameters.yml 
parameters: 
    registration_enabled: true 

J'ai essayé cette information, mais cela n'a pas fonctionné et je ne sais pas si je J'oublie quelque chose. Je sais aussi qu'il existe d'autres solutions comme toucher le contrôleur d'enregistrement ou configurer un écouteur d'événements, mais si possible, utiliser une solution plus propre (comme le changement de paramètre ci-dessus, je préfère)

Répondre

0

Vous pouvez remplacer FosUserBundleController fonction d'enregistrement et afficher le formulaire d'inscription ou non en fonction d'une variable stockée (base de données).

More info, here

+0

Oui, j'ai commenté cela dans la question mais si c'est possible; Je préfère le faire d'une manière plus propre –

+0

La chose est où d'évaluer ce drapeau? Vous ne pouvez pas le faire dans FosUserBundle car il s'agit d'un fournisseur et doit être en lecture seule. Vous devez le faire quelque part dans votre code, vous devez donc étendre ou remplacer une partie du code FosUserBundle. Si vous ne voulez pas remplacer le contrôleur complet, vous pouvez créer un contrôleur d'enregistrement personnalisé qui affiche ou non le formulaire d'enregistrement en fonction de votre drapeau. Vous avez encore plus d'options ici https://stackoverflow.com/questions/31106271/how-to-definitely-disable-registration-in-fosuserbundle – Carlos

1

Vous pouvez désactiver l'enregistrement de ne pas y compris son itinéraire si vous importez tous les itinéraires par

fos_user: 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

importer un par un: regardez Import FOSUserBundle routing files

sans inclure

fos_user_register: 
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml" 
    prefix: /register 
+0

Je savais aussi de cette façon, mais n'est-il pas possible de configurer un drapeau pour obtenir la même chose? –

+0

@KevinGravell s'il vous plaît expliquer plus –

+0

La chose est où évaluez-vous ce drapeau? Vous ne pouvez pas le faire dans FosUserBundle car il s'agit d'un fournisseur et doit être en lecture seule. – Carlos