Imagesforyou.ru

IMG FOR YOU — ИНТЕРЬЕРНАЯ ФОТОСТУДИЯ
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Организация управления доступом в 1С-Битрикс

Организация управления доступом в 1С-Битрикс

Анатолий Е.

В декабре 2011 года компания 1С-Битрикс выпустила Управление Сайтом 11.0.10, и вывела управление правами доступа собственных модулей на новый уровень. К “классической триаде” обязательных методов любого модуля (InstallDB, InstallEvents и InstallFiles) добавился еще один, мало кому из программистов сегодня известный — InstallTasks. О нем и всех его аспектах и пойдет сегодня речь, но сначала немного теории.

Симптомы проблемы разлогинивания Битрикс24

Нашим специалистам отдела инфраструктуры поступила задача: на портале клиента наблюдается плавающее время разлогинивания. Иногда 5-10 минут, иногда 20-30 секунд. Фактически после любого действия и перехода на портале пользователя выкидывало на страницу авторизации.

Проблема наблюдалась на стороне всех пользователей, вне зависимости от того, являются они администраторами или нет, и выглядела следующим образом:

  1. Пользователь проходит авторизацию на портале.
  2. Совершает какое-либо действие – переходит в другой раздел сайта, создает сделку, просматривает уведомления.
  3. После нескольких операций пользователя на портале происходит разлогинивание – возврат на стартовую страницу Битрикс24.

Быстрое тестирование показало, что проблема наблюдается в разных браузерах и не зависит от них. Мы проверили три самых популярных браузера:

  • Google Chrome
  • Opera
  • Яндекс.Браузер

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

Добавляем пункт меню для списков в админке Битрикс

Администраторская панель в системе Битрикс является довольно мощным инструментом для управления сайтом. Как вы знаете, при выводе списка элементов в различных частях админки есть меню с различными действиями над элементами. В некоторых случаях требуется добавить свой обработчик, тем самым расширив стандартный функционал администраторской части сайта.

Существуют различные списки, например, такие как список разделов инфоблока, элементов, список заказов, и другие. При формировании списка, вместе с ним формируется меню-действий, и срабатывает событие OnAdminListDisplay. При необходимости мы можем вклиниться в меню действий для списков, уцепившись за событие в файле init.php. Далее поговорим об этом.

Читайте так же:
Видео гонки с рулем и педалями

Функция обработчик

Создать функцию, которая срабатывает при выводе списков в администраторской части можно таким образом:

Она будет вызываться всегда, когда будут открываться страницы со списками в панели администратора. А это значит, что скорее всего один пункт меню не всегда должен показываться во всех списках администраторской панели. Для этого можно сделать проверку типа списка, внутри функции. Для примера, давайте добавим пункт меню-обработчика для списка заказов.

Добавление пункта меню в заказах

Как мы знаем заказы логически и программно представляют из себя отдельные данные, и для них могут потребоваться уникальные обработчики. Поэтому чтобы отследить отдельно список заказов, мы можем уцепиться за свойство объекта меню — table_id.

Добавление обработчика для элементов в списке заказов:

В данной функции прописано условие, что подключаться пункт меню будет только в случае table_id равным tbl_sale_order.
В итоге получаем пункт меню для элементов в списке:

По нажатию на пункт меню, будет вызвана JavaScript функция с названием show_all_orders(). Данную функцию следует объявить в файле
/bitrix/php_interface/admin_header.php

В идеале – создать отдельный файл, с кодом обработчика, который будет включаться в admin_header.php.
Пример кода обработчика в admin_header.php:

Обработчик в данном случае просто перенаправит на отдельную страницу, передав id заказа. Реализовать логику обработки нажатия пункта меню можно как угодно, это уже вопрос конкретной задачи.

Пункт меню для групповых действий со списком

Аналогичным образом, можно добавить пункт меню-обработчика, для групповых операций.

Получаем пункт меню в списке групповых операций для элементов:

Добавление отдельной кнопки для групповых операций

Примеры, указанные выше отображают внедрение своего пункта меню. Можно на той же панели вывести отдельную кнопку, которая будет так же работать, как самостоятельная опция списка. Основное отличие в том, что мы добавляем параметр type со значением button. Это сообщает системе что мы добавляем отдельную кнопку на панели вне меню.

Читайте так же:
Видео долбоеба группа вк

В результате мы получаем отдельную кнопку на панели:

Добавлять свои пункты меню можно практически во всех местах где выводятся списки в панели администратора. В примерах, указанных выше мы зацеплялись к списку с заказами. Можно реализовать аналогичные пункты для элементов инфоблока. Для этого, как уже говорилось выше мы можем уцепиться за table_id в объекте меню.

Добавление пункта меню, для списка элементов инфоблока

Для наглядности примера, давайте выведем кнопку в списке элементов инфоблока. Аналогичным образом создаём обработчик:

Стоит обратить внимание на то, как формируется table_id для разных узлов инфоблока. К примеру, для разделов table_id будет начинаться с символа tbl_iblock_section_. Вывод в контекстном меню для элемента будет выглядеть в этом случае аналогичным образом:

