Ограничить доступ к профилям 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 469
на сайте
Здравствуйте!
Кто-нибудь знает, как ограничить доступ к профилям пользователей? Хочу, чтобы обычные пользователи могли просматривать только свои профили.
Дополнение: Форум в группах . Тестировать здесь https://test.proglite.ru/
PLSHOP - Шаблон интернет-магазина. Демо - https://plshop.proglite.ru
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 3323
vladimird, вот попробуйте поставить себя на место программера, который решил вам помочь.
Вы ж тут же спросите (это только на вскидку):
1) "обычные пользователи" это кто?
2) а кроме своего профиля "обычные пользователи" ещё что-то могут просматривать?
3) а если "обычные пользователи" заходят на страницу чужого профиля, то им что показывать?
4) предполагается ли наличие ещё и "не обычных пользователей"?
Если на п.4 ответ положительный, количество стартовых вопросов возрастает кратно.
Тут есть кому помочь. Только пишите внятнее.
На всякий случай
Украинский для инстант
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 626
vladimird:

Здравствуйте!
Кто-нибудь знает, как ограничить доступ к профилям пользователей? Хочу, чтобы обычные пользователи могли просматривать только свои профили.

В админке где компоненты есть Профили пользователей там есть опции перейдите туда и поставьте галочку Разрешить просмотр профилей только авторизованным пользователям
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3119
Нико, это не то. Условие надо прописать на сверки id, если I'd совпадает то показываем если не то показывает какой то текст или перенаправляем куда то
Посетитель
small user social cms
Медаль
Сообщений: 626
Jestik:

Нико, это не то. Условие надо прописать на сверки id, если I'd совпадает то показываем если не то показывает какой то текст или перенаправляем куда то

А я понял нужно просто запрет поставить что доступ запрещен и все. В user.tpl.php с помощью php пусть автор точнее напишет поможем.
Посетитель
small user social cms
Медаль
Сообщений: 469
на сайте
Олег Васильевич я:

vladimird, вот попробуйте поставить себя на место программера, который решил вам помочь.
Вы ж тут же спросите (это только на вскидку):
1) "обычные пользователи" это кто?
2) а кроме своего профиля "обычные пользователи" ещё что-то могут просматривать?
3) а если "обычные пользователи" заходят на страницу чужого профиля, то им что показывать?
4) предполагается ли наличие ещё и "не обычных пользователей"?
1) Обычные пользователи имелись ввиду пользователи из стандартной категории "Пользователи". В сущности если знать как ограничить для одной группы, то я ограничу и для других групп.
2) Конечно обычные пользователи могут и что-то другое просматривать. Я же не пишу о других ограничениях.
3) Если пользователь открывает страницу с чужим профилем, то можно было бы ему показывать что-то вроде "Доступ к данному профилю закрыт".
4) Групп пользователей может быть много, но если знать ответы на вышенаписанное, то по аналогии можно и для всех остальных групп настроить подобное ограничение. Если такое для других групп потребуется.
Дополнение: Форум в группах . Тестировать здесь https://test.proglite.ru/
PLSHOP - Шаблон интернет-магазина. Демо - https://plshop.proglite.ru
Посетитель
small user social cms
Медаль
Сообщений: 469
на сайте
Нико:

Jestik:

Нико, это не то. Условие надо прописать на сверки id, если I'd совпадает то показываем если не то показывает какой то текст или перенаправляем куда то

А я понял нужно просто запрет поставить что доступ запрещен и все. В user.tpl.php с помощью php пусть автор точнее напишет поможем.

Извиняюсь, если не совсем точно описал задачу.
Идея в том, чтобы пользователи из определенной группы могли просматривать только свой профиль. А если вдруг зайдут на страницу любого другого пользователя сайта, то им бы отображался бы какой-нибудь текст, например "Доступ к данному профилю закрыт".

