Автор Тема: Какой variable вставить для проверки сессии в плагине tinyMCE - tinybrowser?  (Прочитано 2037 раз)

27 Июня 2013, 04:24:07
  • Фрилансер
  • *
  • Сообщений: 142
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Prestashop v1.5.4.1
Пытаюсь прикрутить вместо стандартного AjaxFilemanager-а для tinyMCE  в Prestashop такой плагин: TinyBrowser 1.42 - взятый отсюда http://www.lunarvis.com

В целях безопасности проводится проверка сессии в файле конфигурации плагина config_tinybrowser.php:

session_start(); // do not change this line

$_SESSION['tinybrowser']['sessionsecured'] = true; // enables session-based security (default is true)
$_SESSION['tinybrowser']['sessioncheck'] = 'auth_user'; // name of session variable to check

Написано, что вместо auth_user укажите имя сессии которую будете проверять.

Подскажите, что надо сюда вписать.

Что бы я ни пробовал - при попытке вставки изображения в  tinyMCE выдает сообщение: "SESSION VARIABLE NOT SET Вам требуется разрешение для просмотра этой страницы."

Проверку делал на локальном сервере OpenServer.

Если включить режим debug (отключить безопасность) - все работает нормально - проверял.

Скачать плагин TinyBrowser можно здесь: http://rghost.ru/47044787

Для облегчения установки плагина - статьи, что мне помогли установить плагин:
http://torwald.ru/6/tinybrowser-ajax-%D1%84%D0%B0%D0%B9%D0%BB-%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80-%D0%B4%D0%BB%D1%8F-tinymce/
http://webmasters.ru/forum/f74/ne-mogu-prikrutit%60-tinybrowser-k-tinymce-42361/
http://sarwarhossain.com/2009/07/08/how-to-getconfigure-fileimage-browser-for-tinymce-editor/
И форум по TinyBrowser на сайте tinyMCE: http://www.tinymce.com/forum/viewtopic.php?id=12705

В принципе все просто, кроме вопросов настройки безопасности - чертов variables для Prestashop:

1. Копируете папку плагина в папку с плагинами tinyMCE: \js\tiny_mce\plugins\
2. Модифицируем в конце файла \js\tinymce.inc.js  эти строки для вызова TinyBrowser вместо Ajaxfilemanager:

file_browser_callback : "tinyBrowser",

function tinyBrowser(field_name, url, type, win) {
var tinyBrowserurl = "js/tiny_mce/plugins/tinyBrowser/tinyBrowser.php";


Осталось решить вопрос с проверкой variables. Прошу помощи.
27 Июня 2013, 12:01:45
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
Можно переменную ссесии prestashop.
global $cookie;
if($cookie->isLogged())
{
    // авторизированный
}
else
{
    //не авторизированный
}
Или устанавливать свою пременную и потом ее проверять.
27 Июня 2013, 13:02:18
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 142
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно переменную ссесии prestashop.
global $cookie;
if($cookie->isLogged())
{
    // авторизированный
}
else
{
    //не авторизированный
}
Или устанавливать свою переменную и потом ее проверять.

Спасибо за ответ. Но я не программист. Можете подсказать, что конкретно написать  в строки конфигурации TinyBrowser для предложенного Вами варианта. Вот сюда:

session_start(); // do not change this line

$_SESSION['tinybrowser']['sessionsecured'] = true; // enables session-based security (default is true)
$_SESSION['tinybrowser']['sessioncheck'] = 'auth_user'; // name of session variable to check

Я облазил инет и пробовал методом тыка  - подставлял вместо auth_user:
!$cookie->isLoggedBack()
isLoggedBack()
isLoggedBack
Logged
loggedIn

Само собой ничего не прошло, т.к. нужно понимать, что делаешь  :)

А здесь товарищ http://sarwarhossain.com/2009/07/08/how-to-getconfigure-fileimage-browser-for-tinymce-editor/ вообще рекомендует сделать следующее:

