Разделение прав на создание тикетов в бэкэнде

Здравствуйте. Сталкивался ли кто-нибудь с разделением прав контент-менеджеров/копирайтеров? Проблема в том что контент создается в бэкэнде в виде тикетов в нескольких разделах. Каждый копирайтер может писать статьи (тикеты) в любые разделы. Таких контент-менеджеров много, и очень бы не хотелось, чтобы один менеджер мог править/удалять ресурсы другого (уже были случаи). Поэтому хочется чтобы каждый копирайтер мог работать только с тем что сам создал. Прошу поделиться решением, мне, дизайнеру, это не накодить, в общих чертах я понимаю, но API мне понять сложно.
Мне сказали, что вроде нельзя так сделать встроенными средствами и разделением прав, нужен плагин.

В ходе активного поиска я что-то нашел, но не очень понимаю что нужно править (автор Николай Ланец)
<?php 

switch($modx->event->name){
     
    
    case 'OnManagerPageBeforeRender':
        
        switch($scriptProperties['controller']->config['controller']){
            
            /*
                Проверяем права на редактирование документов
            */
            case 'resource/update':
                
                // Проверяем наличие настройки allow_to_update (задается в настройках пользователя)
                // В ней мы перечисляем, какие документы пользователю можно редактировать
                // Если настройка задана, но id документа отсутствует в перечисленных разрешенных,
                // То возвращаем ошибку доступа 
                if($allow_to_update = $modx->getOption('allow_to_update')){
                    if(!is_array($allow_to_update)){
                        $allow_to_update = explode(",", $allow_to_update);
                        $allow_to_update = array_map('trim', $allow_to_update);
                    }

                    //
                    if(!in_array($scriptProperties['controller']->scriptProperties['id'], $allow_to_update)){
                        $scriptProperties['controller']->failure('Доступ запрещен');
                        return;
                    }
                }
                
                break;
            
        }
        
        //print_r($scriptProperties['controller']->config);
        //print_r($scriptProperties['controller']->scriptProperties);
        
        break;
    
}
Виталий Барышников
25 декабря 2015, 11:25
modx.pro
948
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0