Я думал может есть стандартный функционал в системе для этого. Например я всем пользователям ограничил доступ к странице "Список пользователей" таким образом: зашел "Виджиты и страницы" -> "Профили пользователей" -> "Список пользователей" и там зашел в редактирование и проставил в доступе "Показывать группам: Модераторы Администраторы " и "Не показывать группам: Гости, Новые, Пользователи" . И это я сделал стандартными средствами инстанта. Но так не получилось со страницей профиля пользователя.
Дополнение: Форум в группах . Тестировать здесь https://test.proglite.ru/
PLSHOP - Шаблон интернет-магазина. Демо - https://plshop.proglite.ru
Посетитель
small user social cms
Медаль
Сообщений: 587
И не ужели нет решения по такой казалось бы типичной задаче, группа пользователей НОВИЧКИ как и гости не могут просматривать чужие профили, наверняка одной строчкой кода можно дописать, хелп)
Посетитель
small user social cms
Медаль
Сообщений: 587
нуже, пусть даже 404 на профили для группы, где покопать? как привязаться к галочке Разрешить просмотр профилей только авторизованным пользователям или аналог сделать Список доступен для
Посетитель
small user social cms
Медаль
Сообщений: 587
может в profile_view.tpl.php что то типа того вставить

<?php if(cmsUser::isUserInGroups(cmsUser::get('groups'), array(0 => 3)) { ?>

но не работает
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 178
Александр:

может в profile_view.tpl.php что то типа того вставить
Хуком users_profile_view
Рекомендую хостинг с крутой панелью, бесплатными сертификатами и другими плюшками
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 3323
Александр:
может в profile_view.tpl.php что то типа того вставить
Я обычно такое в шаблоне и делаю (может не правильно так, зато правки только в самом шаблоне)
Александр:
<?php if(cmsUser::isUserInGroups(cmsUser::get('groups'), array(0 => 3)) { ?>
но не работает
Там вообще ошибка будет - вы скобку не закрыли.
--------------------------------
Кроме того, явно надо ещё пару условий (админ, свой профиль).
Запрещение просмотра профилей не авторизованным в админке юзаете? Если нет, то надо ещё и на авторизацию проверять.
3 - это id группы пользователей, которой нельзя просматривать чужие профили?
Поиграюсь сейчас для интереса.
Украинский для инстант
Посетитель
small user social cms
Медаль
Сообщений: 424
vladimird:
Кто-нибудь знает, как ограничить доступ к профилям пользователей? Хочу, чтобы обычные пользователи могли просматривать только свои профили.

Тут собственно все ....

Вот что будет
\templates\default\controllers\users\profile_view.tpl.php

Тайные знания ...
---Скачать---

Там еще можно проверку по друзьям сделать (если в друзяках - смотри профиль, если нет - сообщение. () )
Примерно так ...
Код PHP:
  1.  
  2.  
  3. <?php if (cmsUser::get('id') == $profile['id'] || cmsUser::isAdmin()) { ?>
  4.  
  5. <?php } if ($is_friends_on && $friends) { ?>
  6.  
  7. <div>Этот пользователь в ваших контактах.<br>Вы можете просматривать его профиль.</div>
  8.  
  9. <?php } elseif ($is_friends_on && !$friends) { ?>
  10.  
  11. <div>Доступ к запрошенной странице закрыт</div>
  12.  
  13. <?php } else { ?>
  14.  
  15. <div><b>что-то пошло не так… открывай капот</b></div>
  16.  
  17. <?php } ?>
  18.  
  19. <?php } ?>
  20.  
Редактировалось: 4 раз (Последний: 26 февраля 2020 в 03:58)
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 178
Править шаблоны в движке, который предоставляет механизм хуков практически на все случаи жизни - это моветон
Рекомендую хостинг с крутой панелью, бесплатными сертификатами и другими плюшками
Посетитель
small user social cms
Медаль
Сообщений: 451
Dimson:
Править шаблоны в движке, который предоставляет механизм хуков практически на все случаи жизни - это моветон
В теории да. Но по факту ваш оппонент предложил код, а вы взяли и грязью измазали - вот где моветон.
Вы покажите своё решение, а диагнозы ставить тут каждый горазд.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.