2012-06-08 60 views
0

我最近做了一个供应商/安装,现在我的奏鸣曲管理与以下错误折断Symfony2的索纳塔管理员错误

项目“角色”的“”在SonataAdminBundle在不存在:: standard_layout.html.twig线92

这里是树枝代码:

{% if app.security %} 
    {% for role in app.security.token.roles %} 
    {% if not allowed %} 
     {% set allowed = role.role == 'ROLE_SONATA_ADMIN' %} 
    {% endif %} 
    {% endfor %} 
{% endif %} 

任何人有什么想法?

谢谢!

+0

只是一个想法,但你有清除缓存后供应商/安装? 'php app/console cache:clear' – SebScoFr

+0

是的,我清除了缓存 –

回答

1

我通过管理束搜索与责备选项,它来自一个提交7天前

所以,你所要做的就是去deps.lock

找到adminBundle提交哈希什么(在我的情况下,它开始与4A ....) 与25b401e6271ee0fd896d700d0328b06994e4e138更换哈希这是提交之前提交原因问题

我想它和仪表工作正常

好运

编辑

要小心,不要使用PHP斌/供应商更新,因为这将更新提交哈希

使用PHP斌/供应商安装

+0

我没有在deps.lock文件中看到我的列表中的adminBundle –

+0

那么我的坏的adminBundle是我给它的名字,所以你应该搜索你在哪里定义了sonata管理软件包的repo地址 –

0

我有同样的问题。我的错误是从其他行:

Item "roles" for "" does not exist in SonataAdminBundle::standard_layout.html.twig at line 11 

我的安全文件看起来像:

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

    providers: 
     in_memory: 
      users: 
       user: { password: userpass, roles: [ 'ROLE_USER' ] } 
       admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 

    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 

     login: 
      pattern: ^/demo/secured/login$ 
      security: false 

     secured_area: 
      pattern: ^/demo/secured/ 
      form_login: 
       check_path: /demo/secured/login_check 
       login_path: /demo/secured/login 
      logout: 
       path: /demo/secured/logout 
       target: /demo/ 
      #anonymous: ~ 
      #http_basic: 
      # realm: "Secured Demo Area" 

    access_control: 
     #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } 
     #- { path: ^/_internal, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 } 

和配置文件的一部分:

services: 
    admin.article: 
     class: Acme\GaudeamusBundle\Admin\ArticleAdmin 
     tags: 
      - { name: sonata.admin, manager_type: orm, group: Articles, label: Articles } 
     arguments: [null, Acme\GaudeamusBundle\Entity\Article, SonataAdminBundle:CRUD] 

    admin.menu: 
     class: Acme\GaudeamusBundle\Admin\MenuAdmin 
     tags: 
      - { name: sonata.admin, manager_type: orm, group: Menu, label: Menu } 
     arguments: [null, Acme\GaudeamusBundle\Entity\Menu, SonataAdminBundle:CRUD] 

# app/config/config.yml 
sonata_block: 
    default_contexts: [cms] 
    blocks: 
     sonata.admin.block.admin_list: 
      contexts: [admin] 

     #sonata.admin_doctrine_orm.block.audit: 
     # contexts: [admin] 

     sonata.block.service.text: 
     sonata.block.service.action: 
     sonata.block.service.rss: 

缓存清楚没有帮助:-(

+0

我没有更改任何代码,除了更新供应商包。它在更新之前正在工作。我想知道是否有新的配置/安装要求与他们的更新代码 –

+1

对我来说,它是完全一样的。我在github上看到了你的帖子。我希望有人可以快速帮助我们 – Debian

+0

我temprary在standard_layout.html.twig注释掉了一行,但我有其他错误:无法加载类型“过滤器” 也许有人知道如何降级到以前的版本? – Debian

0

这里是修复:https://github.com/Wiakowe/SonataAdminBundle/commit/e139527c05b22176ee3efab987ebe752668d4489

删除线90- 99和替换为以下:

{% if app.security and is_granted('ROLE_SONATA_ADMIN') %} 
+0

我试过这个,现在我收到以下错误:在呈现模板期间(“安全上下文不包含身份验证令牌,其中一个可能的原因可能是没有为此URL配置防火墙”)引发异常。“)SonataAdminBundle :: standard_layout第90行.html.twig。 –

0

我有同样的问题与SonataAdminBundle的最后一个版本。如果您允许所有人打开管理面板,则会出现此问题。至少对于工作场所来说,这不是至少可以解决的问题。

授予访问您的管理面板为每个人做以下事情。将路径/admin置于防火墙下,将其添加到文件security.yml的安全部分中。firewals

admin_area: 
     pattern: ^/admin 
     anonymous: ~ 

因此,每一个客户端将被授权为匿名用户与令牌和错误将不会出现。

P.S.对不起语法错误,但我认为每个人都会理解我:)