Управление пользователями

Модуль mod_accountman_pro служит для управления на сайте всеми пользователями благодаря системе управления сайтом InlifeCMS.

В системе есть два предопределенных пользователя: это «Администратор» с идентификатором, равным 1 и «Гость» с идентификатором, равным 2. Их данные можно редактировать, но удалить этих пользователей нельзя. Часто администраторам разрешаются все действия и пользователь «Администратор» управляет сайтом, а пользователь «Гость» нужен для того, чтобы описывать действия неавторизованных пользователей. До той поры, пока пользователь не авторизован на сайте его идентификатор id=2.

Управление группами пользователей

Группы пользователей формируются в виде древовидного списка. Если пользователь входит в дочернюю группу, то он является автоматически членом и родительской группы.

Когда мы заходим на стартовую страницу модуля управления пользователями, слева видим блок, который называется «Группы». В этом блоке - древовидный список, где самая верхняя родительская группа – root. Все дочерние группы от нее являются потомками.

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

Редактирование группы пользователей осуществляется путем нажатия на ссылку буквы е напротив каждой группы пользователей. Загружается интерфейс, в котором находится несколько закладок.

Первая закладка – «Параметры» группы:

  • Название группы, может быть любым: как русскоим, так и английским,
  • Описание служит для справки, т.е. когда администратор создает группу и составляет другому администратору справку, для чего он создает эту группу, для чего нужны члены группы, какую роль группа играет на сайте.
  • Модератор группы. Для того чтобы указать модератора – в поле «модератор» высвечивается идентификатор модератора и его имя. Если мы хотим во время редактирования группы поменять модератора, нужно кликнуть мышкой в поле ввода, ниже фамилии модератора и в этой строке начать вводить имя модератора. Сайт попытается найти это имя и предложит список, подходящий по имени, логину, либо email пользователей. Таким образом, сайт поможет быстрее найти того человека, которого мы хотим поставить в качестве модератора. Модератора обязательно нужно выбрать из списка, для того чтобы его задать.
  • Переместить в группу. Группа пользователей имеет древовидную структуру. Мы можем группу с ее дочерними группами переместить в другое место. Для этого служит интерфейс «Переместить в группу». Интерфейс заключается в том, что мы указываем ту группу, которая должна стать родительской группой для текущей группы.
  • Текущая позиция. Когда мы хотим поставить определенный порядок в группе, нужно указать текущую позицию, т.е. перечисляется список соседних групп (в настоящий момент). Если нужно будет переместить эту группу в другую группу, соответственно нужно поставить ее в определенном порядке. Для этого нужно отредактировать группу, переместить ее в родительскую, далее снова отредактировать, для того, чтобы сменить ее позицию, если она не устраивает.

 

Следующая закладка – «Члены группы».

Интерфейс членов групп делится на 2 этапа. Первый – когда кликаем закладку «Члены группы». При заходе на закладку, сайт загружает список текущих членов группы, которую мы редактируем. Всего пользователей может быть десятки тысяч, например, а членов конкретной группы - 3 человека, и чтобы не загружать всех пользователей, мы загружаем список только текущих пользователей. В начале списка есть две ссылки: Показать: «только членов группы» и «всех пользователей». Мы можем кликнуть на «всех пользователей», и тогда сайт загрузит полный список пользователей сайта для того, чтобы можно было отметить галочками тех пользователей, которые должны добавиться к данной группе.

Закладка «Сохранить» имеет такие же действия, функции, как и кнопка «Сохранить». Сделано это для того, чтобы не рисовать лишний раз кнопку вверху и внизу, потому что список групп может быть очень большим. Если мы находимся внизу, то кликаем кнопку «Сохранить», а если вверху, то проще нажать закладку «Сохранить».

Когда мы кликаем какую-либо группу пользователей под номером группы, над списком пользователей в группе меняются ее номер и название, модератор этой группы. Есть еще две ссылки: «Добавить группу» и «Импорт пользователей в группу». Кликаем на ссылку «Добавить группу», и нам высвечивается приглашение ввести наименование группы. После ввода названия группы модуль управления пользователями добавит новую группу в текущую группу. Выше есть еще ссылка – «Добавить группу в корень». Это значит, что выбрав эту ссылку, нам будет дано приглашение, чтобы ввести название этой группы, но группа добавится не в текущую, а станет дочерней от корневой группы root.

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

