[Решено] Авторизация Customer`а по first_name
Модератор: ykolesnikov
[Решено] Авторизация Customer`а по first_name
Используется 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 ?
Авторизация по 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 раз.
Re: Авторизация Customer`а по first_name
Разобрался:
в config.pm нужно внести изменения в маппинг:
Было:
Стало:
Но, теперь проблема с авторизацией:
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).
в 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).
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Авторизация Customer`а по first_name
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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
Re: Авторизация Customer`а по first_name
Спасибо.alexus писал(а):Login - это системная вещь. Переопределить, конечно, можно, но это очень проблематично. И обновляться замучаетесь потом. Лучше так не надо делать. Тем более, что логин ДОЛЖЕН БЫТЬ уникальным. Как Вы это сделаете для имени?
first name будет уникальным, так как в него будет подставлятся id пользователя из другой базы.
Основная задача - это регистрация пользователя со своим id и паролем.
Как можно реализовать регистрацию, что бы в итоге логином был не e-mail а свободное поле при регистрации, например first name?
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Авторизация Customer`а по first_name
Логин - это логин, email - это email. Email подставляется КАК логин клиента, если пришло письмо, а клиент не найдет в базе с таким email.
Не надо делать белое черным и наоборот. Пусть ваш ID и будет login! Если нет имени и фамилии - сделайте их необязательными.
Не надо делать белое черным и наоборот. Пусть ваш 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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
Re: Авторизация Customer`а по first_name
Как зарегистрировать кастомера, используя самостоятельную регистрцию в веб-интерфейсе пользователя (customer.pl), что бы логином был не e-mail, а произвольное поле, например тот же FirstName в которое будет введен его ID?alexus писал(а):Пусть ваш ID и будет login! Если нет имени и фамилии - сделайте их необязательными.
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Авторизация Customer`а по first_name
Надо просто переписать код для страницы регистрации и всё.
С уважением,
Алексей Юсов
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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
Re: Авторизация Customer`а по first_name
Спасибо, разобрался.
Нужно было просто в CustomerLogin.dtl в соответствующее место добавить
Нужно было просто в 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>