I am new to OTRS and trying to use my own customer table from another database.
I have followed the doc and implemented 9.2 and 9.3. I have also changed some code in CustomerAuth/DB.pm under
Sub Auth ( ) to use a different encryption alogorithm so that the user password hashed is the same as my another database.
When I tried to login as customer. I can see the "authentification ok " message in the System Log in the Admin menu so auth seems to be OK.
However, I got an error "Panic! No UserData!!!" and am now need some help on how to troubleshoot this.. Does anyone has any idea?? Appreciate much...
----------------------------------------------------------------------------------------------------------------------------------------------------------------
# CustomerUser
# (customer user database backend and settings)
$Self->{CustomerUser} = {
Name => 'Datenbank Quelle',
Module => 'Kernel::System::CustomerUser::DB',
Params => {
# if you want to use an external database, add the
# required settings
# DSN => 'DBI:odbc:yourdsn',
DSN => 'DBI:mysql:database=my_ext_db;host=localhost',
User => 'some_user',
Password => 'some_password',
Table => 'customers',
},
# customer uniq id
CustomerKey => 'customers_id',
# customer #
CustomerID => 'customers_id',
#CustomerValid => 'valid_id',
CustomerUserListFields => ['customers_firstname', 'customers_lastname', 'customers_email_address'],
CustomerUserSearchFields => ['customers_email_address', 'customers_lastname', 'customers_id'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['customers_email_address'],
# CustomerUserNameFields => ['salutation','customers_firstname','customers_lastname'],
CustomerUserNameFields => ['customers_firstname','customers_lastname'],
CustomerUserEmailUniqCheck => 1,
# # show now own tickets in customer panel, CompanyTickets
# CustomerUserExcludePrimaryCustomerID => 0,
# # generate auto logins
# AutoLoginCreation => 0,
# AutoLoginCreationPrefix => 'auto',
# # admin can change customer preferences
# AdminSetPreferences => 1,
# # just a read only source
# ReadOnly => 1,
Map => [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
# [ 'UserSalutation', 'Salutation', 'salutation', 1, 0, 'var', '', 0 ],
[ 'UserFirstname', 'Firstname', 'customers_firstname', 1, 1, 'var', '', 0 ],
[ 'UserLastname', 'Lastname', 'customers_lastname', 1, 1, 'var', '', 0 ],
[ 'UserLogin', 'Username', 'customers_email_address', 1, 1, 'var', '', 0 ],
[ 'UserPassword', 'Password', 'customers_password', 0, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'customers_email_address', 0, 1, 'var', '', 0 ],
# [ 'UserEmail', 'Email', 'customers_email_address', 1, 1,
# 'var','$Env{"CGIHandle"}?Action=AgentTicketCompose&ResponseID=1&TicketID=$Data{"TicketID"}&ArticleID=$Data{"Art\
icleID"}', 0 ],
[ 'UserCustomerID', 'CustomerID', 'customers_id', 0, 1, 'var', '', 0 ],
# [ 'UserCustomerIDs', 'CustomerIDs', 'customers_ids', 1, 0, 'var', '', 0 ],
# [ 'UserComment', 'Comment', 'comments', 1, 0, 'var', '', 0 ],
# [ 'ValidID', 'Valid', 'valid_id', 0, 1, 'int', '', 0 ],
],
# default selections
# Selections => {
# UserSalutation => {
# 'Mr.' => 'Mr.',
# 'Mrs.' => 'Mrs.',
# },
# },
};
# This is the auth. module againt the otrs db
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::DB';
$Self->{'Customer::AuthModule::DB::Table'} = 'customers';
$Self->{'Customer::AuthModule::DB::CustomerKey'} = 'customers_email_address';
$Self->{'Customer::AuthModule::DB::CustomerPassword'} = 'customers_password';
$Self->{'Customer::AuthModule::DB::DSN'} = "DBI:mysql:database=my_ext_db;host=localhost";
$Self->{'Customer::AuthModule::DB::User'} = "some_user";
$Self->{'Customer::AuthModule::DB::Password'} = "some_password";