Ошибка доступа при редактировании профилей
Всем привет! У меня небольшая ошибка в админке при редактировании сабАдмином профиля пользователя «Доступ запрещен»:
Под катом результаты поисков ->
Я начал искать причину, открыл контроллер пользователя, права проверить, всё нормально вроде, нужные стоят.
Потом я понял, что ошибка возникает на вкладке «Настройки» в профиле:
Суперюзер там всё видит нормально, параметры видит.
У сабАдмина все права, связанные с редактированием/созданием/удалением пользователей, просмотром ролей и групп есть.
Я решил глянуть тогда контроллер этой странички настроек:
Пошел ext смотреть (manager/assets/widgets/core/security/modx.panel.user.js). Нашел, то место, где эта панель с настройками добавляется:
Под катом результаты поисков ->
Потом я понял, что ошибка возникает на вкладке «Настройки» в профиле:
Суперюзер там всё видит нормально, параметры видит.
У сабАдмина все права, связанные с редактированием/созданием/удалением пользователей, просмотром ролей и групп есть.
Я решил глянуть тогда контроллер этой странички настроек:
<?php
include_once MODX_CORE_PATH . 'model/modx/processors/system/settings/getlist.class.php';
/**
* Gets a list of user settings
*
* @param integer $user The user to grab from
* @param integer $start (optional) The record to start at. Defaults to 0.
* @param integer $limit (optional) The number of records to limit to. Defaults
* to 10.
* @param string $sort (optional) The column to sort by. Defaults to key.
* @param string $dir (optional) The direction of the sort. Defaults to ASC.
*
* @package modx
* @subpackage processors.system.settings
*/
class modUserSettingGetListProcessor extends modSystemSettingsGetListProcessor {
public $classKey = 'modUserSetting';
public function initialize() {
$this->setDefaultProperties(array(
'user' => 0,
));
return parent::initialize();
}
/**
* Filter by user
* @return array
*/
public function prepareCriteria() {
$criteria = array();
$criteria[] = array('user' => (int)$this->getProperty('user'));
return $criteria;
}
}
return 'modUserSettingGetListProcessor';
Не увидел ничего связанного с правами.Пошел ext смотреть (manager/assets/widgets/core/security/modx.panel.user.js). Нашел, то место, где эта панель с настройками добавляется:
...
if (config.user != 0) {
f.push({
title: _('settings')
,autoHeight: true
,defaults: { autoHeight: true }
,hideMode: 'offsets'
,items: [{
html: '<h3>'+_('user_settings')+'</h3><p>'+_('user_settings_desc')+'</p>'
,bodyCssClass: 'panel-desc'
,border: false
},{
xtype: 'modx-grid-user-settings'
,cls: 'main-wrapper'
,preventRender: true
,user: config.user
,width: '97%'
,listeners: {
'afterAutoSave':{fn:this.markDirty,scope:this}
}
}]
});
}
...
Если закомментить это, то ошибка пропадает, ну и вкладка настроек тоже. Вот у меня и вопрос, где же ошибка? Может не там искал?Комментарии: 1
Контроль доступа -> Политики доступа
Выбираешь ту политику, которая у тебя на сабАдмине стоит. Я выбрал политику Content Editor.
Переходишь в редактирование, ищешь разрешения:
namespaces — Видеть и редактировать «Пространства имён»
settings — Смотреть и редактировать системные настройки
Отмечаешь их и сохраняешь. Перезагружаешь права доступа.
Выбираешь ту политику, которая у тебя на сабАдмине стоит. Я выбрал политику Content Editor.
Переходишь в редактирование, ищешь разрешения:
namespaces — Видеть и редактировать «Пространства имён»
settings — Смотреть и редактировать системные настройки
Отмечаешь их и сохраняешь. Перезагружаешь права доступа.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.