Всего 97 551 комментарий

Александр
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 не к сниппетам относятся вроде
Александр
15 ноября 2019, 17:31
+1
После добавления товара сервер возвращает yadi.sk/i/NW-_BneWewTiXw
То есть, никаких данных о товаре. Вам либо ajax в вытаскиванием данных из корзины и базы либо собирать данные со страницы.
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, 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 и сюда часть рядом с ними. Если рядом массивов нет, то не прогружается сессия.
Александр
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));
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] => 
                                )

                        )

                )

        )

)
Sergey
15 ноября 2019, 16:46
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));
Прогружаем страницу и смотрим лог.
Alex DOM
15 ноября 2019, 16:35
0
Тоже интересно )
Gleb
15 ноября 2019, 16:17
0
оооо, кажется, что-то проясняется)

но что есть principal 0?
Александр
15 ноября 2019, 16:03
+2
Вообщем работа с правами реализована в \core\model\modx\modaccessibleobject.class.php
Там логов полно, но на debug уровне. То есть, в системных настройка ставим log_level = 4 и смотрим что происходит.
Александр
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, 15:15
0
Доступа к объектам вроде нет. Это не фреймворк же на все случаи жизни, а компонент который решает только свои определенные задачи. Я вот не могу представить зачем нужен доступ к объектам корзины на фронте. Опишите что-за задача у вас. Может ее по другому решать надо.
Sergey
15 ноября 2019, 13:16
0
Павел, спасибо Вам за ответ, теперь более или менее стало понятно. 🙂
Yar
Yar
15 ноября 2019, 12:03
0
Ну что ж, офигенно) Добавил компонент в TODO. Спасибо!
Gleb
15 ноября 2019, 11:01
0
Привет! Спасибо за ответ.
В общем, настройки политики у меня ровно такие же, как на твоём скриншоте (хотя пробовал разные комбинации). Кор/кэш чистил, разумеется, неоднократно, результата, увы, не даёт.
В плане хостинга тоже маловероятно, т.к. на локалке у меня тоже такое было (да и всё-таки хоть какое-то логичное объяснение быть должно).
Может есть ещё предположения?
perfkirill
15 ноября 2019, 10:04
0
Сделал через SESSION. Я понимаю, что сесси хранятся в куки у MODX, но мне все равно интересно как решить такую проблему. И почему она возникает.
Sergey
15 ноября 2019, 09:13
0
С этим в итоге разобрался. Остался вопрос доступа к объектам магазина через данный фреймворк.
Алексей Шумаев
15 ноября 2019, 08:41
+1
«Тестовый» сайт сегодня занял первое место по ключевому запросу. До этого — что не делали — болтался на 2-5 странице (по объективным причинам). Но, повторюсь, для меня сео — тема мутная и что там в итоге повлияло на отдачу чёрного ящика — я не знаю ) Скорее всего все наши действия в куче.