We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33563
    • 17 Posts
    Встала задача, сделать так, чтобы каждый юзер мог работать только со своими ресурсами.

    Получилось такое вот «Quick&Dirty» решение, на базе Quick Manager+:

    В Quick Manager+ в файле qm.inc.php меняем строки:
      
    // If user is admin (role = 1)
    if ($_SESSION['mgrRole'] == 1) $access = TRUE;
    

    на:
    $docID = $this->modx->documentIdentifier;
    $fields = $this->modx->getDocument($docID);
    		
    // If user is admin (role = 1)
    if ($_SESSION['mgrRole'] == 1) $access = TRUE;
            		        
    elseif ($_SESSION['mgrRole'] != $fields['createdby']) $access = FALSE;
    


    Теперь quickmanager позволяет всем кто не админ редактировать только свои ресурсы, ну а чтобы юзер после входа не попадал в админку, да и вообще в неё не попадал, вот такой малюсенький хак в /manager/frames/1.php, добавить последней строкой в первый блок ?php (честно хотел сделать плагином, но ничего не вышло из-за фреймов):
    if ($modx->getLoginUserID()!=1) { header("Location:/"); };
    


    Теперь юзер после входа попадает на главную и может работать со своими документами. Так-же для их удобства можно показывать им только свои ресурсы, определяя их принадлежность через переменную $_SESSION[’mgrRole’] в сниппетах.

    Конечно это не очень серьёзное разделение прав, но для сотрудников одной организации — достаточно.

    З.Ы. Если у вас есть более элегантные решения — пишите.