Управление пользователями.

В списке пользователей колонки:

  • id пользователя – идентификатор, уникальное число, присущее этому пользователю,
  • логин – поле, которое пользователь вводит при регистрации. Сужит для авторизации пользователя. Не совпадает с ФИО,
  • ФИО – наименование пользователя,
  • Email – контактный электронный почтовый адрес,
  • Телефон – контактный номер телефона.

Для того, чтобы быстро найти пользователя в текущей группе, не нужно смотреть все страницы этого списка, для этого существует внизу строка «Поиск в группе». Как только начинаем вводить в строке «Поиск в группе» часть, либо логина, либо email, либо имени пользователя, модуль производит поиск пользователя в текущей группе. Сверху от списка пользователей – наименование группы, пользователи которой показываются, номер текущей группы, модератор текущей группы.

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

При переходе в этом режим мы можем найти пользователя по логину, по email, либо по части его имени.

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

Действия над пользователями в текущей группе. Внизу списка пользователей находится три кнопки: «Новый», «Редактировать», «Удалить». При нажатии на «Новый» попадаем в раздел добавления нового пользователя. Часто для регистрации нужны только три поля: ФИО, логин, пароль. Модуль управления пользователями предлагает ввести наименование пользователя, его логин и пароль (два раза, для того, чтобы не ошибиться при наборе пароля).

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

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

Раздел «Дополнительная информация» содержит дополнительные поля, которые создаются на сайте для пользователя. Они нужны для выполнения задач конкретного сайта, существующего списка постоянных полей.Полей, которые есть у нас на сайте, может быть недостаточно. Например, если мы делаем баскетбольный сайт, то важно, чтобы для каждого игрока была возможность выводить информацию о его росте, весе, амплуа (нападающий, защитник, …), а для сайта, который представляет, например, какое-нибудь сообщество музыкантов, важно показать кто музыкант по профессии (скрипач, пианист), перечислить его любимых композиторов. Т.о., набор дополнительных полей для пользователя на каждом сайте может быть индивидуальным. Система управления сайтом InlifeCMS шла по такому пути развития, когда сформировался определенный круг обязательных полей, а дальше те возможности, которые мы хотим расширить по хранению информации о пользователе, реализуются в рамках расширения списков дополнительных полей.

Во время редактирования, помимо основных закладок, есть еще закладки: группы, фотографии, пароли.

В разделе «Группы» флагом отмечены те группы, членом которых может являться пользователь. Напротив каждой группы есть флажок «До». Если выделить его, то появится дата, до которой пользователь может входить в данную группу.

Закладка «Фотография» позволяет загрузить основную фотографию пользователя на сайт.

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

Мощным инструментом является интерфейс импорта пользователей в группу. Как производится импорт? Мы формируем файл, чаще Excel, в котором идут колонки, например, «имя пользователя», «email», «телефон». Записываем тип файла – например, «текстовый с разделителем на табуляции», в результате формируем csv-файл, который содержит разделители между полями табуляции. При клике на любую группу, а затем по ссылке «Импорт пользователей в группу», переходим к импорту пользователей в группу.

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

Далее идет настройка импорта. Она заключается в том, чтобы указать, какое поле будет использоваться в качестве логина. Это поле, как и идентификатор пользователя, должно быть уникальным, иначе у нескольких пользователей может совпасть логин, и сайт во время авторизации не узнает, какой из нескольких пользователей логинится. Задача модуля - заботиться о том, чтобы при импорте данных не произошло дублирование логинов пользователей. В зависимости от того, что может являться уникальным, например, либо наименование пользователя, либо email, можно выбрать, что использовать в качестве логина, предпочтительнее использовать email – это гораздо проще, чем, например ФИО. Дальше идет флажок – отправить новому пользователю письмо о том, что он зарегистрирован на сайте. Когда администратор сайта регистрирует пользователя на сайте, чтобы сам сайт написал, что новый пользователь добавлен на сайт. Модуль указывает в письме новому пользователю логин и пароль, следовательно, новый пользователь может заходить на сайт и выполнять какие-то действия для сайта, будучи авторизованным.

