Hallo

Ich habe die Autorisierung im OTRS in den letzten Tagen für die Kunden von der otrs MySQL DB auf LDAP (Active Directory) umgestellt. System ist FreeBSD 6.2 mit OTRS 2.2.7 und ITSM 1.0.6

Das Problem ist, das ich aus unerfindlichen Gründen im Ticket jetzt keine CustomerID (Kunden-Firma) mehr habe. Eine SQL Abfrage in "Ticket.pm" fällt auf die Nase weil "IN ()" leer ist (siehe Zeile 3 und 6):

Log (Debug):
--------------------------------------
Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ') ORDER BY st.create_time_unix DESC LIMIT 10000' in Zeile 1,
SQL:
1 'SELECT DISTINCT st.id, st.tn, st.create_time_unix FROM ticket st, queue sq
2 WHERE sq.id = st.queue_id
3    AND (LOWER(st.customer_id) IN ( )
4       OR  st.customer_user_id = '[EMAIL PROTECTED]')
5    AND sq.group_id IN (1)
6    AND LOWER(st.customer_id) IN ( )
7 ORDER BY st.create_time_unix DESC LIMIT 10000'
--------------------------------------

Effekt ist, dass in der Ticket-Übersicht ("Meine Tickets", "Firmenticket") für die Kunden keine Tickets mehr erscheinen (und ich Ticket.pm hacken muss damit es trotzdem klappt).

Ich habe in Ticket.pm mal eine Log-Anweisung an der Stelle, an der diese SQL Anfrage zusammengebaut wird, eingefügt, wo man sehen kann das das Array "@CustomerIDs" leer ist.


Version 2.2.7 ~otrs/Kernel/System/Ticket.pm, Zeile 3451 ff:
--------------------------------------
        # get secondary customer ids
my @CustomerIDs = $Self->{CustomerUserObject}- >CustomerIDs(User => $Param{CustomerUserID});
        # add own customer id
my %CustomerData = $Self->{CustomerUserObject}- >CustomerUserDataGet(User => $Param{CustomerUserID});
        if ($CustomerData{UserCustomerID}) {
            push (@CustomerIDs, $CustomerData{UserCustomerID});
        }
        $Self->{LogObject}->Log(
            Priority => 'notice',
Message => "Inhalt CustomerID:".($CustomerIDs[0]). ($CustomerIDs[1]).".",
         );
-------------------------------------

Ergebnis im Log:


Jul 20 19:16:27 inet OTRS-FCGI-10[45828]: [Notice] [Kernel::System::Ticket::TicketSearch] Inhalt CustomerID:.


Verstehen kann ich es bisher leider nicht. In "@CustomerIDs" müsste eigentlich die eMail-Adresse des Kunden stehen, als auch der Firmenname ("company" im AD LDAP)

So ist die Konfiguration in Config.pm - vielleicht sieht ja jmd. was ich nicht sehe:

-------------------------------------

        # ---------------------------------------------------- #
        # Customer Authentifizirung via LDAP                   #
        # ---------------------------------------------------- #
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
        $Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.1.1';
        $Self->{'Customer::AuthModule::LDAP::BaseDN'} = '';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=meinedomain,dc=local';
        $Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'cn=OTRSUser,cn=users,dc=meinedomain,dc=local'; $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = '[EMAIL PROTECTED] '; $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'Otrs321'; $Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '(&(company=MeineFirma)(objectClass=Person)(!(objectClass=Computer))(! (objectClass=publicFolder)))';
        $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
        $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
        $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
        $Self->{'Customer::AuthModule::LDAP::Params'} = {
        #       port => 389,
        #       timeout => 120,
        #       async => 0,
        #       version => 3,
                SourceCharset => 'utf-8',
                DestCharset => 'utf-8',
        };
        # ---------------------------------------------------- #
        # customer Auth                                        #
        # ---------------------------------------------------- #
        # CustomerUser
        # (customer user ldap backend and settings)
        $Self->{CustomerUser} = {
        Module => 'Kernel::System::CustomerUser::LDAP',
        Name => 'Active Directory',
        Params => {
                # ldap host
                Host => '192.168.1.1',
                # ldap base dn
                BaseDN => 'dc=meinedomain,dc=local',
                # search scope (one|sub)
                SSCOPE => 'sub',
                UserDN => '[EMAIL PROTECTED]',
                UserPw => 'Otrs321',
AlwaysFilter => '(&(company=MeineFirma) (objectClass=Person)(!(objectClass=Computer))(! (objectClass=publicFolder)))',
                SourceCharset => 'utf-8',
                DestCharset => 'utf-8',
                },
        # customer uniq id
        CustomerKey => 'sAMAccountName',
        # customer #
        CustomerID => 'mail',
        CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchPrefix => '',
        CustomerUserSearchSuffix => '*',
        CustomerUserExcludePrimaryCustomerID => 0,
        CustomerUserSearchListLimit => 2500,
        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', '', 0 ], [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var', '', 0 ], [ 'UserLogin', 'Login', 'mail', 1, 1, 'var', '', 0 ], [ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ], [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var', '', 0 ], [ 'UserCustomerIDs', 'CustomerIDs', 'company', 1, 0, 'var', '', 0 ], #[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var', '', 0 ], #[ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var', '', 0 ], #[ 'UserComment', 'Comment', 'description', 1, 0, 'var', '', 0 ],
                ],
        };

-------------------------------------

Meine vorherige Mail könnt Ihr vergessen, weil ich die Frage über den "company" Eintrag im LDAP halbwegs gelöst habe - naja "hätte" wenn es denn gehen würde.

Viele Grüße
Nicola



_______________________________________________
OTRS-de Mailingliste: otrs-de - Webpage: http://otrs.org/
Archiv: http://lists.otrs.org/pipermail/otrs-de/
Listenabo verwalten: http://lists.otrs.org/cgi-bin/listinfo/otrs-de/
Support oder Consulting fuer Ihr OTRS System?
=> http://www.otrs.com/

Antwort per Email an