Виталий Барышников

Виталий Барышников

Был в сети 12 июля 2021, 09:07
Заказы не принимаю
Ок, понятно. Т.е. даже пусть кто-то разработал мегакрутой уникальный сервис на заказ, то заказчик может спокойно копировать и писать своё имя как разраба (если не оговорено иначе), а тот кто изначально всё придумал — не при делах, жаль конечно. Хитрых админов много, поработал в конторе, копирнул всё и свалил, заделал конкурента. Получается выход такой — рекомендовать начальству не раскрывать админам пароли Super'a и mysql.
Спасибо. Редирект работает. Ошибку правда не показывает в привычном виде (пишет на панели), даже если закомментить редирект, видимо у меня с админкой какие-то проблемы


Вот что в плагине:
<?php
if (($modx->event->name == "OnDocFormRender" || $modx->event->name == "OnBeforeDocFormSave") && $mode == "new") {
	if (!$modx->user->isMember('Administrator')) { 
		if ($parent = intval($_REQUEST['parent'])) {
			$disallow_parent_list = array(2,9);

			if (in_array($parent, $disallow_parent_list)) {
				$modx->event->output('Вы не можете создавать ресурсы в данном разделе!');
				//$modx->sendRedirect($modx->getOption('site_url') . 'manager/?a=resource/update&id=' . $parent);
			}
		}
	}
}
Можно и через группы ресурсов и ACL:
BobRay Reply #10, 3 years, 3 months ago
You need to put the container resource in another Resource Group (and remove it from the group with the editable resources).

Leave what you have for the Editable resources.

Connect the container's Resource Group to the Administrator group with a Resource Group Access ACL entry:

context: mgr
policy: Administrator
minimum role: Super User

That will hide it. To unhide it, but not allow editing, connect the container's resource Group to the Content Editors Group with another Resource Group Access ACL entry:

context: mgr
policy: Load, List, and View
minimum role: Content Editor

The container will be visible but not editable and the children should show up.
Аноним ничего не может скачать (залогиненый менеджер и админ могут), что ему еще нужно?

Извини конечно, что столько пишу, просто сроки подходят, а у меня заминки с правами, я это откладывал откладывал и вот уже и финиш и кипишь
Хорошо, когда есть чувство юмора, хорошая память, знания разработчика и свободное время) Спасибо. ! Оффтоп: Не могу найти решения формы обратной связи с аттачем файлов (чтоб по типу и размеру ограничивалась загрузка и не требовала регистрации/авторизации). Сделал через FileAttach (хук formit) и пролетел с правами, он не работает, если не залогинен юзер. Не встречалось подобное?
День добрый! Не могу понять как работает метод FileItem -> rename.
Использую fileAttach во фронте (Ajax-загрузка), чтобы добавлять файлы к форме обратной связи, в коде через хук
цепляю файлы. НО!
Чтобы прицепить файлы к письму с нормальными именами (а не X465VMijhrre97nvxwedfhdfdg.doc), я для каждого делаю переименование (item — отдельный объект FileItem) обратно в оригиниальное название:
$item->rename($item->get('name'));
и отправляю. Письмо приходит удачно с нормальными именами файлов (допустим «Документ 1.doc»).

Но затем в хуке после отправки мне необходимо удалить этот переименованный файл, но
$item->remove();
Не проходит, т.к. он ищет X465VMijhrre97nvxwedfhdfdg.doc, а не переименованный «Документ 1.doc».
Поэтому объект удаляется, а файл — нет. Как быть? Почему при rename internal_name в таблице не изменился на Документ 1.doc (смотрю через phpMyAdmin).