Рейтинг: 0  
На голосовании
Предложил Tarasov Igor 13.02.2018 17:24:47

Сделать поле login в таблице пользователей уникальным

Столкнулись с проблемой. Сделали авторизацию на сайте по email адресу, а не по логину.
Зарегали пользователя с логином и мылом test@test.ru
Подключили авторизацию через соцсети. Решили зайти на сайт через ВК, где тоже стоит почта test@test.ru
В результате получили дублирование пользователей как по логину, так и мылу.
Т.е. получили два абсолютно одинаковых пользователя в системе, разные у них только ID
Получается ни на уровне кода, ни на уровне БД не проверяется должным образом уникальность пользователей по полям login и email. Пришлось решать проблему костылями.


Как ни странно в битриксе такое за ошибку не считают:
"Такое может быть и это не является ошибкой. Уникальность проверяется только для внутренних пользователей сайта, которыми не являются пользователи, авторизованные через соц. сети. "
Рейтинг: 8.5083  
На голосовании
Предложил Юрий Кудренко 09.11.2017 11:10:06

Добавить в настройки интерфейса галку "Не показывать помощника"

В настройках интерфейса нужна галочка "Не показывать помощника". Раздражает, когда он, время от времени, вылазит и начинает тыкать пальцем в сторону кнопки "Справка". При этом закрывает собой элементы управления и приходится ждать, пока он сделает свою работу.
Или, как вариант, не показывать его пользователям из группы "Администратор".
Рейтинг: 0  
Внедрено
Предложил Ганин Дмитрий 26.06.2017 21:49:01

Баг в админке

Добрый вечер!
При установке bitrix версии standart выскакивает ошибка (версия php 7.1)



А все из-за того, что переменная (1) $arSqlWhere определен как строка, а далее код работает с ней как с массивом (2). Лечится заменой на $arSqlWhere =  []; // на что как бы намекает название переменной
Рейтинг: 0  
Ответил Жуков Евгений 27.06.2017 13:02:30
Исправлено в main 16.5.9.

P.S. Сообщения об ошибках продукта, подобных этой, необходимо отправлять в техподдержку, а не на сайт идей.
Рейтинг: 0  
На голосовании
Предложил Ганин Дмитрий 17.06.2017 13:38:42

Не хватает класса в главном модуле

В методе Bitrix\Main\Security\CurrentUser::createFromArray(array $data)

есть проверка входного массива данных:
 if (!isset($data["USER_ID"]) || !Main\Type\Int::isInteger($data["USER_ID"]))
   throw new Main\ArgumentOutOfRangeException("data");
Во первых в системе нет класса Bitrix\Main\Type\Int - редакция стандарт, скачивал сегодня новую для проверки наличия этого класса там - не нашел.
Во вторых $data["USER_ID"] (по крайней мере из вызова \Bitrix\Main\Security\Authentication::getUserBySession() ) имеет тип string, соответственно всегда будет вылетать исключение.
Рейтинг: 8.5952  
На голосовании
Предложил Статиевский Данила 28.03.2017 06:49:47

Сделать выбор сайта для временного закрытия публичной части

Сейчас служебная процедура "Временное закрытие публичной части сайта" из настроек главного модуля не учитывает многосайтовость и закрывает публичную часть всех сайтов на системе управления.
Мне кажется, что достаточно очевидна необходимость выборочного закрытия публичной части для выборочных сайтов на одной системе управления.
Рейтинг: 1.1999  
Новая
Предложил Ульянов Владимир 14.07.2016 06:20:22

HttpClient, асинхронность