Таким образом, можно добавлять свои пункты меню практически в любых списках администраторской части сайта.
В заключении так бы хотелось ещё добавить, что можно вывести содержимое объекта $list, чтобы иметь представление о том, как оно формируется.

При переходе в любой список в админ части будет выведено всё содержимое объекта $list, где вы можете посмотреть, как происходит компоновка меню. На этом у меня всё, надеюсь пост оказался для вас полезным!

Перейдите в панель управления виртуальным хостингом или панель управления виртуальным сервером. На панели меню слева перейдите в Главное (1) → Менеджер файлов (2).

Перейдите к папке /bitirx/modules/security/admin/. Найдите файл security_403.php и скачайте его на локальный компьютер или сделайте копию данного файла на сервере.

Внимание! Перед продолжение удостоверьтесь, что у вас есть резервная копия файла security_403.php

Откройте файл security_403.php — нажмите кнопку «Изменить». Очистите содержимое файла.

Сохраните изменения и проверьте доступ в админку сайта. Данная процедура отключает контроль доступа в админ панель и позволяет исправить ошибки системы безопасности 1С-Битрикс.

Читайте так же:
Видео в разрешении 3840×2160

Перейдите в административный раздел сайта: Настройки > Проактивная защита > Защита административного раздела

Настройте корректный список IP-адресов или выключите защиту по IP. После устранения ошибок восстановите файл security_403.php из резервной копии.

Добавление sftp пользователя в bitrixenv

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

Добавляем в систему группу dev-group.

Настроим chroot для всех пользователей этой группы, чтобы они не могли выйти за пределы каталога с сайтами при подключении к исходникам по sftp. Для этого редактируем файл /etc/ssh/sshd_config. Комментируем существующий параметр и добавляем новые.

Для применения настроек перезапускаем sshd.

Теперь создаем нового пользователя, который будет работать с сайтом.

devbitrix01имя нового пользователя
-g600принадлежность к группе с id 600, дефолтный id для группы bitrix в bitrixenv
-oключ, позволяющий создать пользователя с неуникальным id
-u600задаем id пользователя 600 как у пользователя bitrix в bitrixenv
-s /sbin/nologinуказываем shell, данном случае его отсутствие
-d /home/dev-groupдомашний каталог для пользователя

Если пользователю нужен будет доступ к консоли по ssh, то вместо /sbin/nologin укажите /bin/bash. Устанавливаем пароль для пользователя:

Теперь для того, чтобы заработал chroot по sftp, выставляем необходимые права доступа на домашний каталог пользователя:

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

Подключение по sftp к bitrix

Все правильно, я еще не добавил его в группу dev-group, для которой назначен chroot. Делаем это.

Отключитесь и подключитесь заново. Пользователь будет сразу попадать в свой домашний каталог, выхода из которого у него теперь нет. Дальше нам осталось добавить в этот каталог исходники сайта.

Читайте так же:
Видеокамера rekam dvc 340 отзывы

Как зайти в админку сайта на WordPress?

Напоследок мы узнаем, как зайти в админку сайта на WordPress. Сделать это довольно просто, как и в случае Битрикса. Нужно в адресной строке в URL страницы «http://site.ru" дописать /wp-admin/ — на вход в админкуили /wp-login.php – вход на страницу регистрации. Далее заполнить поля и пройдет авторизация.

Как зайти в админку сайта на WordPress.jpg

Если пароль был забыт, то под полем ввода имеется ссылка «Забыл пароль». Кликаем по ней и заполняем форму для получения нового пароля. Введите свой логин или Email, как обычный пользователь. Подтвердите смену пароля через почту.

Админка сайта хороший инструмент для работы и развития успешного сайта. Экономия времени и удобность в использование подтвердят этот вывод. Всем советуем его использовать. А что скажете Вы?

Вопросы

Надо ли отправлять запросы во все поисковые системы?

Хотя IndexNow использует на данный момент 2 поисковика, отправлять данные везде не стоит. Согласно протокола, поисковые системы, подключенные к IndexNow оповещают об изменениях друг друга самостоятельно. Достаточно отправить данные в одну из систем.

Как часто можно отправлять ссылки?

Яндекс говорит так: ограничений никаких нет, можно отправлять данные в любом количестве и с любой скоростью.

Но в то же время упоминается ответ HTTP 429 Too Many Requests, который говорит о том, что данные отправляются слишком часто.

Я отправил URL-адрес, что будет дальше?

IndexNow.org:

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

Что значит «понравится» ваш URL-адрес — не уточняется.

Я отправил URL-адрес, но не вижу, что он проиндексирован.

Использование IndexNow гарантирует, что поисковые системы будут знать об изменениях на вашем сайте. Использование IndexNow не гарантирует, поисковые системы будут выполнять обход контента или индексирование веб-страниц. Может потребоваться время, чтобы изменение отразилось в поисковых системах.

Читайте так же:
Видеокарты с vga разъемом

У меня используется несколько доменов, могу ли я использовать один ключ?

Один ключ можно использовать на неограниченном количестве доменов, но файл с ключем надо разместить на всех сайтах.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector