Права доступа? Настройки сервера?

Друзья мои!
Первым делом хочу извиниться, если задача тривиальна и можно сделать вывод, что я недостаточно приложил усилий для самостоятельного поиска решения (уверяю, это не так: )))

Дело в том, что сайт работает нормально.Так, как от него ожидаешь. Но только до тех пор, пока не открываешь вкладку в режиме «инкогнито» или тупо разлогиниваешься. Вот тут начинается что-то странное. На ряде страниц — белый экран с пустым исходным кодом. Где-то отдаётся resource.content, где-то грузится полностью за исключением пары чанков.

Собственно, несколько дней гуглил, копался в компонентах, экспериментировал с политиками доступа, пытался понять логику и пришёл к выводу, что загвоздка вероятнее всего возникает где-то на уровне прав (картинки это подтверждают).




Я подозреваю, что сниппеты и другие элементы тупо не хотят отрабатывать для неавторизованных пользователей (и более того, когда пытался найти причину глубже, $modx->getObject возвращал null там, где авторизованный пользователь получал нормальный объект (msProducts, в частности))

В общем, у кого было подобное, покажите путь, куда копать.
Заранее спасибо откликнувшимся и пардон, если не вполне доходчиво описал суть)
Gleb
14 ноября 2019, 16:19
modx.pro
1
838
0

Комментарии: 15