Переходим ко второму шагу импорта пользователей.

Под формой ввода имени файла и настроек выводится список строк и колонок, которые модуль распознал в загружаемом файле с пользователями. Первая строка – набор полей с выпадающими списками полей для импорта. Т.к. в файле импорта очередность и наличие полей могут быть любыми, то нам нужно вручную указать, какая колонка является каким полем для импорта. Обратите внимание, что дополнительные поля в списке указываются с помощью английских названий полей.

Если колонка не подлежит импорту, выберите в этой колонке из выпадающего списка «Пропустить». Если не нужно импортировать какие-то строки (как на рисунке первую строку, которая является заголовками полей), то Вы можете снять флажок слева от строки. Установили типы колонок, указали строки для импорта, жмем кнопку «Импортировать» внизу списка. Если появятся какие-то ошибки, модуль сообщит Вам об этом. Строки, которые уже проимпортировались, уже не будут отмечены флажками для повторного импорта после исправления ошибки.

Дополнительные поля пользователей

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

Типы дополнительных полей:

  • целое число;
  • вещественное, с плавающей точкой;
  • флаг – со значением 0 или 1 , т.е. «да» или «нет»;
  • строка;
  • список (значения списка указываются через запятую) и когда нужно будет выводить информацию о пользователе, то это ядро само поделит поле на элементы массива;
  • картинка – это дополнительное поле, при его загрузке указывается имя файла, загружается картинка в отдельном месте, которое относится к пользователям;
  • картинка для pm – картинка, которая сохраняется другим модулем под названием – picture_manager. При сохранении фотографии есть возможность автоматически получить несколько экземпляров этой же фотографии, только других размеров.

 

Каждое дополнительное поле задается параметрами:

  • Имя - должно состоять с использованием латинских букв и комбинаций цифр, знака «-». Это требование необходимо для построения индексов в базе данных, для построения которых могут использоваться английские буквы с использованием цифр.
  • Заголовок поля - значение дополнительного поля, которое высвечивается на этапе редактирования пользователя. Заголовок поля должен давать понять администратору, что собой представляет это поле.
  • Категория – это строковое значение. Если мы хотим, чтобы поля группировались в отдельную группу при редактировании пользователя, мы должны указать одну и ту же категорию для тех полей, которые мы хотим сгруппировать.
  • Тип поля. См. выше.
  • Позиция - свойство, которое определяет порядок вывода дополнительных полей при их редактировании.
  • Флажок «Только чтение» говорит о том, что это поле не включается в раздел дополнительной информации во время редактирования пользователя.
  • Флажок «Удалить» говорит о том, что мы хотим удалить дополнительное поле.

Для того, чтобы добавить новое поле, в конце таблицы существует строка с пустыми значениями, озаглавленная, как «Новое». За один раз можно добавить только одно новое дополнительное поле. Доступ к полям может быть осуществлен из шаблонов, когда с помощью плагина user_info можно получить информацию о пользователе, включая значения всех дополнительных полей. Значение поля можно получить по имени дополнительного поля, например, $user_data.height.

Настройка модуля.

В настоящий момент у модуля accountman_pro всего одна настройка - это группа изображений модуля picture_manager для дополнительных полей типа "картинка для PM". Если мы задаем дополнительное поле с типом «картинка для pm», то модуль будет сохранять картинки в той группе изображений, в которой мы указали в настройках. Это нужно для того, чтобы автоматом формировать для пользователя маленькие фотографии (превью). Нет необходимости самому предварительно готовить две фотографии: большую и маленькую, маленькая автоматически сформируется. Маленькие фотографии нужны для вывода фотографий пользователей в списке, где не нужны большие фотографии. А большая фотография выводится, например, уже при просмотре пользователя.