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

InstantCMS 2.X
#1 3 января 2018 в 22:43
Здравствуйте!
Кто-нибудь знает, как ограничить доступ к профилям пользователей? Хочу, чтобы обычные пользователи могли просматривать только свои профили.
#2 4 января 2018 в 01:41
vladimird, вот попробуйте поставить себя на место программера, который решил вам помочь.
Вы ж тут же спросите (это только на вскидку):
1) "обычные пользователи" это кто?
2) а кроме своего профиля "обычные пользователи" ещё что-то могут просматривать?
3) а если "обычные пользователи" заходят на страницу чужого профиля, то им что показывать?
4) предполагается ли наличие ещё и "не обычных пользователей"?
Если на п.4 ответ положительный, количество стартовых вопросов возрастает кратно.
Тут есть кому помочь. Только пишите внятнее.

Я не прогер, в исполнители не напрашиваюсь.
#3 4 января 2018 в 01:46


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

vladimird

В админке где компоненты есть Профили пользователей там есть опции перейдите туда и поставьте галочку Разрешить просмотр профилей только авторизованным пользователям
#4 4 января 2018 в 01:49
Нико, это не то. Условие надо прописать на сверки id, если I'd совпадает то показываем если не то показывает какой то текст или перенаправляем куда то
#5 4 января 2018 в 01:55


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

Jestik

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


vladimird, вот попробуйте поставить себя на место программера, который решил вам помочь.
Вы ж тут же спросите (это только на вскидку):
1) "обычные пользователи" это кто?
2) а кроме своего профиля "обычные пользователи" ещё что-то могут просматривать?
3) а если "обычные пользователи" заходят на страницу чужого профиля, то им что показывать?
4) предполагается ли наличие ещё и "не обычных пользователей"?

Олег Васильевич я
1) Обычные пользователи имелись ввиду пользователи из стандартной категории "Пользователи". В сущности если знать как ограничить для одной группы, то я ограничу и для других групп.
2) Конечно обычные пользователи могут и что-то другое просматривать. Я же не пишу о других ограничениях.
3) Если пользователь открывает страницу с чужим профилем, то можно было бы ему показывать что-то вроде "Доступ к данному профилю закрыт".
4) Групп пользователей может быть много, но если знать ответы на вышенаписанное, то по аналогии можно и для всех остальных групп настроить подобное ограничение. Если такое для других групп потребуется.
#7 8 января 2018 в 16:12



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

Jestik

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

Нико

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

Я думал может есть стандартный функционал в системе для этого. Например я всем пользователям ограничил доступ к странице "Список пользователей" таким образом: зашел "Виджиты и страницы" -> "Профили пользователей" -> "Список пользователей" и там зашел в редактирование и проставил в доступе "Показывать группам: Модераторы Администраторы " и "Не показывать группам: Гости, Новые, Пользователи". И это я сделал стандартными средствами инстанта. Но так не получилось со страницей профиля пользователя.
#8 25 февраля 2020 в 10:13
И не ужели нет решения по такой казалось бы типичной задаче, группа пользователей НОВИЧКИ как и гости не могут просматривать чужие профили, наверняка одной строчкой кода можно дописать, хелп)
#9 25 февраля 2020 в 10:49
нуже, пусть даже 404 на профили для группы, где покопать? как привязаться к галочке Разрешить просмотр профилей только авторизованным пользователям или аналог сделать Список доступен для
#10 25 февраля 2020 в 11:32
может в profile_view.tpl.php что то типа того вставить

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

но не работает
#11 25 февраля 2020 в 11:54


может в profile_view.tpl.php что то типа того вставить

Александр
Хуком users_profile_view
#12 25 февраля 2020 в 15:37

может в profile_view.tpl.php что то типа того вставить

Александр
Я обычно такое в шаблоне и делаю (может не правильно так, зато правки только в самом шаблоне)

<?php if(cmsUser::isUserInGroups(cmsUser::get('groups'), array(0 => 3)) { ?>
но не работает

Александр
Там вообще ошибка будет — вы скобку не закрыли.
--------------------------------
Кроме того, явно надо ещё пару условий (админ, свой профиль).
Запрещение просмотра профилей не авторизованным в админке юзаете? Если нет, то надо ещё и на авторизацию проверять.
3 — это id группы пользователей, которой нельзя просматривать чужие профили?
Поиграюсь сейчас для интереса.
#13 26 февраля 2020 в 00:18

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

vladimird

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

\templates\default\controllers\users\profile_view.tpl.php


  1.  
  2. <?php if (cmsUser::get('id') == $profile['id'] || cmsUser::isAdmin()) { ?>
  3. <div id="user_profile_header">
  4. <?php $this->renderChild('profile_header', array('profile' => $profile, 'tabs' => $tabs)); ?>
  5. </div>
  6.  
  7. ......................
  8. .....................
  9.  
  10. <?php } else { ?>
  11.  
  12. <div class="sess_messages">
  13. <div class="message_info">Здрасте! Тут закрыто!</div>
  14. </div>
  15.  
  16. <?php } ?>
  17.  
---Скачать---

Там еще можно проверку по друзьям сделать (если в друзяках — смотри профиль, если нет — сообщение. () )
Примерно так…
  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.  
#14 26 февраля 2020 в 07:44
Править шаблоны в движке, который предоставляет механизм хуков практически на все случаи жизни — это моветон
#15 26 февраля 2020 в 10:00

Править шаблоны в движке, который предоставляет механизм хуков практически на все случаи жизни — это моветон

Dimson
В теории да. Но по факту ваш оппонент предложил код, а вы взяли и грязью измазали — вот где моветон.
Вы покажите своё решение, а диагнозы ставить тут каждый горазд.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.