[英]Sonata admin: user_block is not displayed
我正在使用 SonataAdmin,但我看不到模板中顯示的用戶塊(在右上角),盡管我已將其替換為我的自定義模板,如此處的配置中所述https://sonata-project.org/bundles /admin/3-x/doc/reference/templates.html
我正在使用 SonataUserBundle,這是我的配置:
sonata_admin:
templates:
user_block: ApplicationSonataUserBundle:Default:user_block.html.twig
這些是我正在使用的版本:
"require": {
"php": ">=5.5.9",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"incenteev/composer-parameter-handler": "^2.0",
"sensio/distribution-bundle": "^5.0.19",
"sensio/framework-extra-bundle": "^5.0.0",
"sonata-project/admin-bundle": "^3.43",
"sonata-project/doctrine-orm-admin-bundle": "^3.7",
"sonata-project/user-bundle": "4.0.0",
"symfony/monolog-bundle": "^3.1.0",
"symfony/polyfill-apcu": "^1.0",
"symfony/swiftmailer-bundle": "^2.6.4",
"symfony/symfony": "3.4.*",
"twig/twig": "^1.0||^2.0"
},
我沒有收到錯誤但是右上角的用戶圖標沒有顯示!
我在這里錯過了什么?
好的,所以我發現奏鳴曲正在測試用戶是否具有role_admin
來顯示這里提到的user_block
https://github.com/sonata-project/SonataAdminBundle/blob/3.x/src/Resources/views/standard_layout.html。樹枝#L194
尋找這個條件:
{% if app.user and is_granted(sonata_admin.adminPool.getOption('role_admin')) %}
由於所有用戶都有角色ROLE_USER
我只需要在config.yml文件中將此信息提供給奏鳴曲,因此它將向所有連接的用戶顯示user_block
,如下所示:
sonata_admin:
security:
role_admin: ROLE_USER
sonata_admin:
security:
role_admin: foobar_token
class UserBlockVoter extends Voter
{
protected function supports($attribute, $subject)
{
return 'foobar_token' == $attribute;
}
protected function voteOnAttribute($attribute, $subject, TokenInterface $token)
{
return true;
}
}
如果不是更改角色 - 為自定義命名的“role_admin”屬性創建投票者,因為顯示/隱藏的決定基於安全檢查器。
此外,您可以使用比“ROLE_ADMIN”更復雜的規則檢查選民中的“用戶”實例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.