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

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mr2d2
    Senior Member
    • Apr 2017
    • 126

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

    Заметили, что как не ограничивай пользователя в правах, но он все равно, может добавить на главную страницу(например 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.
  • tanya
    Senior Member
    • Jun 2014
    • 4308

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

    Comment

    • mr2d2
      Senior Member
      • Apr 2017
      • 126

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

      Comment

      • tanya
        Senior Member
        • Jun 2014
        • 4308

        #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...