Встала задача, сделать так, чтобы каждый юзер мог работать только со своими ресурсами.
Получилось такое вот «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’] в сниппетах.
Конечно это не очень серьёзное разделение прав, но для сотрудников одной организации — достаточно.
З.Ы. Если у вас есть более элегантные решения — пишите.