Es existieren zwei Kundenbenutzer-Backends, DB und LDAP. Falls Sie bereits ein Kunden-Verzeichnis (z.B. SAP, ...) haben, ist es natürlich möglich, dafür ein eigenes Backend zu schreiben.
Notiz: Es is auch möglich mehr als einen Kunden-Daten Topf zu definieren. Einfach eine weitere Konfig Option wie "CustomerUser" mit einer Nummer zwischen 1 und 10. Zum Beispiel "CustomerUser1".
Dies ist ein Beispiel für ein Datenbank-Backend.
[Kernel/Config.pm] # 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=customerdb;host=customerdbhost', # User => '', # Password => '', Table => 'customer_user', }, # customer uniq id CustomerKey => 'login', # customer # CustomerID => 'customer_id', CustomerValid => 'valid_id', CustomerUserListFields => ['login', 'first_name', 'last_name', 'email'], CustomerUserSearchFields => ['login', 'last_name', 'customer_id'], CustomerUserPostMasterSearchFields => ['email'], CustomerUserNameFields => ['salutation', 'first_name', 'last_name'], Map => [ # note: Login, Email and CustomerID needed! # var, frontend, storage, shown, required, storage-type, http-link [ 'UserSalutation', 'Salutation', 'salutation', 1, 0, 'var' ], [ 'UserFirstname', 'Firstname', 'first_name', 1, 1, 'var' ], [ 'UserLastname', 'Lastname', 'last_name', 1, 1, 'var' ], [ 'UserLogin', 'Login', 'login', 1, 1, 'var' ], [ 'UserPassword', 'Password', 'pw', 0, 1, 'var' ], [ 'UserEmail', 'Email', 'email', 0, 1, 'var' ], # [ 'UserEmail', 'Email', 'email', 1, 1, 'var', '$Env{"CGIHandle"}?Action=\ AgentCompose&ResponseID=1&TicketID=$Data{"TicketID"}&ArticleID=$Data{"ArticleID"}' ], [ 'UserCustomerID', 'CustomerID', 'customer_id', 0, 1, 'var' ], [ 'UserComment', 'Comment', 'comment', 1, 0, 'var' ], [ 'ValidID', 'Valid', 'valid_id', 0, 1, 'int' ], ], }; [...] |
Falls Sie Ihre Kundendaten anpassen möchten, ändern Sie die Tabellenspalten oder fügen Sie weitere hinzu:
ALTER TABLE customer_user ADD phone VARCHAR (250); |
# var, frontend, storage, shown, required, storage-type, http-link [ 'UserPhone', 'Phone', 'phone', 1, 0, 'var' ], |
Falls Sie ein existierendes LDAP-Verzeichnis mit Ihren Kunden-Benutzern haben, sind Sie in der Lage, dieses auch in OTRS zu nutzen.
Dies ist ein Beispiel für ein LDAP-Backend.
[Kernel/Config.pm] # CustomerUser # (customer user ldap backend and settings) $Self->{CustomerUser} = { Name => 'LDAP Quelle', Module => 'Kernel::System::CustomerUser::LDAP', Params => { # ldap host Host => 'bay.csuhayward.edu', # ldap base dn BaseDN => 'ou=seas,o=csuh', # search scope (one|sub) SSCOPE => 'sub', # The following is valid but would only be necessary if the # anonymous user does NOT have permission to read from the LDAP tree UserDN => '', UserPw => '', # in case you want to add always one filter to each ldap query, use # this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)' AlwaysFilter => '', # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP) Params => { port => 389, version => 3, }, }, # customer uniq id CustomerKey => 'uid', # customer # CustomerID => 'mail', CustomerUserListFields => ['uid', 'cn', 'mail'], CustomerUserSearchFields => ['uid', 'cn', 'mail'], CustomerUserPostMasterSearchFields => ['mail'], CustomerUserNameFields => ['givenname', 'sn'], Map => [ # note: Login, Email and CustomerID needed! # var, frontend, storage, shown, required, storage-type [ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ], [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ], [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ], [ 'UserLogin', 'Login', 'uid', 1, 1, 'var' ], [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ], [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ], [ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ], [ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var' ], [ 'UserComment', 'Comment', 'description', 1, 0, 'var' ], ], }; [...] |
Falls Sie Ihre Kundendaten anpassen möchten, fügen Sie Ihre neuen Punkte dem MAP Array hinzu (oder entfernen Sie nicht benötigte Punkte):
# var, frontend, storage, shown, required, storage-type, http-link [ 'UserOrganisation', 'Organisation', 'ou', 1, 0, 'var' ], |