Отключение вкладок формы редактирования товара в зависимости от группы пользователя
Здравствуйте!
Modx Revo 2.8.8
Последний Minishop2
Задача: есть группа менеджеров, которым нужно дать доступ только к редактированию одного TV.
Через кастомизацию форм modx отключил все вкладки и их содержимое. Но MS2 упорно вставляет вкладки «Товар», «Галерея».
Отключение вкладок через системные настройки минишопа не подходит, так как вкладки надо убрать только у одной группы.
Пробовал повесить на событие msOnManagerCustomCssJs вот такой плагин:
Ошибки:
Modx Revo 2.8.8
Последний Minishop2
Задача: есть группа менеджеров, которым нужно дать доступ только к редактированию одного TV.
Через кастомизацию форм modx отключил все вкладки и их содержимое. Но MS2 упорно вставляет вкладки «Товар», «Галерея».
Отключение вкладок через системные настройки минишопа не подходит, так как вкладки надо убрать только у одной группы.
Пробовал повесить на событие msOnManagerCustomCssJs вот такой плагин:
<?php
$modx->controller->addHtml('
<script type="text/javascript">
Ext.onReady(function() {
var checkForm = function() {
var panel = Ext.getCmp("modx-resource-tabs");
if (panel) {
var tab = panel.getComponent("minishop2-product-tab");
if (tab) {
panel.remove(tab, true);
}
}
};
checkForm();
});
</script>
');
НО, для галереи это не подходит, там id всегда разный типа ext-comp-1056, а при попытке удалить вкладку «Товар» возникают ошибки в js и форма вообще не формируется до конца.Ошибки:
Uncaught TypeError: this.indexOf is not a function
remove линк/manager/assets/ext3/adapter/ext/ext-base.js:21
ExtJS 2
each линк/manager/assets/ext3/adapter/ext/ext-base.js:21
ExtJS 2
each линк/manager/assets/ext3/adapter/ext/ext-base.js:21
ExtJS 19
checkForm линк/manager/index.php?a=resource/update&id=1551:103
линк/manager/index.php?a=resource/update&id=1551:107
ExtJS 10
ext-base.js:21:9329
Uncaught TypeError: this.el.dom is undefined
ExtJS 4
getField линк/manager/assets/modext/widgets/core/modx.panel.js:262
hideField линк/manager/assets/modext/widgets/core/modx.panel.js:272
hideField линк/manager/assets/modext/core/modx.js?v=09b00bbb:594
линк/manager/index.php?a=resource/update&id=1551:150
ExtJS 10
ext-all.js:21:547294
Uncaught TypeError: this.ui is null
loadComplete ExtJS
createDelegate линк/manager/assets/ext3/adapter/ext/ext-base.js:21
ExtJS 5
f линк/manager/assets/ext3/adapter/ext/ext-base.js:21
m линк/manager/assets/ext3/adapter/ext/ext-base.js:21
createCallback линк/manager/assets/ext3/adapter/ext/ext-base.js:21
setInterval handler*n линк/manager/assets/ext3/adapter/ext/ext-base.js:21
i линк/manager/assets/ext3/adapter/ext/ext-base.js:21
request линк/manager/assets/ext3/adapter/ext/ext-base.js:21
ExtJS 4
fn линк/manager/assets/modext/widgets/core/tree/modx.tree.js:175
ExtJS 83
S линк/manager/assets/ext3/adapter/ext/ext-base.js:21
S линк/manager/assets/ext3/adapter/ext/ext-base.js:21
S линк/manager/assets/ext3/adapter/ext/ext-base.js:21
S линк/manager/assets/ext3/adapter/ext/ext-base.js:21
FormPanel линк/manager/assets/modext/widgets/core/modx.panel.js:34
Resource линк/manager/assets/modext/widgets/resource/modx.panel.resource.js?v=4.3.0-pl:31
Product линк/assets/components/minishop2/js/mgr/product/product.common.js?v=4.3.0-pl:3
UpdateProduct линк/assets/components/minishop2/js/mgr/product/update.js?v=4.3.0-pl:98
create ExtJS
load линк/manager/assets/modext/core/modx.js?v=09b00bbb:86
_loadComponents линк/manager/assets/modext/core/modx.component.js:68
Component линк/manager/assets/modext/core/modx.component.js:10
UpdateResource линк/manager/assets/modext/sections/resource/update.js?v=4.3.0-pl:33
UpdateProduct линк/assets/components/minishop2/js/mgr/product/update.js?v=4.3.0-pl:9
create ExtJS
load линк/manager/assets/modext/core/modx.js?v=09b00bbb:86
линк/manager/index.php?a=resource/update&id=1551:89
ExtJS 10
ext-all.js:21:483349
Uncaught TypeError: d is null
ExtJS 4
createDelegate линк/manager/assets/ext3/adapter/ext/ext-base.js:21
ExtJS 85
S линк/manager/assets/ext3/adapter/ext/ext-base.js:21
S линк/manager/assets/ext3/adapter/ext/ext-base.js:21
S линк/manager/assets/ext3/adapter/ext/ext-base.js:21
S линк/manager/assets/ext3/adapter/ext/ext-base.js:21
FormPanel линк/manager/assets/modext/widgets/core/modx.panel.js:34
Resource линк/manager/assets/modext/widgets/resource/modx.panel.resource.js?v=4.3.0-pl:31
Product линк/assets/components/minishop2/js/mgr/product/product.common.js?v=4.3.0-pl:3
UpdateProduct линк/assets/components/minishop2/js/mgr/product/update.js?v=4.3.0-pl:98
create ExtJS
load линк/manager/assets/modext/core/modx.js?v=09b00bbb:86
_loadComponents линк/manager/assets/modext/core/modx.component.js:68
Component линк/manager/assets/modext/core/modx.component.js:10
UpdateResource линк/manager/assets/modext/sections/resource/update.js?v=4.3.0-pl:33
UpdateProduct линк/assets/components/minishop2/js/mgr/product/update.js?v=4.3.0-pl:9
create ExtJS
load линк/manager/assets/modext/core/modx.js?v=09b00bbb:86
линк/manager/index.php?a=resource/update&id=1551:89
ExtJS 10
Предполагаю, что минишоп пытается вставить содержимое вкладок, когда самой вкладки уже нет, хотя может и ошибаюсь.
Нужна помощь с решением задачи.
Комментарии: 2
У минишопа есть своя политика доступа пробовали отключать её для целевой группы пользователей?
да, я её скопировал, обрезав по максимуму, оставив только save/edit и list.
Там нет возможности убрать вкладки или ограничить их содержимое на основе прав
Там нет возможности убрать вкладки или ограничить их содержимое на основе прав
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.