Александр Туниеков
15 ноября 2019, 01:12
+1
У меня в правах на группу аноним стоит Доступ к контексту Load Only. yadi.sk/i/Bz-3Zkxc2wXEFw
Политика доступа: Load Only: только load. yadi.sk/i/sVtvWtzFoACVIw
Больше на группу аноним в правах ничего не настроено. Хотя по идее для работы сайта нужно Load, List and View, почему-то аноним, обычно, прекрасно, работает с Load Only.
Проверь чтоб у группу аноним стояло Load Only. Если настройки от дефолтных не отличаются, пробуй очистить кеш, удалить все из папки core/cache. Затем попробуй развернуть копию сайта на другом хостинге. Возможно он виноват.
    Gleb
    15 ноября 2019, 11:01
    0
    Привет! Спасибо за ответ.
    В общем, настройки политики у меня ровно такие же, как на твоём скриншоте (хотя пробовал разные комбинации). Кор/кэш чистил, разумеется, неоднократно, результата, увы, не даёт.
    В плане хостинга тоже маловероятно, т.к. на локалке у меня тоже такое было (да и всё-таки хоть какое-то логичное объяснение быть должно).
    Может есть ещё предположения?
      Александр Туниеков
      15 ноября 2019, 15:38
      +1
      да и всё-таки хоть какое-то логичное объяснение быть должно
      Хм… ну если тебе так хочется логичное объяснение. То берешь ситуацию $modx->getObject возвращал null и смотришь в D:\OpenServer\domains\modx.loc\core\model\modx\modx.class.php нет getObject.
      class modX extends xPDO {
      Открываешь D:\OpenServer\domains\modx.loc\core\xpdo\xpdo.class.php и на строке 840 находишь
      public function getObject($className, $criteria= null, $cacheFlag= true) {
              $instance= null;
              $this->sanitizePKCriteria($className, $criteria);
              if ($criteria !== null) {
                  $instance = $this->call($className, 'load', array(& $this, $className, $criteria, $cacheFlag));
              }
              return $instance;
          }
      добавляешь
      public function getObject($className, $criteria= null, $cacheFlag= true) {
              $instance= null;
              $this->sanitizePKCriteria($className, $criteria);
              $this->log(1,"criteria ".print_r($criteria,1)); // или $this->log(1,"criteria $criteria"); а то print_r выгрузит в лог всю базу бывает.
              if ($criteria !== null) {
                  $instance = $this->call($className, 'load', array(& $this, $className, $criteria, $cacheFlag));
                  $this->log(1,"instance $instance");
              }
              return $instance;
          }
      Смотришь по логу что отдало null. Затем, если в логе «instance », то есть $instance = null, ищешь public function call выясняешь что эта функция вызывает и т.д.
      Муторно. Долго. Но иного способа нет. Зато больше понимания как modx работает :-).
        Александр Туниеков
        15 ноября 2019, 16:03
        +2
        Вообщем работа с правами реализована в \core\model\modx\modaccessibleobject.class.php
        Там логов полно, но на debug уровне. То есть, в системных настройка ставим log_level = 4 и смотрим что происходит.
          Gleb
          15 ноября 2019, 16:17
          0
          оооо, кажется, что-то проясняется)

          но что есть principal 0?
            Александр Туниеков
            15 ноября 2019, 16:39
            0
            Это вот функция
            public static function _loadInstance(& $xpdo, $className, $criteria, $row) {
                    /** @var modAccessibleObject $instance */
                    $instance = xPDOObject :: _loadInstance($xpdo, $className, $criteria, $row);
                    if ($instance instanceof modAccessibleObject && !$instance->checkPolicy('load')) {
                        if ($xpdo instanceof modX) {
                            $userid = $xpdo->getLoginUserID();
                            if (!$userid) $userid = '0';
                            $xpdo->log(xPDO::LOG_LEVEL_INFO, "Principal {$userid} does not have permission to load object of class {$instance->_class} with primary key: " . (is_object($instance) && method_exists($instance,'getPrimaryKey') ? print_r($instance->getPrimaryKey(), true) : ''));
                        }
                        $instance = null;
                    }
                    return $instance;
                }
            То есть 0 это просто id юзера.
            Скорее всего валится на $instance->checkPolicy('load'). Открываем core\model\modx\modsnippet.class.php. Там ничего такого нет но class modSnippet extends modScript
            Вообщем участвуют 2 метода
            modaccessibleobject.class.php
            public function checkPolicy($criteria, $targets = null, modUser $user = null) {
                    if(!$user){
                        $user = & $this->xpdo->user;
                    }
                    if ($criteria && $this->xpdo instanceof modX && $this->xpdo->getSessionState() == modX::SESSION_STATE_INITIALIZED) {
                        if ($user->get('sudo')) return true;
                        if (!is_array($criteria) && is_scalar($criteria)) {
                            $criteria = array("{$criteria}" => true);
                        }
                        $policy = $this->findPolicy();
                        if (!empty($policy)) {
                            $principal = $user->getAttributes($targets);
                            if (!empty($principal)) {
                                foreach ($policy as $policyAccess => $access) {
                                    foreach ($access as $targetId => $targetPolicy) {
                                        foreach ($targetPolicy as $policyIndex => $applicablePolicy) {
                                            if ($this->xpdo->getDebug() === true)
                                                $this->xpdo->log(xPDO::LOG_LEVEL_DEBUG, 'target pk='. $this->getPrimaryKey() .'; evaluating policy: ' . print_r($applicablePolicy, 1) . ' against principal for user id=' . $user->id .': ' . print_r($principal[$policyAccess], 1));
                                            $principalPolicyData = array();
                                            $principalAuthority = 9999;
                                            if (isset($principal[$policyAccess][$targetId]) && is_array($principal[$policyAccess][$targetId])) {
                                                foreach ($principal[$policyAccess][$targetId] as $acl) {
                                                    $principalAuthority = intval($acl['authority']);
                                                    $principalPolicyData = $acl['policy'];
                                                    $principalId = $acl['principal'];
                                                    if ($applicablePolicy['principal'] == $principalId) {
                                                        if ($principalAuthority <= $applicablePolicy['authority']) {
                                                            if (!$applicablePolicy['policy']) {
                                                                return true;
                                                            }
                                                            if (empty($principalPolicyData)) $principalPolicyData = array();
                                                            $matches = array_intersect_assoc($principalPolicyData, $applicablePolicy['policy']);
                                                            if ($matches) {
                                                                if ($this->xpdo->getDebug() === true)
                                                                    $this->xpdo->log(modX::LOG_LEVEL_DEBUG, 'Evaluating policy matches: ' . print_r($matches, 1));
                                                                $matched = array_diff_assoc($criteria, $matches);
                                                                 if (empty($matched)) {
                                                                    return true;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            return false;
                        }
                    }
                    return true;
                }
            и modelement.class.php
            public function findPolicy($context = '') {
                    $policy = array();
                    $enabled = true;
                    $context = !empty($context) ? $context : $this->xpdo->context->get('key');
                    if ($context === $this->xpdo->context->get('key')) {
                        $enabled = (boolean) $this->xpdo->getOption('access_category_enabled', null, true);
                    } elseif ($this->xpdo->getContext($context)) {
                        $enabled = (boolean) $this->xpdo->contexts[$context]->getOption('access_category_enabled', true);
                    }
                    if ($enabled) {
                        if (empty($this->_policies) || !isset($this->_policies[$context])) {
                            $accessTable = $this->xpdo->getTableName('modAccessCategory');
                            $policyTable = $this->xpdo->getTableName('modAccessPolicy');
                            $categoryClosureTable = $this->xpdo->getTableName('modCategoryClosure');
                            $sql = "SELECT Acl.target, Acl.principal, Acl.authority, Acl.policy, Policy.data FROM {$accessTable} Acl " .
                                    "LEFT JOIN {$policyTable} Policy ON Policy.id = Acl.policy " .
                                    "JOIN {$categoryClosureTable} CategoryClosure ON CategoryClosure.descendant = :category " .
                                    "AND Acl.principal_class = 'modUserGroup' " .
                                    "AND CategoryClosure.ancestor = Acl.target " .
                                    "AND (Acl.context_key = :context OR Acl.context_key IS NULL OR Acl.context_key = '') " .
                                    "ORDER BY CategoryClosure.depth DESC, target, principal, authority ASC";
                            $bindings = array(
                                ':category' => $this->get('category'),
                                ':context' => $context,
                            );
                            $query = new xPDOCriteria($this->xpdo, $sql, $bindings);
                            if ($query->stmt && $query->stmt->execute()) {
                                while ($row = $query->stmt->fetch(PDO::FETCH_ASSOC)) {
                                    $policy['modAccessCategory'][$row['target']][] = array(
                                        'principal' => $row['principal'],
                                        'authority' => $row['authority'],
                                        'policy' => $row['data'] ? $this->xpdo->fromJSON($row['data'], true) : array(),
                                    );
                                }
                            }
                            $this->_policies[$context] = $policy;
                        } else {
                            $policy = $this->_policies[$context];
                        }
                    }
                    return $policy;
                }
            В modaccessibleobject.class.php после $policy = $this->findPolicy(); строка 219 вставляем
            $this->xpdo->log(xPDO::LOG_LEVEL_DEBUG, "policy ".print_r($policy->toArray(),1));
            Прогружаем страницу и смотрим лог.
              Gleb
              15 ноября 2019, 16:58
              0
              пробежавшись по массиву, не обнаружил ничего примечательного(признаться, я и не знаю, чего искать)))
              вот часть распечатанного дампа…
              <cut/>
              [2019-11-15 16:54:01] (DEBUG @ /var/www/u0859369/data/www/idplitka.ru/core/model/modx/modaccessibleobject.class.php : 220) policy Array
              (
                  [modAccessContext] => Array
                      (
                          [web] => Array
                              (
                                  [0] => Array
                                      (
                                          [principal] => 0
                                          [authority] => 9999
                                          [policy] => Array
                                              (
                                                  [load] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 
                                              )
              
                                      )
              
                                  [1] => Array
                                      (
                                          [principal] => 1
                                          [authority] => 0
                                          [policy] => Array
                                              (
                                                  [about] => 1
                                                  [access_permissions] => 1
                                                  [actions] => 1
                                                  [change_password] => 1
                                                  [change_profile] => 1
                                                  [charsets] => 1
                                                  [class_map] => 1
                                                  [components] => 1
                                                  [content_types] => 1
                                                  [countries] => 1
                                                  [create] => 1
                                                  [credits] => 1
                                                  [customize_forms] => 1
                                                  [dashboards] => 1
                                                  [database] => 1
                                                  [database_truncate] => 1
                                                  [delete_category] => 1
                                                  [delete_chunk] => 1
                                                  [delete_context] => 1
                                                  [delete_document] => 1
                                                  [delete_eventlog] => 1
                                                  [delete_plugin] => 1
                                                  [delete_propertyset] => 1
                                                  [delete_role] => 1
                                                  [delete_snippet] => 1
                                                  [delete_template] => 1
                                                  [delete_tv] => 1
                                                  [delete_user] => 1
                                                  [directory_chmod] => 1
                                                  [directory_create] => 1
                                                  [directory_list] => 1
                                                  [directory_remove] => 1
                                                  [directory_update] => 1
                                                  [edit_category] => 1
                                                  [edit_chunk] => 1
                                                  [edit_context] => 1
                                                  [edit_document] => 1
                                                  [edit_locked] => 1
                                                  [edit_plugin] => 1
                                                  [edit_propertyset] => 1
                                                  [edit_role] => 1
                                                  [edit_snippet] => 1
                                                  [edit_template] => 1
                                                  [edit_tv] => 1
                                                  [edit_user] => 1
                                                  [element_tree] => 1
                                                  [empty_cache] => 1
                                                  [error_log_erase] => 1
                                                  [error_log_view] => 1
                                                  [events] => 1
                                                  [export_static] => 1
                                                  [file_create] => 1
                                                  [file_list] => 1
                                                  [file_manager] => 1
                                                  [file_remove] => 1
                                                  [file_tree] => 1
                                                  [file_update] => 1
                                                  [file_upload] => 1
                                                  [file_unpack] => 1
                                                  [file_view] => 1
                                                  [flush_sessions] => 1
                                                  [frames] => 1
                                                  [help] => 1
                                                  [home] => 1
                                                  [import_static] => 1
                                                  [languages] => 1
                                                  [lexicons] => 1
                                                  [list] => 1
                                                  [load] => 1
                                                  [logout] => 1
                                                  [logs] => 1
                                                  [menus] => 1
                                                  [menu_reports] => 1
                                                  [menu_security] => 1
                                                  [menu_site] => 1
                                                  [menu_support] => 1
                                                  [menu_system] => 1
                                                  [menu_tools] => 1
                                                  [menu_user] => 1
                                                  [messages] => 1
                                                  [namespaces] => 1
                                                  [new_category] => 1
                                                  [new_chunk] => 1
                                                  [new_context] => 1
                                                  [new_document] => 1
                                                  [new_document_in_root] => 1
                                                  [new_plugin] => 1
                                                  [new_propertyset] => 1
                                                  [new_role] => 1
                                                  [new_snippet] => 1
                                                  [new_static_resource] => 1
                                                  [new_symlink] => 1
                                                  [new_template] => 1
                                                  [new_tv] => 1
                                                  [new_user] => 1
                                                  [new_weblink] => 1
                                                  [packages] => 1
                                                  [policy_delete] => 1
                                                  [policy_edit] => 1
                                                  [policy_new] => 1
                                                  [policy_save] => 1
                                                  [policy_template_delete] => 1
                                                  [policy_template_edit] => 1
                                                  [policy_template_new] => 1
                                                  [policy_template_save] => 1
                                                  [policy_template_view] => 1
                                                  [policy_view] => 1
                                                  [property_sets] => 1
                                                  [providers] => 1
                                                  [publish_document] => 1
                                                  [purge_deleted] => 1
                                                  [remove] => 1
                                                  [remove_locks] => 1
                                                  [resource_duplicate] => 1
                                                  [resourcegroup_delete] => 1
                                                  [resourcegroup_edit] => 1
                                                  [resourcegroup_new] => 1
                                                  [resourcegroup_resource_edit] => 1
                                                  [resourcegroup_resource_list] => 1
                                                  [resourcegroup_save] => 1
                                                  [resourcegroup_view] => 1
                                                  [resource_quick_create] => 1
                                                  [resource_quick_update] => 1
                                                  [resource_tree] => 1
                                                  [save] => 1
                                                  [save_category] => 1
                                                  [save_chunk] => 1
                                                  [save_context] => 1
                                                  [save_document] => 1
                                                  [save_plugin] => 1
                                                  [save_propertyset] => 1
                                                  [save_role] => 1
                                                  [save_snippet] => 1
                                                  [save_template] => 1
                                                  [save_tv] => 1
                                                  [save_user] => 1
                                                  [search] => 1
                                                  [set_sudo] => 1
                                                  [settings] => 1
                                                  [sources] => 1
                                                  [source_delete] => 1
                                                  [source_edit] => 1
                                                  [source_save] => 1
                                                  [source_view] => 1
                                                  [steal_locks] => 1
                                                  [tree_show_element_ids] => 1
                                                  [tree_show_resource_ids] => 1
                                                  [undelete_document] => 1
                                                  [unlock_element_properties] => 1
                                                  [unpublish_document] => 1
                                                  [usergroup_delete] => 1
                                                  [usergroup_edit] => 1
                                                  [usergroup_new] => 1
                                                  [usergroup_save] => 1
                                                  [usergroup_user_edit] => 1
                                                  [usergroup_user_list] => 1
                                                  [usergroup_view] => 1
                                                  [view] => 1
                                                  [view_category] => 1
                                                  [view_chunk] => 1
                                                  [view_context] => 1
                                                  [view_document] => 1
                                                  [view_element] => 1
                                                  [view_eventlog] => 1
                                                  [view_offline] => 1
                                                  [view_plugin] => 1
                                                  [view_propertyset] => 1
                                                  [view_role] => 1
                                                  [view_snippet] => 1
                                                  [view_sysinfo] => 1
                                                  [view_template] => 1
                                                  [view_tv] => 1
                                                  [view_unpublished] => 1
                                                  [view_user] => 1
                                                  [workspaces] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 1
                                              )
              
                                      )
              
                                  [2] => Array
                                      (
                                          [principal] => 2
                                          [authority] => 0
                                          [policy] => Array
                                              (
                                                  [about] => 1
                                                  [access_permissions] => 1
                                                  [actions] => 1
                                                  [change_password] => 1
                                                  [change_profile] => 1
                                                  [charsets] => 1
                                                  [class_map] => 1
                                                  [components] => 1
                                                  [content_types] => 1
                                                  [countries] => 1
                                                  [create] => 1
                                                  [credits] => 1
                                                  [customize_forms] => 1
                                                  [dashboards] => 1
                                                  [database] => 1
                                                  [database_truncate] => 1
                                                  [delete_category] => 1
                                                  [delete_chunk] => 1
                                                  [delete_context] => 1
                                                  [delete_document] => 1
                                                  [delete_eventlog] => 1
                                                  [delete_plugin] => 1
                                                  [delete_propertyset] => 1
                                                  [delete_role] => 1
                                                  [delete_snippet] => 1
                                                  [delete_template] => 1
                                                  [delete_tv] => 1
                                                  [delete_user] => 1
                                                  [directory_chmod] => 1
                                                  [directory_create] => 1
                                                  [directory_list] => 1
                                                  [directory_remove] => 1
                                                  [directory_update] => 1
                                                  [edit_category] => 1
                                                  [edit_chunk] => 1
                                                  [edit_context] => 1
                                                  [edit_document] => 1
                                                  [edit_locked] => 1
                                                  [edit_plugin] => 1
                                                  [edit_propertyset] => 1
                                                  [edit_role] => 1
                                                  [edit_snippet] => 1
                                                  [edit_template] => 1
                                                  [edit_tv] => 1
                                                  [edit_user] => 1
                                                  [element_tree] => 1
                                                  [empty_cache] => 1
                                                  [error_log_erase] => 1
                                                  [error_log_view] => 1
                                                  [events] => 1
                                                  [export_static] => 1
                                                  [file_create] => 1
                                                  [file_list] => 1
                                                  [file_manager] => 1
                                                  [file_remove] => 1
                                                  [file_tree] => 1
                                                  [file_update] => 1
                                                  [file_upload] => 1
                                                  [file_unpack] => 1
                                                  [file_view] => 1
                                                  [flush_sessions] => 1
                                                  [frames] => 1
                                                  [help] => 1
                                                  [home] => 1
                                                  [import_static] => 1
                                                  [languages] => 1
                                                  [lexicons] => 1
                                                  [list] => 1
                                                  [load] => 1
                                                  [logout] => 1
                                                  [logs] => 1
                                                  [menus] => 1
                                                  [menu_reports] => 1
                                                  [menu_security] => 1
                                                  [menu_site] => 1
                                                  [menu_support] => 1
                                                  [menu_system] => 1
                                                  [menu_tools] => 1
                                                  [menu_user] => 1
                                                  [messages] => 1
                                                  [namespaces] => 1
                                                  [new_category] => 1
                                                  [new_chunk] => 1
                                                  [new_context] => 1
                                                  [new_document] => 1
                                                  [new_document_in_root] => 1
                                                  [new_plugin] => 1
                                                  [new_propertyset] => 1
                                                  [new_role] => 1
                                                  [new_snippet] => 1
                                                  [new_static_resource] => 1
                                                  [new_symlink] => 1
                                                  [new_template] => 1
                                                  [new_tv] => 1
                                                  [new_user] => 1
                                                  [new_weblink] => 1
                                                  [packages] => 1
                                                  [policy_delete] => 1
                                                  [policy_edit] => 1
                                                  [policy_new] => 1
                                                  [policy_save] => 1
                                                  [policy_template_delete] => 1
                                                  [policy_template_edit] => 1
                                                  [policy_template_new] => 1
                                                  [policy_template_save] => 1
                                                  [policy_template_view] => 1
                                                  [policy_view] => 1
                                                  [property_sets] => 1
                                                  [providers] => 1
                                                  [publish_document] => 1
                                                  [purge_deleted] => 1
                                                  [remove] => 1
                                                  [remove_locks] => 1
                                                  [resource_duplicate] => 1
                                                  [resourcegroup_delete] => 1
                                                  [resourcegroup_edit] => 1
                                                  [resourcegroup_new] => 1
                                                  [resourcegroup_resource_edit] => 1
                                                  [resourcegroup_resource_list] => 1
                                                  [resourcegroup_save] => 1
                                                  [resourcegroup_view] => 1
                                                  [resource_quick_create] => 1
                                                  [resource_quick_update] => 1
                                                  [resource_tree] => 1
                                                  [save] => 1
                                                  [save_category] => 1
                                                  [save_chunk] => 1
                                                  [save_context] => 1
                                                  [save_document] => 1
                                                  [save_plugin] => 1
                                                  [save_propertyset] => 1
                                                  [save_role] => 1
                                                  [save_snippet] => 1
                                                  [save_template] => 1
                                                  [save_tv] => 1
                                                  [save_user] => 1
                                                  [search] => 1
                                                  [set_sudo] => 1
                                                  [settings] => 1
                                                  [sources] => 1
                                                  [source_delete] => 1
                                                  [source_edit] => 1
                                                  [source_save] => 1
                                                  [source_view] => 1
                                                  [steal_locks] => 1
                                                  [tree_show_element_ids] => 1
                                                  [tree_show_resource_ids] => 1
                                                  [undelete_document] => 1
                                                  [unlock_element_properties] => 1
                                                  [unpublish_document] => 1
                                                  [usergroup_delete] => 1
                                                  [usergroup_edit] => 1
                                                  [usergroup_new] => 1
                                                  [usergroup_save] => 1
                                                  [usergroup_user_edit] => 1
                                                  [usergroup_user_list] => 1
                                                  [usergroup_view] => 1
                                                  [view] => 1
                                                  [view_category] => 1
                                                  [view_chunk] => 1
                                                  [view_context] => 1
                                                  [view_document] => 1
                                                  [view_element] => 1
                                                  [view_eventlog] => 1
                                                  [view_offline] => 1
                                                  [view_plugin] => 1
                                                  [view_propertyset] => 1
                                                  [view_role] => 1
                                                  [view_snippet] => 1
                                                  [view_sysinfo] => 1
                                                  [view_template] => 1
                                                  [view_tv] => 1
                                                  [view_unpublished] => 1
                                                  [view_user] => 1
                                                  [workspaces] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 1
                                              )
              
                                      )
              
                              )
              
                      )
              
              )
              
              [2019-11-15 16:54:01] (DEBUG @ /var/www/u0859369/data/www/idplitka.ru/core/model/modx/modaccessibleobject.class.php : 220) policy Array
              (
                  [modAccessCategory] => Array
                      (
                          [9] => Array
                              (
                                  [0] => Array
                                      (
                                          [principal] => 0
                                          [authority] => 9999
                                          [policy] => Array
                                              (
                                                  [load] => 1
                                                  [list] => 1
                                                  [view] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 
                                              )
              
                                      )
              
                                  [1] => Array
                                      (
                                          [principal] => 2
                                          [authority] => 0
                                          [policy] => Array
                                              (
                                                  [load] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 
                                              )
              
                                      )
              
                              )
              
                      )
              
              )
              
              [2019-11-15 16:54:01] (DEBUG @ /var/www/u0859369/data/www/idplitka.ru/core/model/modx/modaccessibleobject.class.php : 220) policy Array
              (
                  [modAccessCategory] => Array
                      (
                          [9] => Array
                              (
                                  [0] => Array
                                      (
                                          [principal] => 0
                                          [authority] => 9999
                                          [policy] => Array
                                              (
                                                  [load] => 1
                                                  [list] => 1
                                                  [view] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 
                                              )
              
                                      )
              
                                  [1] => Array
                                      (
                                          [principal] => 2
                                          [authority] => 0
                                          [policy] => Array
                                              (
                                                  [load] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 
                                              )
              
                                      )
              
                              )
              
                      )
              
              )
              
              [2019-11-15 16:54:01] (DEBUG @ /var/www/u0859369/data/www/idplitka.ru/core/model/modx/modaccessibleobject.class.php : 220) policy Array
              (
                  [modAccessCategory] => Array
                      (
                          [9] => Array
                              (
                                  [0] => Array
                                      (
                                          [principal] => 0
                                          [authority] => 9999
                                          [policy] => Array
                                              (
                                                  [load] => 1
                                                  [list] => 1
                                                  [view] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 
                                              )
              
                                      )
              
                                  [1] => Array
                                      (
                                          [principal] => 2
                                          [authority] => 0
                                          [policy] => Array
                                              (
                                                  [load] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 
                                              )
              
                                      )
              
                              )
              
                      )
              
              )
              
              [2019-11-15 16:54:01] (DEBUG @ /var/www/u0859369/data/www/idplitka.ru/core/model/modx/modaccessibleobject.class.php : 220) policy Array
              (
                  [modAccessCategory] => Array
                      (
                          [8] => Array
                              (
                                  [0] => Array
                                      (
                                          [principal] => 0
                                          [authority] => 9999
                                          [policy] => Array
                                              (
                                                  [load] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 
                                              )
              
                                      )
              
                                  [1] => Array
                                      (
                                          [principal] => 2
                                          [authority] => 0
                                          [policy] => Array
                                              (
                                                  [load] => 1
                                                  [formit] => 1
                                                  [formit_encryptions] => 
                                              )
              
                                      )
              
                              )
              
                      )
              
              )
                Александр Туниеков
                15 ноября 2019, 17:11
                0
                Так! Должно быть сначала массив $policy и затем Principal 0 does not have permission to load object of class modSnippet и так повторяться несколько раз.
                Ищите в логе Principal 0 does not have permission to load object of class modSnippet и сюда часть рядом с ними. Если рядом массивов нет, то не прогружается сессия.
                  Gleb
                  15 ноября 2019, 17:20
                  0
                  [2019-11-15 16:54:01] (DEBUG @ /var/www/u0859369/data/www/idplitka.ru/core/model/modx/modaccessibleobject.class.php : 220) policy Array
                  (
                      [modAccessCategory] => Array
                          (
                              [6] => Array
                                  (
                                      [0] => Array
                                          (
                                              [principal] => 2
                                              [authority] => 0
                                              [policy] => Array
                                                  (
                                                      [load] => 1
                                                      [formit] => 1
                                                      [formit_encryptions] => 
                                                  )
                  
                                          )
                  
                                  )
                  
                          )
                  
                  )
                  
                  [2019-11-15 16:54:01] (INFO @ /var/www/u0859369/data/www/idplitka.ru/core/model/modx/modaccessibleobject.class.php : 40) Principal 0 does not have permission to load object of class modSnippet with primary key: 39
                  [2019-11-15 16:54:01] (ERROR @ /var/www/u0859369/data/www/idplitka.ru/core/components/pdotools/model/pdotools/pdotools.class.php : 345) [pdoTools] Could not load snippet "msProducts"
                  [2019-11-15 16:54:01] (DEBUG @ /var/www/u0859369/data/www/idplitka.ru/core/model/modx/modaccessibleobject.class.php : 220) policy Array
                  (
                      [modAccessCategory] => Array
                          (
                              [8] => Array
                                  (
                                      [0] => Array
                                          (
                                              [principal] => 0
                                              [authority] => 9999
                                              [policy] => Array
                                                  (
                                                      [load] => 1
                                                      [formit] => 1
                                                      [formit_encryptions] => 
                                                  )
                  
                                          )
                  
                                      [1] => Array
                                          (
                                              [principal] => 2
                                              [authority] => 0
                                              [policy] => Array
                                                  (
                                                      [load] => 1
                                                      [formit] => 1
                                                      [formit_encryptions] => 
                                                  )
                  
                                          )
                  
                                  )
                  
                          )
                  
                  )
                  Если я правильно понял…

                  + про сессии он тож чот писал
                    Александр Туниеков
                    15 ноября 2019, 18:04
                    0
                    Не хватает инфы :-( сделайте
                    $this->xpdo->log(xPDO::LOG_LEVEL_DEBUG, "policy ".print_r($policy,1)."\r\n class ".$this->_class."\r\n id ".$this->getPrimaryKey());
                    У меня лог
                    [2019-11-15 17:56:56] (DEBUG @ D:\OpenServer\domains\modx.loc\core\model\modx\modaccessibleobject.class.php : 220) policy Array
                    (
                    )
                    
                     class modSnippet
                     id 126
                    modAccessCategory не к сниппетам относятся вроде
                      Gleb
                      15 ноября 2019, 18:12
                      0
                      лог
                      давайте пощадим сюда зашедших))
                      Александр Туниеков
                      15 ноября 2019, 19:23
                      0
                      проверте таблицу modx_access_category
                      Она по идее должна быть пустой. Если там что-то есть, то вы наверно доступ манагерам к категориям элементов ограничивали. То есть, кому-то дали права а остальным облом. В том числе и анонимам. Если я, конечно, верно код интерпритировал. Доступ к категориям редактируется здесь yadi.sk/i/4CM-C0bYWRRFjg
                      Если у кого-то доступ настроен, то надо и анонимам сделать аналогично. Только контекст на web поменять.
                      Gleb
                      15 ноября 2019, 20:41
                      0
                      аааааа! ты лучший! куда спасибо скинуть?)
                      очистка таблицы решила проблему, но тем не менее надо бы разобраться, как правильно назначать права контент-менеджерам, но уж с этим как-нибудь, думаю, разберусь))
                      Александр Туниеков
                      15 ноября 2019, 20:54
                      0
                      Рад что помог :-). Спасибо скинуть это хорошо :-). В моем профиле кнопка «Отправить деньги». Но на мат.вознаграждение не рассчитывал :-). И если что-то отправите, то все по вашему желанию :-)
            Александр Туниеков
            15 ноября 2019, 17:00
            0
            А нет у нас
            if ($criteria && $this->xpdo instanceof modX && $this->xpdo->getSessionState() == modX::SESSION_STATE_INITIALIZED) {
            и yadi.sk/i/LxtgR47-77XUMg
            То есть, сессия не прогружается и права false.
            В modsessionhandler.class.php после $this->session= $this->modx->getObject('modSession', array('id' => $id), $this->cacheLifetime); строка 159 ставим
            $this->modx->log(modX::LOG_LEVEL_INFO, "autoCreate $autoCreate session ".print_r($this->session->toArray(),1));
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    15