Session Control:
We can use session in tinybrowser. See …/tiny_mce/plugins/tinybrowser/config_tinybrowser.php
   
//session_start();
//$tinybrowser['sessioncheck'] = 'authenticated_user'; //name of session variable to check

Just comment out the above line and the additional line.

$_SESSION[$tinybrowser['sessioncheck']] = "YES";
New you can uses session here.

Правда, я не знаю, для какой CMS и версии TinyBrowser.


Так как эта строка должна выглядеть? Подскажите непрограммеру.

27 Июня 2013, 13:40:18
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 20842
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Навряд ли кто-то будет полностью разбираться в этом, если только не заказать такую работу. Так как это нужно разобрать как работает с сессиями этот плагин, потом подстроить престашоповскую систему сессий к нему, работы много. Посмотрите как у ajaxfilemanager это организовано в class.session.php.
В общем, для безопасности лучше использовать ajaxfilemanager, там все уже сделано. А для TinyBrowser или не обращать внимание на то что кто-то сможет им пользоваться помимо админа, или допиливать самому.
Цитировать
$_SESSION[$tinybrowser['sessioncheck']] = "YES";
Это особых плюсов в плане безопасного доступа не дает (Если просто подставить YES - true, то вообще ничего не даст, проверка сессии всегда выдаст подтверждение ).  Такой же способ (но лучший вариант) есть в ссылках в первом посте - форум по TinyBrowser на сайте tinyMCE
Можно проверить авторизирован пользователь или нет. Как в примере для  phpBB, только с заменой переменой prestashop
$sessionFlag= false;
if($cookie->isLogged())
{
    $sessionFlag= true;
}
$_SESSION[$tinybrowser['sessioncheck']] = $sessionFlag;
Еще раз повторю, что это только на проверку авторизирован/нет, а не определение конкретного пользоваиеля, т.е. никакого разделения прав, никакий проверки, что за пользователь и т.д.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
27 Июня 2013, 14:07:07
Ответ #4
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105578
  • Репутация: +39546/-0
    • Просмотр профиля
    • Webstudio UwK
