Announcement

Collapse
No announcement yet.

[Отчет об ошибках] Любой пользователь может посмотреть отчет на главной странице

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Отчет об ошибках] Любой пользователь может посмотреть отчет на главной странице

    Заметили, что как не ограничивай пользователя в правах, но он все равно, может добавить на главную страницу(например mycrm.ru/# ) отчет с данными, которые видеть он не должен.
    Click image for larger version

Name:	
Views:	0
Size:	429.1 KB
ID:	34471

    Я "костылями" убрал эту проблему.
    по адресу
    application/Espo/Modules/Crm/Controllers/Opportunity.php

    Добавил правило в часть которая отвечает за этот отчет
    PHP Code:
     public function actionReportSalesByMonth($params$data$request)
        {
            
    $level $this->getAcl()->getLevel('Opportunity''read');
            if (!
    $level || $level == 'own' || $level == 'no' || $level == 'team') {
                throw new 
    Forbidden();
            }

            
    $dateFrom $request->get('dateFrom');
            
    $dateTo $request->get('dateTo');

            return 
    $this->getService('Opportunity')->reportSalesByMonth($dateFrom$dateTo); 
    Получилось так как на скриншоте ниже.
    Click image for larger version

Name:	
Views:	0
Size:	56.8 KB
ID:	34472
    Возможность добавить этот отчет у пользователя сохранилась, но теперь если он это сделает, то у него будет ошибка 403
    Last edited by mr2d2; 02-07-2018, 03:04 PM.

  • #2
    Здравствуйте
    $level == 'team'
    ?
    Мы с командой обсудим этот уровень доступа.
    Можете оставить правило здесь, но я рекоммендую переместить его в custom. Если ограничения так и не поменяют, но файл будет изменен, после обовления пользователи опять получат доступ з отчёту.

    Comment


    • #3
      Originally posted by tanya View Post
      Здравствуйте
      ?
      Мы с командой обсудим этот уровень доступа.
      Можете оставить правило здесь, но я рекоммендую переместить его в custom. Если ограничения так и не поменяют, но файл будет изменен, после обовления пользователи опять получат доступ з отчёту.
      Просто В папку custom добавить этот файл с сохранением структуры папок?

      Comment


      • #4
        Нет. Создайте контроллер, наследуйте этот (application/Espo/Modules/Crm/Controllers/Opportunity.php), переопредилите метод actionReportSalesByMonth
        Примерно так

        custom/Espo/Custom/Controllers/Opportunity.php
        Code:
        namespace Espo\Custom\Controllers;
        class Opportunity extends \Espo\Modules\Crm\Controllers\Opportunity  
        {
             public function actionReportSalesByMonth($params, $data, $request) {
                 $level = $this->getAcl()->getLevel('Opportunity', 'read');
                if (!$level || $level == 'own' || $level == 'no' || $level == 'team') {
                    throw new Forbidden();
                }
                  $dateFrom = $request->get('dateFrom');
                  $dateTo = $request->get('dateTo');
                 return $this->getService('Opportunity')->reportSalesByMonth($dateFrom, $dateTo);
              }
        }

        Comment


        • mr2d2
          mr2d2 commented
          Editing a comment
          Переместил в папку custom
          Спасибо!
      Working...
      X