[Решено] Авторизация Customer`а по first_name

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
alexdirty
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 03 ноя 2013, 23:31

[Решено] Авторизация Customer`а по first_name

Сообщение alexdirty » 26 дек 2013, 14:02

Используется OTRS 3.2.11
Авторизация по DB.

Необходимо сделать авторизацию Customer`а не по login:pw а по first_name:last_name

Например для пароля, в web интерфейсе в Framework -> Frontend::Customer::Auth, с помощью параметра Customer::AuthModule::DB::CustomerPassword можно явно указать какое поле из Mysql берётся в роли пароля, указал last_name и всё ОК, пароль берётся именно из last_name в mysql.

НО, подскажите пожалуйста как это реализовать для логина? Где в конфиге это можно указать?

Или, как сделать, что бы login при регистрации записывался в mysql не из переменной e-mail, а из FirstName ?
Последний раз редактировалось alexdirty 27 дек 2013, 11:06, всего редактировалось 1 раз.

alexdirty
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 03 ноя 2013, 23:31

Re: Авторизация Customer`а по first_name

Сообщение alexdirty » 26 дек 2013, 15:24

Разобрался:

в config.pm нужно внести изменения в маппинг:

Было:

Код: Выделить всё

[ 'UserLogin',      'Username',   'login',      1, 1, 'var', '', 0 ],
Стало:

Код: Выделить всё

[ 'UserFirstname',  'Firstname',   'login',      1, 1, 'var', '', 0 ],

Но, теперь проблема с авторизацией:
Authentication succeeded, but no customer record is found in the customer backend. Please contact your administrator.

В логах:
No such user 'mail@yandex.ru'!
Thu Dec 26 16:43:24 2013 notice OTRS-CGI-11 CustomerUser: mail@yandex.ru Authentication ok (REMOTE_ADDR: 192.168.13.7).

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Авторизация Customer`а по first_name

Сообщение alexus » 26 дек 2013, 16:12

Login - это системная вещь. Переопределить, конечно, можно, но это очень проблематично. И обновляться замучаетесь потом. Лучше так не надо делать. Тем более, что логин ДОЛЖЕН БЫТЬ уникальным. Как Вы это сделаете для имени?
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

alexdirty
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 03 ноя 2013, 23:31

Re: Авторизация Customer`а по first_name

Сообщение alexdirty » 26 дек 2013, 16:19

alexus писал(а):Login - это системная вещь. Переопределить, конечно, можно, но это очень проблематично. И обновляться замучаетесь потом. Лучше так не надо делать. Тем более, что логин ДОЛЖЕН БЫТЬ уникальным. Как Вы это сделаете для имени?
Спасибо.
first name будет уникальным, так как в него будет подставлятся id пользователя из другой базы.


Основная задача - это регистрация пользователя со своим id и паролем.
Как можно реализовать регистрацию, что бы в итоге логином был не e-mail а свободное поле при регистрации, например first name?

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Авторизация Customer`а по first_name

Сообщение alexus » 26 дек 2013, 17:59

Логин - это логин, email - это email. Email подставляется КАК логин клиента, если пришло письмо, а клиент не найдет в базе с таким email.
Не надо делать белое черным и наоборот. Пусть ваш ID и будет login! Если нет имени и фамилии - сделайте их необязательными.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

alexdirty
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 03 ноя 2013, 23:31

Re: Авторизация Customer`а по first_name

Сообщение alexdirty » 26 дек 2013, 18:39

alexus писал(а):Пусть ваш ID и будет login! Если нет имени и фамилии - сделайте их необязательными.
Как зарегистрировать кастомера, используя самостоятельную регистрцию в веб-интерфейсе пользователя (customer.pl), что бы логином был не e-mail, а произвольное поле, например тот же FirstName в которое будет введен его ID?

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Авторизация Customer`а по first_name

Сообщение alexus » 27 дек 2013, 00:19

Надо просто переписать код для страницы регистрации и всё.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

alexdirty
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 03 ноя 2013, 23:31

Re: Авторизация Customer`а по first_name

Сообщение alexdirty » 27 дек 2013, 11:06

Спасибо, разобрался.
Нужно было просто в CustomerLogin.dtl в соответствующее место добавить

Код: Выделить всё

                   <div class="NewLine">
                        <label class="Mandatory" for="UserLogin"><span class="Marker">*</span> $Text{"Username"}</label>
                        <input title="$Text{"Your User Login"}" name="Username" type="text" id="UserLogin" maxlength="100" value="$QData{"UserLogin"}" class="W50pc Validate_Required"/>
                        <div id="FirstNameError" class="TooltipErrorMessage"><p>$Text{"This field is required."}</p></div>
                    </div>

Ответить