Цитировать
if($cookie->isLogged())
{
Для Prestashop 1.5 лучше так
Context::getContext()->employee->isLoggedBack()
Cоздание интернет сайтов Webstudio UwK
27 Июня 2013, 21:46:38
Ответ #5
  • Фрилансер
  • *
  • Сообщений: 142
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Жаль, ответов много, но КОНКРЕТНОГО решения для стандартного Prestashop 1.5.4.1 нет. Нужно решение, чтобы менеджером не мог воспользоваться никто, кроме сотрудников магазина.

В Ajaxfilemanager надо лезть и вручную прописывать в конфиге пароль и логин. И приходится в случае чего дважды логиниться = сначала в админке, а потом - как только понадобился файл-менеджер. Надо, чтобы  залогинился в адиинку - и пользуйся файл-менеджером. А по прямой ссылке  посторонний - не мог.
28 Июня 2013, 11:16:24
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
Цитировать
В Ajaxfilemanager надо лезть и вручную прописывать в конфиге пароль и логин. И приходится в случае чего дважды логиниться = сначала в админке, а потом - как только понадобился файл-менеджер. Надо, чтобы  залогинился в адиинку - и пользуйся файл-менеджером. А по прямой ссылке  посторонний - не мог.
Никуда не нужно лезть, если пользуешься Ajaxfilemanager. Там все уже настроено. Это TinyBrowser нужно допиливать.
Цитировать
Жаль, ответов много, но КОНКРЕТНОГО решения для стандартного Prestashop 1.5.4.1 нет.
Решение написали, куда еще подробнее?
$sessionFlag= Context::getContext()->employee->isLoggedBack();
$_SESSION[$tinybrowser['sessioncheck']] = $sessionFlag;
Если не устраивает так нужно найти свое.
28 Июня 2013, 13:09:17
Ответ #7
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Цитата: ghhhhhh
В Ajaxfilemanager надо лезть и вручную прописывать в конфиге пароль и логин. И приходится в случае чего дважды логиниться = сначала в админке, а потом - как только понадобился файл-менеджер. Надо, чтобы  залогинился в адиинку - и пользуйся файл-менеджером. А по прямой ссылке  посторонний - не мог.
Работа с Ajaxfilemanager в prestashop закрыта от несанкционированного пользования. Не возможно воспользоваться Ajaxfilemanager не пройдя авторизацию в БО. Если Вы знаете о том, как обойти это ограничение, то напишите, как проявляется, когда, какие действия дают свободный доступ к Ajaxfilemanager. Так можно будет найти решение и исправить эту проблему.
28 Июня 2013, 21:49:30
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 142
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ввожу как написал Coder, в файл конфигурации плагина config_tinybrowser.php:

session_start(); // do not change this line

$sessionFlag= Context::getContext()->employee->isLoggedBack();
$_SESSION[$tinybrowser['sessioncheck']] = $sessionFlag;
//$_SESSION['tinybrowser']['sessionsecured'] = true; // enables session-based security (default is true)
//$_SESSION['tinybrowser']['sessioncheck'] = 'auth_user'; // name of session variable to check

// Set developer debugging true / false  - if true, no sessioncheck is performed
// and it lets us make more focus on functionality than security
$_SESSION['tinybrowser']['debug_mode'] = false;


Выдает ошибку:

Fatal error: Class 'Context' not found in W:\domains\mydomain.loc\modules\tinymceplus\js\tiny_mce\plugins\tinybrowser\config_tinybrowser.php on line 23

23-я строка - это: $sessionFlag= Context::getContext()->employee->isLoggedBack();




28 Июня 2013, 22:00:04
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 142
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
to Виктор Демидов:

С авторизацией доступа Вы правы - проверил. Но в Ajaxfilemanager не меньше проблем, чем в tinyBrowser.  Начиная с негенерации превьюшек в последних версиях PHP, неработающим поиском-фильтрацией и т.д. Наверно все можно править, залезая в код.

Но я ищу альтернативный файл-менеджер:
-бесплатный,
-с работающими функциями поиска (картинок много),
-не зависящий от версии PHP на сервере
-требующий в конфигурировании для начала только настройки папок загрузки
-с массовой загрузкой файлов, а не по одному
и т.д.
Потому и остановился на tinyBrowser
29 Июня 2013, 14:01:22
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 20842
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Цитата: ghhhhhh
Ввожу как написал Coder, в файл конфигурации плагина config_tinybrowser.php
Выдает ошибку:
Fatal error: Class 'Context' not found in W:\domains\mydomain.loc\modules\tinymceplus\js\tiny_mce\plugins\tinybrowser\config_tinybrowser.php on line 23
23-я строка - это: $sessionFlag= Context::getContext()->employee->isLoggedBack();
Вы не внимательно читаете, то что советывают. Я написал где смотртеть пример
Цитировать
Как в примере для  phpBB, только с заменой переменой prestashop
Вставляете переменные prestashop в стронний файл и думаете, что будет работать.
Читайте справку, как пользоваться переменными prestashop на своих страницах.
// Cookies
// All the information stored within a cookie is available using this code:
$this->context->cookie->variable;
// If you need to access the PrestaShop cookie from non-PrestaShop code, you can use this code:
include_once('path_to_prestashop/config/config.inc.php');
include_once('path_to_prestashop/config/settings.inc.php');
include_once('path_to_prestashop/classes/Cookie.php');
$cookie = new Cookie('ps'); // Use "psAdmin" to read an employee's cookie.
Цитировать
Жаль, ответов много, но КОНКРЕТНОГО решения для стандартного Prestashop 1.5.4.1 нет.
Был вопрос, какое значение присвоить  переменной
$_SESSION[$tinybrowser['sessioncheck']]получен конкретный ответ - Нужно сделать проверку сессии, авторизирован пользователь и у него есть права на доступ к функциям админки, Да/Нет и является этим значением.
Цитировать
Навряд ли кто-то будет полностью разбираться в этом, если только не заказать такую работу. Так как это нужно разобрать как работает с сессиями этот плагин, потом подстроить престашоповскую систему сессий к нему, работы много. Посмотрите как у ajaxfilemanager это организовано
Даже не разбираясь в программировании (не могу представить ситуацию, когда я заказываю сделать магазин у человека, который не знает как его сделать и не имеет нормально программиста для этой работы), можно посмотреть примеры и собрать решение из готовых кусков.
Что подставить указали, пример как сделать указали, этого мало нужно еще и готовое решение выдать, потом его протестировать, ошибки исправить.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Июня 2013, 17:56:34
Ответ #11
  • Фрилансер
  • *
  • Сообщений: 142
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я делаю не за деньги своим знакомым. В принципе стандартный Prestashop может поставить и не программист. Но в любом случае спасибо. Разберемся.




30 Июня 2013, 23:20:09
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
Мы все не за деньги, а за их количество. Помогать можно тем, кто хочет что-то сделать сам. А когда тебя тупо раскручивают
Цитировать
Жаль, ответов много, но КОНКРЕТНОГО решения для стандартного Prestashop 1.5.4.1 нет.
тут помогать, себя не уважать. Может и не в этом случае, только без обид.
 
01 Июля 2013, 20:46:34
Ответ #13
  • Фрилансер
  • *
  • Сообщений: 142
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я абсолютно без обид. Вопрос зачем тогда форум. И раскрутки в вопросе никакого не вижу. Вопрос так можно поставить? Как в стандартной установке Prestashop v1.5.4.1 вместо ajaxfilemanager установить стандартный TinyBrowser с закрытием доступа неадминистраторам?  Разве я просил сделать это для какого-то конкретного сайта, где возникли эти проблемы? Это универсальное решение для всех. Было бы. Если бы вы дали такое решение и указали бы  что прописывавать в каких файлах, в каких строках это прописывать. Для стандартного плагина и стандартного дистрибутива они одинаковы.


А если это форум чисто для программистов и знающих PHP, тогда объявите это в политике форума. И сделайте доступ как сделал автор того же Ajaxfilemanager для своего форума. Для регистрации надо в качестве капчи для ввести результат какого-то куска программного кода.  И весь вопрос.
02 Июля 2013, 11:47:52
Ответ #14
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 1100
  • Репутация: +336/-0
  • Job-Freelance - работа для специалистов PrestaShop
    • Просмотр профиля
    • Job Freelance - удаленная работа программистам, веб-мастерам и дизайнерам
А если это форум чисто для программистов и знающих PHP, тогда объявите это в политике форума. И сделайте доступ как сделал автор того же Ajaxfilemanager для своего форума. Для регистрации надо в качестве капчи для ввести результат какого-то куска программного кода.  И весь вопрос.
Это Вы зря так думаете. Я не программист, для работы предпочитаю нанимать профессионалов. Но иногда возникают вопросы, которые хотелось бы понять самому. Тут на помощь и приходит форум. Здесь реально помогают. Только нужно самому иметь желание разбираться.
То что Вы хотели сделать, это не универсальное решение для всех. Так как ajaxfilemanager уставновлен в prestashop командой разработчиков и проверен временем, то доверия к этому файловому-менеджеру больше.  Вы же хотите изменить часть системы, причем часть которая входит в систему администрирования,  под свои требования. Я бы не стал пользоваться таким решением, так как это не соотвестует уровню безопасности интернет-магазина. Все плюсы, что Вы получите от tinybrowser не важны по сравнению с тем, что получаете проблемы с безопасностью.

Почитайте внимательно этот форум, здесь программистов от силы 5-10%, а остальные простые пользователи prestashop. И самое часто встречающее слово - спасибо.
Job Freelance - предложения от европейских работодателей для  программистов, веб-мастеров и дизайнеров - специалистам по Magento и PrestaShop.