Кто-нибудь знает, как ограничить доступ к профилям пользователей? Хочу, чтобы обычные пользователи могли просматривать только свои профили.
Вы ж тут же спросите (это только на вскидку):
1) "обычные пользователи" это кто?
2) а кроме своего профиля "обычные пользователи" ещё что-то могут просматривать?
3) а если "обычные пользователи" заходят на страницу чужого профиля, то им что показывать?
4) предполагается ли наличие ещё и "не обычных пользователей"?
Если на п.4 ответ положительный, количество стартовых вопросов возрастает кратно.
Тут есть кому помочь. Только пишите внятнее.
Я не прогер, в исполнители не напрашиваюсь.
Здравствуйте!
Кто-нибудь знает, как ограничить доступ к профилям пользователей? Хочу, чтобы обычные пользователи могли просматривать только свои профили.
В админке где компоненты есть Профили пользователей там есть опции перейдите туда и поставьте галочку Разрешить просмотр профилей только авторизованным пользователям
Нико, это не то. Условие надо прописать на сверки id, если I'd совпадает то показываем если не то показывает какой то текст или перенаправляем куда то
А я понял нужно просто запрет поставить что доступ запрещен и все. В user.tpl.php с помощью php пусть автор точнее напишет поможем.
1) Обычные пользователи имелись ввиду пользователи из стандартной категории "Пользователи". В сущности если знать как ограничить для одной группы, то я ограничу и для других групп.
vladimird, вот попробуйте поставить себя на место программера, который решил вам помочь.
Вы ж тут же спросите (это только на вскидку):
1) "обычные пользователи" это кто?
2) а кроме своего профиля "обычные пользователи" ещё что-то могут просматривать?
3) а если "обычные пользователи" заходят на страницу чужого профиля, то им что показывать?
4) предполагается ли наличие ещё и "не обычных пользователей"?
2) Конечно обычные пользователи могут и что-то другое просматривать. Я же не пишу о других ограничениях.
3) Если пользователь открывает страницу с чужим профилем, то можно было бы ему показывать что-то вроде "Доступ к данному профилю закрыт".
4) Групп пользователей может быть много, но если знать ответы на вышенаписанное, то по аналогии можно и для всех остальных групп настроить подобное ограничение. Если такое для других групп потребуется.
Нико, это не то. Условие надо прописать на сверки id, если I'd совпадает то показываем если не то показывает какой то текст или перенаправляем куда то
А я понял нужно просто запрет поставить что доступ запрещен и все. В user.tpl.php с помощью php пусть автор точнее напишет поможем.
Извиняюсь, если не совсем точно описал задачу.
Идея в том, чтобы пользователи из определенной группы могли просматривать только свой профиль. А если вдруг зайдут на страницу любого другого пользователя сайта, то им бы отображался бы какой-нибудь текст, например "Доступ к данному профилю закрыт".
Я думал может есть стандартный функционал в системе для этого. Например я всем пользователям ограничил доступ к странице "Список пользователей" таким образом: зашел "Виджиты и страницы" -> "Профили пользователей" -> "Список пользователей" и там зашел в редактирование и проставил в доступе "Показывать группам: Модераторы Администраторы " и "Не показывать группам: Гости, Новые, Пользователи". И это я сделал стандартными средствами инстанта. Но так не получилось со страницей профиля пользователя.
<?php if(cmsUser::isUserInGroups(cmsUser::get('groups'), array(0 => 3)) { ?>
но не работает
Хуком users_profile_view
может в profile_view.tpl.php что то типа того вставить
Я обычно такое в шаблоне и делаю (может не правильно так, зато правки только в самом шаблоне)может в profile_view.tpl.php что то типа того вставить
Там вообще ошибка будет — вы скобку не закрыли.<?php if(cmsUser::isUserInGroups(cmsUser::get('groups'), array(0 => 3)) { ?>
но не работает
--------------------------------
Кроме того, явно надо ещё пару условий (админ, свой профиль).
Запрещение просмотра профилей не авторизованным в админке юзаете? Если нет, то надо ещё и на авторизацию проверять.
3 — это id группы пользователей, которой нельзя просматривать чужие профили?
Поиграюсь сейчас для интереса.
Кто-нибудь знает, как ограничить доступ к профилям пользователей? Хочу, чтобы обычные пользователи могли просматривать только свои профили.
Тут собственно все ....
<?php if (cmsUser::get('id') == $profile['id'] || cmsUser::isAdmin()) { ?> <div id="user_profile_header"> </div> ...................... ..................... <?php } else { ?> <div class="sess_messages"> <div class="message_info">Здрасте! Тут закрыто!</div> </div> <?php } ?>
Там еще можно проверку по друзьям сделать (если в друзяках — смотри профиль, если нет — сообщение. () )
Примерно так…
<?php if (cmsUser::get('id') == $profile['id'] || cmsUser::isAdmin()) { ?> <?php } if ($is_friends_on && $friends) { ?> <div>Этот пользователь в ваших контактах.<br>Вы можете просматривать его профиль.</div> <?php } elseif ($is_friends_on && !$friends) { ?> <div>Доступ к запрошенной странице закрыт</div> <?php } else { ?> <div><b>что-то пошло не так… открывай капот</b></div> <?php } ?> <?php } ?>
В теории да. Но по факту ваш оппонент предложил код, а вы взяли и грязью измазали — вот где моветон.Править шаблоны в движке, который предоставляет механизм хуков практически на все случаи жизни — это моветон
Вы покажите своё решение, а диагнозы ставить тут каждый горазд.