2016-10-08 1 views
0

Я работаю с Sylius и пытаюсь создать роль пользователя, разрешенную ТОЛЬКО для редактирования продуктов. Я дал ему следующие разрешения:Права доступа Sylius - Удалить управление запасами

  • Показать товары
  • Список товар
  • Редактировать продукт

не применяются никакие другие разрешения, и нет родительского разрешения категории не проверяются. Я думаю, что эти ограничительные разрешения предоставят этой роли пользователю доступ только к меню продуктов в администрировании, но, похоже, также добавят меню «Уровни ресурсов». Эта роль пользователя должна быть абсолютно недоступна для просмотра или редактирования уровней ресурсов, и что дает?

Это ошибка с разрешениями Силиуса? Не разрешены ли разрешения только для того, чтобы обеспечить такой высокий уровень контроля? Или считается, что уровни запасов являются неотъемлемой частью продуктов, и что он всегда включен в связанные с продуктом разрешения, чтобы администратор мог убедиться, что продукт, который они редактируют, действительно доступен?

Я принимаю решения для удаления разрешений на доступ к ресурсам, полагаю, я полагаю, что я получу свои руки в коде, чтобы сделать это. Я также соглашусь с пониманием мысли об этом, или это ошибка с Силиусом. Благодаря!

ответ

1

Я нашел свой ответ в коде. Файл: src/Sylius/Bundle/WebBundle/Menu/BackendMenuBuilder.php

Это файл, который размещает все эти элементы на боковой панели меню администратора, после проверки того, что разрешения позволяют этому пользователю видеть его. Там есть кусок кода здесь выглядит следующим образом:

if ($this->rbacAuthorizationChecker->isGranted('sylius.product.index')) { // THIS IS IT! 
     $child->addChild('products', [ 
      'route' => 'sylius_backend_product_index', 
      'labelAttributes' => ['icon' => 'glyphicon glyphicon-th-list'], 
     ])->setLabel($this->translate(sprintf('sylius.backend.menu.%s.products', $section))); 
     $child->addChild('inventory', [ 
      'route' => 'sylius_backend_inventory_index', 
      'labelAttributes' => ['icon' => 'glyphicon glyphicon-tasks'], 
     ])->setLabel($this->translate(sprintf('sylius.backend.menu.%s.stockables', $section))); 
    } 

Это добавляет пункт меню продукты, а также добавляет пункт меню инвентаря в то же время, основываясь на том же разрешении: «sylius.product.index ». Я предполагаю, что это либо еще не было разделено на свое собственное разрешение, либо просто считается, что в случаях МОСТ пользователь, который может управлять продуктами, также должен иметь возможность управлять запасами. Я буду создавать новое разрешение для решения этой проблемы.