К содержанию

Доступ к странице фронтэнда

Наиболее темная и невнятная сторона modx, на мой взгляд, это права доступа к чему либо. Никак не пойму как сделать доступ к определенной странице сайта одному единственному пользователю.
Артем
Артем
02 сентября 2015, 12:17
modx.pro
2 762
Реклама

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

Павел Романов
Павел Романов Проверенный
30 августа 2015, 09:35
Делаете группу ресурсов, куда загоняете эту страницу.
Делаете группу пользователей, куда загоняете этого пользователя.
Расшариваете для этой группы пользователей эту группу ресурсов.
    Sergey Leleko
    Sergey Leleko Проверенный
    30 августа 2015, 09:48
    Четкий, краткий и понятный ответ!
      Сергей Шлоков
      Сергей Шлоков Эксперт
      30 августа 2015, 10:25
      А страницу надо включить в группу ресурсов.
        Дмитрий
        Дмитрий Старожил
        05 ноября 2015, 06:15
        Не могу понять как в 2.4.0 создавать группу ресурсов.
          Дмитрий
          Дмитрий Старожил
          05 ноября 2015, 06:29
          Капец. Не ожидал найти их в меню «Содержимое».
            Антон Фомичёв
            Антон Фомичёв Проверенный
            05 ноября 2015, 09:30
            Некропостер детектед!!!
              Дмитрий
              Дмитрий Старожил
              07 ноября 2015, 01:21
              И я о вас того же мнения. Однако в попытке отыскать правду, было как-то не до даты сообщений. И как всегда все оказалось проще чем казалось.
        Fi1osof
        Fi1osof Эксперт
        30 августа 2015, 16:32
        ИМХО — зря заминусовали. Вопрос-то стоял «как сделать доступ к определенной странице сайта одному единственному пользователю». С одной стороны да — ответили. Через группу и т.п. С другой стороны, это вопрос, который действительно касается слабой и темной стороны MODX-а — предоставление прав конкретным пользователям. Представьте, что вы запускаете социалку на MODX, где пользователи могут писать свои топики и предоставлять права каким-то отдельным друзьям. Сейчас, если пытаться такое реализовать, придется плодить 100500 групп пользователей. Потому что в MODX нет механизма предоставления прав на что-либо конкретно пользователям. Есть предоставление прав группам пользователей на группы ресурсов и т.п. А уже потом разбираться к каким группам относятся пользователи и документы. Это не есть гуд. И это действительно запутанно. Так же в MODX нет такого понятия как owner (то есть владелец сущности). На мой взгляд это тоже было бы правильно учитывать. Если я создатель какой-то сущности — значит я имею на нее все права. Это по логике. Но на практике такого нет.

        В свое время я заморочился допиливанием механизма политик MODX-а, чтобы учитывались индивидуальные права пользователей, без необходимости добавления ресурсов и пользователей в группы. То есть можно было давать права как отдельным людям, так и отдельным группам. Конечно же пришлось использовать CRC. Если кому интересно, вот некоторые коды:
        modzilla.class.php — основной класс модуля
        modzillaproject.class.php CRC Проект
        modzillaaccess.class.php кастомный класс политик безопасности.
        modzillaaccessprojects.class.php что-то там тоже с правами связанное.

        Писалось все это очень давно, так что в деталях многого не помню уже. Но это работало. По этому вопросу материал в помощь:
        modxclub.ru/blog/dokumentatsiya-dlya-spetsialistov/26.html
        modxclub.ru/blog/dokumentatsiya-dlya-spetsialistov/28.html
        modxclub.ru/blog/113.html

        Материал крайне мозговыносящий, но самый сок. Так что если освоите, понимать будете очень многое.

          Василий Наумкин
          Василий Наумкин Администратор
          30 августа 2015, 16:54
          зря заминусовали. Вопрос-то стоял
          Не зря.

          Вопроса здесь вообще нет. Человек просто сожалеет о своей личной проблеме.
          Никак не пойму как сделать доступ к определенной странице сайта одному единственному пользователю.

          Будем иметь в виду, что тут еще скажешь?
            Fi1osof
            Fi1osof Эксперт
            30 августа 2015, 16:56
            Ну, это было мое личное мнение. Я его обосновал. А каждый будет считать как ему больше нравится.
              Василий Наумкин
              Василий Наумкин Администратор
              30 августа 2015, 16:57
              Ну а если по теме — в MODX много чего нет, но почти всё можно добавить.

              Этот вопрос можно решить вообще тупо «в лоб»: создать ТВ параметр access, прописать в него id юзеров и если id текущего юзера не попадает в этот список — делать редирект куда угодно.

              Работы на 5 минут, один плагин, один ТВ и 10 строк кода (примерно).
                Fi1osof
                Fi1osof Эксперт
                30 августа 2015, 17:00
                Да, можно и так. Можно еще дальше пойти — прописать свой класс на замену modRequest и там рулить права. То есть на основе той же твшки можно еще в своем реквестере отдать 404 (отправить в OnPageNotFound) и там на уровне плагина еще разрулить ситуацию. Но все это не очень будет работать на уровне $modx->getObject($class). А описанное мной выше как раз на этом уровне работает.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          12