Я добавил новое поле в учетную запись Oro (* level *) и некоторые правила авторизации для него. Когда я обновляю учетную запись для пользователя с ролью без доступа, уровень поля не отображается, но значение уровня учетной записи очищается при добавлении формы в форму.
Поэтому я бы хотел Добавляйте уровень каждый раз, когда я обновляю аккаунт. Я попытался расширить контроллер учетной записи и изменить метод обновления с помощью следующего кода:
protected function update(Account $entity = null)
{
if (!$entity) {
$entity = $this->getManager()->createEntity();
}
$authorizationChecker = $this->get('security.authorization_checker');
if (!$authorizationChecker->isGranted('EDIT', new FieldVote($entity, 'level'))) {
$entityFromDB = $this->getManager()->find($entity->getId());
$levelFromDB = $entityFromDB->getLevel();
$entity->setLevel($levelFromDB);
}
return $this->get('oro_form.model.update_handler')->update(
$entity,
$this->get('oro_account.form.account'),
$this->get('translator')->trans('oro.account.controller.account.saved.message'),
$this->get('oro_account.form.handler.account')
);
}
Однако при сохранении уровень учетной записи изменяется на пустой.
Может кто-нибудь дать мне несколько Помогите? Я использую OroCRM 2.6.19
Спасибо, ребята!