长话短说:我为我的公司设置private Packagist site,我需要禁用用户注册[用户由Chef创建],同时仍允许Github OAuth连接。
我通过在routing.yml
中向路线添加以下不满足条件来禁用常规注册页面:
fos_user_register:
resource: '@FOSUserBundle/Resources/config/routing/registration.xml'
prefix: /register
condition: "1 == 0"
但是,我发现如果您在没有先连接现有帐户的情况下尝试使用Github登录,则/connect/registration
下的第二个注册表单将由路由管理:
hwi_oauth_connect:
resource: '@HWIOAuthBundle/Resources/config/routing/connect.xml'
prefix: /connect
<{1>}中的和:
routing.yml
哪个位于<route id="hwi_oauth_connect_registration" path="/registration/{key}">
<default key="_controller">HWIOAuthBundle:Connect:registration</default>
</route>
。
如何在不修改供应商文件夹中的vendor/hwi/oauth-bundle/Resources/config/routing/connect.xml
的情况下仅禁用/connect/registration
?
答案 0 :(得分:3)
复制文件'@HWIOAuthBundle/Resources/config/routing/connect.xml'
的内容并将其粘贴到新的app/config/routing_hwi_connect.xml
。
通过在新创建的文件中设置自定义检查来禁用路由:
<route id="hwi_oauth_connect_registration" path="/registration/{key}">
<default key="_controller">HWIOAuthBundle:Connect:registration</default>
<condition>1 == 0</condition>
</route>
在routing.yml
中,将hwi_oauth_connect
更改为:
hwi_oauth_connect:
resource: "routing_hwi_connect.xml"
prefix: /connect
当有人试图访问时,它应返回404
。
此外,肯定有更好的方法允许/限制路线,可能是通过创建预注册方法,然后查看SecurityBundle configuration,您可以轻松地做好事。