[SendIt 2.2.0] Авторизация по любому полю. Генерация username.

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

Генерация username

Как было раньше. В качестве username устанавливалось значение поля, ключ которого был передан в параметре usernameField.

Как стало теперь. Если параметр usernameField отсутствует в пресете (по умолчанию отсутствует) или он равен username и в данных с фронта в поле с этим ключом нет значения, будет сгенерирован username.

!!! ВАЖНО!!!
При использовании генерации username вам следует учитывать тот факт, что какие бы данные ни вводил пользователь всегда будет генерироваться УНИКАЛЬНЫЙ username. Таким образом может быть создано неограниченное количество пользователей с одинаковыми данными, но разными username. Другим словами проверка уникальности данных пользователя проходящего регистрацию лежит на разработчике сайта.

Если вам это не нужно, добавьте параметр usernameField в пресет с нужным значением.

Авторизация по любому полю

Как было раньше. В параметре usernameField передавался ключ поля, в котором пользователь указывал свой username.

Как стало теперь. В параметре usernameField передается ключ поля, по которому будет найден username пользователя. Таким образом пользователь может ввести, например, свой номер телефона и будет авторизован по нему, при этом username может быть любым.

!!! ВАЖНО!!!
Значение в поле, по которому будет происходить поиск username, должно быть уникальным для каждого пользователя.

Спасибо за внимание!
Артур Шевченко
21 февраля 2025, 14:24
modx.pro
Поблагодарить автора Отправить деньги

Комментарии: 10

Дима Касаткин
24 февраля 2025, 18:25
0
Привет! Спасибо за полезный апдейт. Так глядишь и совсем забудем когда-то популярный компонент Login и даже возможно Office — потому что таких удобных фишечек там нет, а костыли уж надоели :)
    Артур Шевченко
    24 февраля 2025, 19:40
    0
    популярный компонент Login
    По моему скромному мнению, его давно надо забыть, так как он не умеет в ajax.
    Maks
    26 февраля 2025, 13:59
    0
    По прежнему не доступ для скачивания под modx 3
    vectorserver
    28 февраля 2025, 13:40
    0
    Красава!
      Ruslan
      05 марта 2025, 12:45
      0
      Как раз делал авторизацию / регистрацию, и протестировал. Сработало на отлично.
      Но вот так же возник вопрос по поводу параметра «usergroupsField» при регистрации.
      В документации написано что это «имя поля выбора группы»
      Я в пресете указал
      'usergroupsField' => 'usergroup',
      а сама форма HTML имеет такой выбор
      <input type="radio" name="usergroup" value="2" checked>
      <input type="radio" name="usergroup" value="3">
      Но регистрация не проходит в нужную группу.
      В документации примера не нашел.
      Можете подсказать это так работает или я не правильно понял смысл этого параметра?
        Артур Шевченко
        05 марта 2025, 22:30
        0
        В целом всё правильно ты понял, но в поле usergroup должен быть массив. В следующем обновлении сделаю так, чтобы можно было передавать строку.
          Ruslan
          06 марта 2025, 10:18
          0
          Сегодня обновился, и всё сработало.
          Теперь очень удобно.

          Спасибо большое за ваш труд.

          Если можно, можете уточнить еще момент.
          Наткнулся в документации при авторизации на такой параметр.
          'errorFieldName' => 'errorLogin'
          написано — в этом параметре необходимо указать имя скрытого поля, в которое будет записан текст ошибки авторизации, если оставить пустым ошибка будет показана во вплывающем сообщении.
          Я правильно понимаю, что если в форме будет input поле как в вашем примере, то сообщение об удачной или не удачной авторизации должно появится в этом поле?
          Если так, то почему то сообщение не работает оно всё так же во всплывающем окне отображается. Или я опять не так всё понял.
            Артур Шевченко
            06 марта 2025, 10:41
            +1
            Смотри. Исторически так сложилось, что в форме есть поля и ошибки связаны с этими полями. Чтобы связать текст ошибки с полем нужно добавить блок с атрибутом data-si-error=«fieldName» где fieldName имя проверяемого поля. При авторизации проверяются сразу два поля Логин и Пароль, так вот параметр 'errorFieldName' нужен чтобы связать ошибку авторизации с полем. Можно с логином, можно с паролем, а я рекомендую делать скрытое поле.

            P.S. описание параметра в доке не очень понятное надо исправить.
              Ruslan
              06 марта 2025, 13:02
              0
              Теперь всё понятно.
              Спасибо за разъяснение.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        10