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

kolio

  • Захожу иногда
  • 91
  • 11 / 4
Привет всем
столкнулся такой бедой

1. если залогены на фронтэнде, то разлогиниваемся и чистим куки, закрываем браузер, открываем - для чистого теста
2. логинимся - входим в редактирование своего профиля - пускает, всё работает
3. просто закрываем страницу и браузер
4. запускаем браузер и входим на сайт. по идее куки запомнены и должны автоматом продолжить юзать сайт под те же логином - так и происходит
5. перешагивая по страницам видно, что залогены нормально
6. нажимаем снова на ссылку редактирования профиля и получаем вот что (см. фото)
7. пробовал отключать кеширование, отключать ЧПУ - всё аналогично, аналогичная картина четко наблюдается и на локальном сервере
8. если снова разлогиниться и снова войти - то пускает в профиль, даже не перезапуская браузер
9. что то или с куками или с сессиями, непонятно  :'(
10. если после неудачной попытки войти в профиль нажать НАЗАД, то выдаст кучу
Код
Из соображений безопасности вам необходимо авторизоваться для редактирования вашей персональной информации.
Из соображений безопасности вам необходимо авторизоваться для редактирования вашей персональной информации.
Из соображений безопасности вам необходимо авторизоваться для редактирования вашей персональной информации.
Из соображений безопасности вам необходимо авторизоваться для редактирования вашей персональной информации.
Из соображений безопасности вам необходимо авторизоваться для редактирования вашей персональной информации.
в общем фраза JGLOBAL_REMEMBER_MUST_LOGIN
10. по исходнику нашел кто генерит её:
components\com_users\views\profile\view.html.php
функция public function display($tpl = null)
строки

Код
// View also takes responsibility for checking if the user logged in with remember me.
$user = JFactory::getUser();
$cookieLogin = $user->get('cookieLogin');

if (!empty($cookieLogin))
{
// If so, the user must login to edit the password and other data.
// What should happen here? Should we force a logout which detroys the cookies?
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('JGLOBAL_REMEMBER_MUST_LOGIN'), 'message');
$app->redirect(JUri::base(). 'index.php?option=com_users&view=login', '', 302);

return false;
}

возможно у кого-то аналогичная проблема была?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Это вроде как дополнительная защита перед редактированием данных
А вообще не понятно что этот кусок делает в виде. Т.к. в контролере в методе edit он есть.
Т.е. по логике его тут не должно быть, похоже на баг

*

kolio

  • Захожу иногда
  • 91
  • 11 / 4
Пока решил отключить лишние плагины
Уже вижу, что нет такой беды, но просит ввести логин и пароль - то есть отображает формочку входа в сайт
но при этом модуль     Improved AJAX Login and Register  показывает, что я залогинен

возможно это связано с тем, что я логинюсь не юзая имя, а почтовый адрес
видать беда в компоненте Improved AJAX Login and Register
*

kolio

  • Захожу иногда
  • 91
  • 11 / 4
Это вроде как дополнительная защита перед редактированием данных
А вообще не понятно что этот кусок делает в виде. Т.к. в контролере в методе edit он есть.
Т.е. по логике его тут не должно быть, похоже на баг

Возможно, сейчас убираю все плагины и хочу чистый тест провести без примесей

без этого куска кода ВСЁ РАБОТАЕТ
на живом сайте тоже всё окей даже без отключения плагинов

один и тот же код в разных местах: один на редактирование, другой на display, но по факту ведут в одно и то же место

но самое интересное, что в edit там есть проверка
Код
$app		= JFactory::getApplication();
$user = JFactory::getUser();
$loginUserId = (int) $user->get('id');

// Get the previous user id (if any) and the current user id.
$previousId = (int) $app->getUserState('com_users.edit.profile.id');
$userId     = $this->input->getInt('user_id', null, 'array');

// Check if the user is trying to edit another users profile.
if ($userId != $loginUserId)
{
JError::raiseError(403, JText::_('JERROR_ALERTNOAUTHOR'));
return false;
}

а в view.html.php этого нет

думаю закоментить то, что выдает ошибку, а вместо него добавить код который выше
« Последнее редактирование: 12.08.2014, 13:14:25 от kolio »
*

kolio

  • Захожу иногда
  • 91
  • 11 / 4
В общем сделал так:
Код
	$app		= JFactory::getApplication();
// View also takes responsibility for checking if the user logged in with remember me.
$user = JFactory::getUser();
$loginUserId = (int) $user->get('id');

// Check if the user is trying to edit another users profile.
if (!$loginUserId)
{
JError::raiseError(403, JText::_('JERROR_ALERTNOAUTHOR'));
return false;
}

можно было бы 1 строку сократить, но не столь важно
если разлогинился, то не пускает по адресу http://127.0.0.1/kabinet/profile?layout=edit
залогинился - пускает и отображает данные

думаю тема закрыта, спасибо собеседнику за поддержку и за то, что сказал, что это возможно баг
*

ipdj

  • Осваиваюсь на форуме
  • 36
  • 0 / 0

но самое интересное, что в edit там есть проверка
Код
$app		= JFactory::getApplication();
$user = JFactory::getUser();
$loginUserId = (int) $user->get('id');

// Get the previous user id (if any) and the current user id.
$previousId = (int) $app->getUserState('com_users.edit.profile.id');
$userId     = $this->input->getInt('user_id', null, 'array');

// Check if the user is trying to edit another users profile.
if ($userId != $loginUserId)
{
JError::raiseError(403, JText::_('JERROR_ALERTNOAUTHOR'));
return false;
}

а в view.html.php этого нет


Подскажите где лежит edit?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

После перехода на https не работает авторизация

Автор ALEXRAW

Ответов: 1
Просмотров: 99
Последний ответ 15.02.2021, 22:42:07
от ALEXRAW
Не работает стиль и шаблон страницы 404

Автор kiev

Ответов: 1
Просмотров: 82
Последний ответ 06.02.2021, 11:24:19
от arma
Не работает отправка писем sendmail

Автор buto

Ответов: 2
Просмотров: 127
Последний ответ 30.01.2021, 16:37:40
от buto
Неправильно отображается ссылка баннера

Автор ALEXRAW

Ответов: 14
Просмотров: 308
Последний ответ 19.01.2021, 20:22:54
от ALEXRAW
Плагин для SEO

Автор Mr-fan

Ответов: 21
Просмотров: 2732
Последний ответ 17.01.2021, 23:19:58
от gorbi_U