0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 6359 Просмотров
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Как можно при авторизации пользователя во фронте в зависимости от его прав (админ/не-админ) вывести определенные пункты в главном меню и перейти по одному из них.
Соот-но, при выходе из кабинета скрыть эти пункты меню и редирект на страницу с формой авторизации.
« Последнее редактирование: 05.04.2014, 23:51:53 от b2z »
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Организация личного кабинета
« Ответ #2 : 01.04.2014, 22:26:43 »
Доступ->Registered?
А как при нажатии "Войти" в стандартной форме авторизации происходил переход на определенную страницу? в зависимости от доступа?  или вызов определенного пункта меню с не-паблик доступом, опять же, в зависимости от доступа?
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Организация личного кабинета
« Ответ #3 : 01.04.2014, 22:46:10 »
Доступ->Registered?
Нет, создать новый.

А как при нажатии "Войти" в стандартной форме авторизации происходил переход на определенную страницу? в зависимости от доступа?  или вызов определенного пункта меню с не-паблик доступом, опять же, в зависимости от доступа?
Это сложнее... Вот в модуле авторизации можно выбирать ссылку для перенаправления. Можно показывать этот модуль только определенному уровню доступа.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Организация личного кабинета
« Ответ #4 : 01.04.2014, 22:47:45 »
Спс, попробую.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Организация личного кабинета
« Ответ #5 : 01.04.2014, 23:48:17 »
А проще не пробовали? Создать второе, точно такое же меню, где пункты будут псевдонимами первого, и разграничить права уже на модули?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Организация личного кабинета
« Ответ #6 : 02.04.2014, 00:52:35 »
Если править шаблон модуля то можно на php вывести ссылку с перенаправлением в зависимости от разрешений следующим образом:
Код: php
if ($user->get('isRoot')) // или user->authorize(...) в зависимости от ваших требований
{
     $returnURL = $url_for_superadmin;
}  else
     $returnURL = $url_for_user;

echo '<a href="'.JRoute::_('index.php?option=com_users&view=login&return='.$returnURL).'">Вход</a>';
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Организация личного кабинета
« Ответ #7 : 02.04.2014, 10:35:19 »
А проще не пробовали? Создать второе, точно такое же меню, где пункты будут псевдонимами первого, и разграничить права уже на модули?
Не совсем понятна схема реализации, да и зачем городить столько меню?

Если править шаблон модуля то можно на php вывести ссылку с перенаправлением в зависимости от разрешений следующим образом:
Код: php
if ($user->get('isRoot')) // или user->authorize(...) в зависимости от ваших требований
{
     $returnURL = $url_for_superadmin;
}  else
     $returnURL = $url_for_user;

echo '<a href="'.JRoute::_('index.php?option=com_users&view=login&return='.$returnURL).'">Вход</a>';
Весьма удобно, спасибо.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Организация личного кабинета
« Ответ #8 : 02.04.2014, 12:52:22 »
Да, только вот я сейчас подумал, как то нелогично. Зачем ссылка на логин, залогиненому пользователю? Для logoutа это может быть полезно, проверка прав и перенаправление в зависимости от прав.
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Организация личного кабинета
« Ответ #9 : 02.04.2014, 12:59:57 »
Мда, тоже не сразу понял: если пользователь не залогинен, $returnURL всегда = $url_for_user, а если залогинен, то ссылка некорректна.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Организация личного кабинета
« Ответ #10 : 05.04.2014, 15:45:23 »
При попытке указать /index.php?option=com_users&view=login - форма авторизации, при авторизации редирект на профиль пользователя
При попытке указать /index.php?option=com_users&view=login&return=/index.php - форма авторизации, по нажатии "Войти": "Время сессии истекло, пожалуйста, пройдите авторизацию заново.", url формы авторизации сбрасывается на /index.php?option=com_users

В общем, не могу нормально сделать редирект на нужную мне страницу сразу после входа.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Организация личного кабинета
« Ответ #11 : 05.04.2014, 18:13:32 »
В url /index.php?option=com_users&view=login&return=/index.php

В temlates/templname/html/com_users/login/default_login.php в форме:
<input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url', $this->form->getValue('return'))); ?>" />

На выходе во фронт
<input type="hidden" value="indexphp" name="return"></input>
Где слэш, где точка? Это base64? или что-то еще?
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Организация личного кабинета
« Ответ #12 : 05.04.2014, 20:28:29 »
Как не хотелось задействовать mod_login, а пришлось - компонент не хочет перенаправлять на нужный мне адрес.

Модуль авторизации опубликовал в позиции меню, переопределил в шаблоне, default.php:
Спойлер
[свернуть]

default_logout.php:
Спойлер
[свернуть]

В шаблоне:
Спойлер
[свернуть]

Что получилось - картинка во вложении. Стили, кому необходимо, надеюсь, сами нарисуете.

Спасибо всем. Решено.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 479
Последний ответ 06.02.2024, 12:42:26
от AlexP750
[Решено] Ссылка на домен и текущий шаблон в блоге категории

Автор goga_pgasovav

Ответов: 2
Просмотров: 343
Последний ответ 06.03.2023, 16:30:23
от goga_pgasovav
[Решено] Не добавляется CSS-класс страницы

Автор Strelok760

Ответов: 16
Просмотров: 1301
Последний ответ 02.03.2023, 16:14:47
от Танита Сар
[Решено] Получить список тегов каждого материала в блоге категории

Автор goga_pgasovav

Ответов: 1
Просмотров: 393
Последний ответ 02.03.2023, 14:20:21
от goga_pgasovav
[Решено]Пути к изображениям изменяются на images/remote/

Автор Шмайсер

Ответов: 1
Просмотров: 376
Последний ответ 11.02.2023, 19:31:16
от Шмайсер