В документации по вебсокетам в php указанно, что можно работать асинхронно ( http://php.net/manual/ru/function.stream-socket-client.php ), однако в классе httpClient нет такой возможности.

Просьба добавить.
Рейтинг: 1.8443  
На голосовании
Предложил Шишкин Алексей 17.08.2015 17:10:55

Режим AJAX для компонентов с проверкой id компонента

Если на странице 2 аяксовых компонента, то отрабатывает первый из них. (Проверялось на корзине и веб формах).
В компоненте корзины

if ($_REQUEST["AJAX_CALL"] == "Y" || $_REQUEST["is_ajax_post"] == "Y") {
 die();
}
Все что после - идёт лесом.
По идее данные должны соотносится с компонентом, которому они предназначаются.

З.Ы. Я не говрю уже о

preg_match_all('/action=(["\']{1})(.*?)\1/i', $arData[$key], $arAction);
$url = $arAction[2][0];

if ($url === '' || $this->__isAjaxURL($url))
{
 $arData[$key] = CAjax::GetForm($arData[$key+1], 'comp_'.$this->componentID, $this->componentID, true, $this->bShadow);
}
else
{
 $new_url = str_replace(CAjax::GetSessionParam($this->componentID), '', $url);
 $arData[$key] = str_replace($url, $new_url, $arData[$key]);
}

$bDataChanged = true; 
в CComponentAjax.
В общем возмущению нет предела.
Спрашивается, для чего нужны компоненты, если ничего толком не работает?
З.Ы.Ы Битрикс такой битрикс
Рейтинг: 13.702  
На голосовании
Предложил Морозов Артем 23.06.2015 13:26:58

Расширение "Проверка сайта"

Столкнулись с проблемой у клиента - не работает композит.
"Проверка сайта" проходит успешно, НО при этом не проверяется:
  1. Версия PHP
  2. Версия Акселератора (стабильная, dev итд итп)
  3. И не проверяется тип Веб-сервера (у нас оказался LightSpeed)
  4. наличие Suhosin (который не рекомендуется)
То-есть смотришь — все должно работать, а по факту:
PHP 5.6 - не поддерживается
ZendOpCache - нестабильной версии


а также - сервер LightSpeed, хотя в требованиях Битрикса фигурирует Apache не ниже 1.3
Туда-же проверку на suhosin который не рекомендуется.
Рейтинг: 1.4102  
На голосовании
Предложил Зайцев Артемий 26.11.2014 18:12:55

Почтовые шаблоны по умолчанию. Без них не могу добавлять второй сайт

При создании дополнительного сайта столкнулся с огромной проблемой. Где взять нормальные шаблоны для писем?

На первом сайте предыдущий программист половину шаблонов удалил, а оставшиеся отредактировал. Как я могу скопировать его шаблоны к себе во второй сайт? Где мне взять нормальные стандартные шаблоны?

Если я никакие почтовые шаблоны не создам, то никакие письма отправляться не будут.

При создании сайта хочу вариант: "создать новые почтовые шаблоны для сайта"




Причем вариант "Создать новые" должен быть выбран по умолчанию. Вариант "не создавать", который сейчас предлагается, крайне опасен. Потому что можно легко получить сайт, в котором не будет работать почта.

Битриксу надо всего-лишь в каждом модуле в файле /install/index.php добавить метод, например,

iblock::CreateEventTemplates($site_id);
vote::CreateEventTemplates($site_id);
askaron_mailmanager::CreateEventTemplates($site_id);

который создаст почтовые шаблоны для конкретного сайта.

Для нового сайта можно будет легко создать новые шаблоны, вместо мучений с шаблонами предыдущего разработчика.

В настоящее время я не знаю, как создать второй сайт без проблем.

------

Еще появится роскошная возможность: можно будет при желании снести все почтовые шаблоны и пересоздать их заново для действующего сайта.

Если добавить параметр:
iblock::CreateEventTemplates($site_id, $bUpdateIfExists);

то и удалять не придется. Достаточно будет сделать кнопку, которая пройдет по всем модулям и обновит шаблоны писем на более новые. Или обновит шаблоны писем конкретного модуля.
Рейтинг: 17.5832  
На голосовании
Предложил Шишкин Алексей 15.04.2014 15:25:31

Показывать пользователям сообщение об окончании сессии для каждого сайта в отдельности

Данная опция в контексте многосайтовости должна быть в настройках сайта, а не главного модуля.
Также не плохо бы предусмотреть шаблоны данного сообщения для каждого сайта.
Рейтинг: 3.0147  
Новая
Предложил Шишкин Алексей 02.04.2014 10:18:25

Запрашивать подтверждение регистрации по E-mail для каждого сайта в отдельности

В парадигме многосайтовости данная опция для настроек модуля является неуместной. На различных сайтах возможна различная логика регистрации. Данный параметр необходимо вынести в настройки сайта. Сейчас же приходится копировать компонент main.register в свое пространство, и там принудительно задавать опцию для конкретного сайта:

//$bConfirmReq = COption::GetOptionString("main", "new_user_registration_email_confirmation", "N") == "Y";
// For my site makes it own
$bConfirmReq = "Y";
 
Рейтинг: 24.2066  
На голосовании
Предложил Сеть магазинов "Магнит" 21.03.2014 16:48:21

Добавить в тест проверки модифицированности ядра информацию о недостающих и лишних файлах

В данный момент проверяются только существующие файлы ядра, но бывает, что по каким-то причинам в ядре не хватает файлов и тогда тест ничего не скажет по этому поводу.
Хотелось бы при прохождении теста получать информацию о недостающих файлах ядра и, желательно, о лишних (это бы позволило находить вирусы и различные бэкдоры).
Рейтинг: 1  
На голосовании
Предложил Эльдар Рахимбердин 15.01.2014 15:46:13

Режим вывода ошибок (не показывать E_DEPRECATED)

В настройках главного модуля можно указать режим вывода ошибок.
Ни один режим кроме "Не выводить" не позволяет скрыть ошибки типа E_DEPRECATED
Всё дело в том, что в битриксе задается значение:

32759 (E_ALL & ~E_NOTICE | E_STRICT)

Наверное, было бы корректнее указывать конкретные типы ошибок:

 error_reporting(E_ERROR | E_WARNING | E_PARSE);