WildRAID Опубликовано 7 Октября 2007 Жалоба Поделиться Опубликовано 7 Октября 2007 Название: Мультиники v2.0Добавил: WildRAIDДобавлен: 07 Окт 2007Обновлен: 16 Янв 2009Категория: IP.Board 2.3.x Данная модификация позволяет объединять свои учётные записи на форуме и свободно переключаться между ними без ввода пароля. Что убрано:Возможность выбирать от имени какого мультиника пишетсяредактируется сообщение (конфликты с другими модами, излишнее вмешательство в ядро и логику работы форума).Выдача мультам прав на модераторство в конкретных разделах, если у одного из пользователей они есть (непрозрачно).Что добавилось:Возможность быстрого создания новых мультов, без необходимости каждый раз проходить полную процедуру регистрации.Возможность выбрать "основного мульта", на email которого будут приходить письма, адресованные другим мультам.Возможность установить "автопереключение" для определённых форумов, при котором активный пользователь будет автоматически меняться на указанного в настройках для этого форума.Ещё что-то, уже не вспомню. Нажмите здесь, чтобы скачать файл Ссылка на комментарий Поделиться на других сайтах Прочее
igramnet Опубликовано 9 Октября 2007 Жалоба Поделиться Опубликовано 9 Октября 2007 1. Как с безопасностью у хака?2. При создании темы меню пользователя и получаю "Hacking attempt!" Это если менять пользователя вверху около надписи "Вошли как: ..." Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 10 Октября 2007 Автор Жалоба Поделиться Опубликовано 10 Октября 2007 1. Как с безопасностью у хака? Везде на входящие данные стоят проверки, действительно ли со своими мультами мы работаем. Искусственно подменять их бесполезно. В том случае, если это все же происходит, как раз должно писать "Hacking attempt", или не изменять данные в случае попытки ответа от другого имени. Далее. Объединение между учетными записями происходит только при вводе логина\пароля для той учетки, с которой хочется соединиться. Причем если мы соединяемся с такой учетной записью, у которой уже были мульты, то окажемся связаны и с ними. Другими словами, если злоумышленник получит пароль от одного аккаунта, то у него будет доступ и ко всем остальным. С соответсвующими правами и уровнями доступа. Впрочем, непосредственно за админку можно не опасаться - только те пользователи, которые явно находятся в группе администраторов, имеют доступ в админку. Не их мульты ни в коем случае. 2. При создании темы меню пользователя и получаю "Hacking attempt!" Это если менять пользователя вверху около надписи "Вошли как: ..." Довольно странно. А можно поподробнее ... это на тестовом форуме случается, или уже на вашем после установки? Просто уже несколько человек тестировали - проблем не находили. Вообще, "Hacking attempt" пишет всего лишь в двух случаях. Первый - если зафиксирована попытка изменить активного пользователя на самого себя. Второй - если пытаются изменить активного пользователя на НЕ своего мульта. Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 10 Октября 2007 Жалоба Поделиться Опубликовано 10 Октября 2007 "Hacking attempt"Все верно. Уже даже проверено случайно. Когда связь была с одним аккаунтом разорвана, а страницав опере скэшировалась. При попытке что-то написать - это как раз и выдавало. Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 10 Октября 2007 Жалоба Поделиться Опубликовано 10 Октября 2007 Сайт для примера что-то недоступен.Для текстовой версии кстати там сделано? И с аяксом как быстрое редактирование будет происходить?ПМки будут приходить на основной акк, если челу отправят их на акк мульта? Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 10 Октября 2007 Автор Жалоба Поделиться Опубликовано 10 Октября 2007 Сайт для примера что-то недоступен. У меня работает. Для текстовой версии кстати там сделано? Оформление как цитата. Версия для печати то же самое. И с аяксом как быстрое редактирование будет происходить? Со стандартным - да. Непосредственно за сохранение сообщения отвечает одна функция и в быстром, и в обычном редактировании. ПМки будут приходить на основной акк, если челу отправят их на акк мульта? Нет. Нет самого понятия основного аккаунта. Все равноправны. Все верно. Уже даже проверено случайно. Когда связь была с одним аккаунтом разорвана, а страницав опере скэшировалась. При попытке что-то написать - это как раз и выдавало. Тогда хорошо все.) Так и должно быть. Главное, чтобы на НЕ мультов не переключало. Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 13 Октября 2007 Жалоба Поделиться Опубликовано 13 Октября 2007 У меня для приватных топиков есть в ./sources/action_public/topics.php вот такой фот фрагмент кода, где происходит непосредственно проверка (лишнее не указываю). Номера пользователей хранятся в $this->topic['topic_read_perms'] через заятую. Подскажи пожалуйста, как подружить это с мультиниками? if( ( $this->ipsclass->member['id'] != $this->topic['starter_id'] ) && ! preg_match("/(^|,)".$this->ipsclass->member['id']."(,|$)/", $this->topic['topic_read_perms']) ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files' ) ); } Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 13 Октября 2007 Автор Жалоба Поделиться Опубликовано 13 Октября 2007 Если preg_match нравится, то, видимо, можно вот так: if( $this->topic['starter_id'] != $this->ipsclass->member['id'] and !$this->ipsclass->mult_members->is_mult($this->topic['starter_id']) and !preg_match("/(^|,)".'(' . $this->ipsclass->member['id'] . '|' . implode('|', array_flip($this->ipsclass->mult_members->mults)) . ')'."(,|$)/", $this->topic['topic_read_perms']) ) Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 13 Октября 2007 Жалоба Поделиться Опубликовано 13 Октября 2007 Ну нравится или нет - это дело такое. Ты же знаешь, я в этом дуб дубом Мод готовый но под 2.1 я его просто перевела под 2.3 Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 13 Октября 2007 Автор Жалоба Поделиться Опубликовано 13 Октября 2007 А еще лучше вот так: if( $this->topic['starter_id'] != $this->ipsclass->member['id'] and !$this->ipsclass->mult_members->is_mult($this->topic['starter_id']) and !preg_match("/(^|,)".'(' . $this->ipsclass->member['id'] . '|' . str_replace(',', '|', $this->ipsclass->mult_members->mults_string) . ')'."(,|$)/", $this->topic['topic_read_perms']) ) Побыстрее. Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 13 Октября 2007 Жалоба Поделиться Опубликовано 13 Октября 2007 Спасибо. Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 13 Октября 2007 Жалоба Поделиться Опубликовано 13 Октября 2007 М, а в Текстовой версии и Версии для печати подобный вариант (есесно с модификациями переменных) работать не будет? Вот, например, для печативерсия. У меня не получилось %) if( $this->topic['topic_read_perms'] && $this->topic['topic_read_perms'] != '*' ) { if( ( $this->ipsclass->member['id'] != $this->topic['starter_id'] ) && ! preg_match("/(^|,)".$this->ipsclass->member['id']."(,|$)/", $this->topic['topic_read_perms']) ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'no_view_topic' ) ); } } Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 14 Октября 2007 Автор Жалоба Поделиться Опубликовано 14 Октября 2007 Будет. Просто вместо $this->ipsclass-> должно быть просто $ipsclass->. Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 16 Октября 2007 Жалоба Поделиться Опубликовано 16 Октября 2007 Не, не хочет. if( $topic['topic_read_perms'] && $topic['topic_read_perms'] != '*' ) { /* if( ( $ipsclass->member['id'] != $topic['starter_id'] ) && ! preg_match("/(^|,)".$ipsclass->member['id']."(,|$)/", $topic['topic_read_perms']) )*/ if( $ipsclass->member['id'] != $topic['starter_id'] and !$ipsclass->mult_members->is_mult($topic['starter_id']) and !preg_match("/(^|,)".'(' . $ipsclass->member['id'] . '|' . str_replace(',', '|', $ipsclass->mult_members->mults_string) . ')'."(,|$)/", $topic['topic_read_perms']) ) { $ipsclass->boink_it( $ipsclass->vars['board_url'].'/'.LOFI_NAME.'/index.php' ); } } echo на $ipsclass->mult_members->is_mult($topic['starter_id']) ничего не выдает. Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 17 Октября 2007 Автор Жалоба Поделиться Опубликовано 17 Октября 2007 echo на $ipsclass->mult_members->is_mult($topic['starter_id']) ничего не выдает. False выдает значит.) Просто оно в браузер никак не отображается. И условие внутри второго if должно выполняться в этом случае. Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 17 Октября 2007 Жалоба Поделиться Опубликовано 17 Октября 2007 А не должно выполняться. Так как мульт есть. Или я чивой-то не поняла. Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 17 Октября 2007 Автор Жалоба Поделиться Опубликовано 17 Октября 2007 Восклицательный знак - отрицание. Т.е. если выражение ложно, то возвращает истину. И наоборот. В данном случае логика выглядит так: Если № пользователя НЕ равен № автора темы,И автор темы НЕ является мультом текущего пользователя,И ни текущий пользователь, ни его мульты НЕ включены в список пользователей, которым разрешено просматривать данный топик, То перейти на главную страницу lo-fi версии. Другими словами, если мульт есть, то вызов boink_it пропускается, и скрипт работает дальше. Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 17 Октября 2007 Жалоба Поделиться Опубликовано 17 Октября 2007 Эт я поняла ) Я не настолько уже ) Я и говорю, что мульт есть, а boink_it все равно запускается. Т.е. В полной версии все работает, а тут нет. Ладно, зайду с другой стороны в topics.php строка echo $this->ipsclass->mult_members->mults_string; выдает мне результат 2. Т.е. аккаунт номер 3 соединен с аккаунтом номер два. Так? Та же самая строка тока echo $ipsclass->mult_members->mults_string; в текстовой версии ничего не выдает Вот... Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 17 Октября 2007 Автор Жалоба Поделиться Опубликовано 17 Октября 2007 Фантастически странно, т.к. и массив мультов, и строка, и все права создаются при инициализации класса. В /lofiversion/index.php есть ли следующий строки: require_once ROOT_PATH . "sources/classes/class_mult_members.php"; $ipsclass->mult_members = new mult_members(); $ipsclass->mult_members->ipsclass =& $ipsclass; $ipsclass->mult_members->init(); Особенно интересует последняя. Попробуй еще в index.php для lofiversion вставить куда-нибудь после инициализации класса:die(print_r($ipsclass->mult_members->mults)); Интересует, что напишет. +++++++++ Добавлено: Вообще, такое теоретически может происходить только в том случае, если не вызывается функция init для класса mult_members сразу после создания. Если бы сам класс некорректно загружался, то писало бы ошибки. Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 17 Октября 2007 Жалоба Поделиться Опубликовано 17 Октября 2007 Есть.. есть... я их раз сто перепроверила. Array ( ) 1 //PRIVATE_DATA_MOD require_once ROOT_PATH . "sources/classes/class_mult_members.php"; $ipsclass->mult_members = new mult_members(); $ipsclass->mult_members->ipsclass =& $ipsclass; $ipsclass->mult_members->init(); Вроде все как у тебя. Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 17 Октября 2007 Жалоба Поделиться Опубликовано 17 Октября 2007 Есть.. есть...А в каком месте лофайного index.php они есть? Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 17 Октября 2007 Автор Жалоба Поделиться Опубликовано 17 Октября 2007 В sources/classes/class_mult_members.php Найти:$this->have_mults = true; Добавить перед:die("!!!"); Посмотреть, будет ли "умирать" при открытии страниц в lo-fi версии. Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 18 Октября 2007 Автор Жалоба Поделиться Опубликовано 18 Октября 2007 Разобрались. В /lofiversion/index.php Найти (если есть):require_once ROOT_PATH . "sources/classes/class_mult_members.php"; $ipsclass->mult_members = new mult_members(); $ipsclass->mult_members->ipsclass =& $ipsclass; $ipsclass->mult_members->init(); Удалить. Найти:$ipsclass->member = $ipsclass->sess->authorise(); Добавить после:require_once ROOT_PATH . "sources/classes/class_mult_members.php"; $ipsclass->mult_members = new mult_members(); $ipsclass->mult_members->ipsclass =& $ipsclass; $ipsclass->mult_members->init(); Проблема была в том, что я работал с модифицированным index.php, в котором авторизация пользователя проходит раньше, чем в обычном.) Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 Offtopic: значит догадался. Ссылка на комментарий Поделиться на других сайтах Прочее
Vakhara Опубликовано 1 Ноября 2007 Жалоба Поделиться Опубликовано 1 Ноября 2007 Нашла ошибку.Если модер открывает полное редактирование поста другого автора, то автор меняется на имя модера. Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения