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

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

  • Осваиваюсь на форуме
  • 37
  • 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?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает canonical

Автор Zegeberg

Ответов: 16
Просмотров: 617
Последний ответ 25.09.2023, 17:28:04
от web1
Некорректно работает Яндекс Метрика из-за mootools

Автор web_signal

Ответов: 4
Просмотров: 876
Последний ответ 21.06.2023, 23:25:14
от sivers
Модуль для опросов Advanced Poll не работает

Автор Escander

Ответов: 15
Просмотров: 1428
Последний ответ 02.06.2023, 20:10:22
от kzalmatuy1
Не работает 301 редирект

Автор NatFree

Ответов: 2
Просмотров: 485
Последний ответ 28.04.2023, 11:15:08
от fsv
Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 10
Просмотров: 2810
Последний ответ 18.04.2023, 09:32:55
от Akeksandr