Плагин проверки авторства
        Здравствуйте. Прошу помочь мне с написанием небольшого плагина. В бэкэнде нужно предотвратить редактирование ресурса (тикета) пользователем, который не является его автором.
Мне подсказали, что плагин нужен на событие OnBeforeDocFormSave, я совсем не дружу с modx, думаю должно быть что-то подобное:
    
    
                                                                                
            Мне подсказали, что плагин нужен на событие OnBeforeDocFormSave, я совсем не дружу с modx, думаю должно быть что-то подобное:
<?php
switch($modx->event->name){    
    case 'OnBeforeDocFormSave':
	{
		if ($user->get('id') != $resource->get('createdby')) { 
			// что же здесь писать
		};
	}
}Помогите, пожалуйста, допились это до нормального плагина, чтобы выводилась ошибка, что нет прав на редактирование и чтобы ресурс не сохранялся.    Комментарии: 14
                Вообще-то, только юзеры с разрешением edit_document могут редактировать чужие тикеты.            
                    
                Т.е. если у юзера (менеджера контента) нет разрешения edit_document он в бэкэнде сможет создавать/редактировать свои тикеты?            
                    
                Сомневаюсь. Я не понял сразу, что речь идёт про бэкенд, так что мой коммент бесполезен.            
                    
                Да, вот в этом-то вся проблема. Я из-за этого разделения прав не могу запустить сайт, т.к. менеджеры — обычные непрограммисты (я их сам закидываю в соответствующую группу копирайтеров), которые могут писать свои статейки (тикеты) и закидывать к ним картинки через ms2Gallery, а могут нечаянно удалять и редактировать чужие статьи, и даже удалять раздел с тикетами, что очень печально.            
                    
                Я так понимаю указанная часть работает? Тогда нужно просто вывести сообщение об ошибке…            
                    
                Спасибо, Василий. Вы уже в который раз меня выручаете.            
                    
                Сорри, просто запрос в поисковике набрал по поводу allert в MODX, а на той странице, которую открыл поисковик, непонятно что за версия MODXa.
Василию спасибо, код забрал на память…
                    Василию спасибо, код забрал на память…
                У меня не так как на скрине сработало. Зависает сохранение (модальное окно Сохранение висит, пока страницу не обновишь), сообщения об ошибке нет, изменения не сохранены.            
                    
                У меня этот код заработал, когда я поменял 
                    $object->get('createdby') на $resource->get('createdby')            
                Странно, должно и так работать. Вот код процессора, $object там жёстко прописан.
Возможно, у тебя старая версия MODX.
                    Возможно, у тебя старая версия MODX.
                А где это нужно прописать?            
                    
                Создаете плагин с указанным кодом и отмечаете событие «OnBeforeDocFormSave» на вкладке «Системные события». Сохраняете и вуаля.            
                    
                500 ошибка. Смотри логи сервера и устраняй причину.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    
            
            
                    
                    
                