I would like to propose adding support for multiple customer ids being
assigned to one user.  I believe it is problematic that a user can only have
one customer id because this forces a ticket to be either completely private
(viewable by one individual only) or completely public (viewable by a group
of people that share the same customer id).  I believe each user should be
be able to have both "private" and "public" tickets.

I have reprogrammed several of the modules to allow for this support and
have attached a diff file with my changes.  My initial testing shows it to
work properly, but I would be interested in feedback (especially if you can
find bugs). 

Here is the philosphy.

A user should be able to have a primary (private) id and multiple secondary
(public) ids.  These ids will be stored as a single string in either the
OTRS local "Customer ID" field, or in an LDAP field that allows for
arbitrary strings.  For example, I use an LDAP customer backend.  I use the
'url' field for my customer id field:

# abbreviated for ease of reading
$Self->{CustomerUser} = {
    Name => 'LDAP Source',
    Module => 'Kernel::System::CustomerUser::LDAP',
    CustomerID => 'url',  #  This line!
    Map => [
        [ 'UserCustomerID', 'CustomerID', 'url', 0, 1, 'var' ],  # This
line!
    ],
};

The single string stored in 'url' will be in the format of
primaryid;sec_id1;sec_id2;etc.

Example:

I want to submit private tickets under the id of '[EMAIL PROTECTED]'.  I also
want to submit tickets that groups of people can see.  The different groups
are 'web' and 'qa'.  My customer id string would be:
'[EMAIL PROTECTED];web;qa'.

I can get access to each customer id by using "split" to split up the
UserCustomerID string after it is read into the program.  See the diff file
for details.


FAQ:

Q: How does the system decide which id to use for the creation of new
tickets?
A: All tickets created via "Phone View" "Compose Email" or self submitted by
the user default to the primary id.  X-OTRS headers and manual intervention
can be used to change the id.

Q: Will these changes break existing installations of OTRS?
A: No.  Current users will see no change and notice no difference in the
performance of their systems.  This code only adds the ability to support
multiple customer ids if the user so desires to implement it.

Q: Is there anything wrong with the changes made?
A: Yes, there are some aesthetic problems with the way tickets are displayed
in the customer panel.  The panel does not show which customer id a ticket
belongs to.  Also, even though all tickets with different ids display, they
display in clumps.  Example:

id WEB:
ticket numbers: 10, 8, 6

id QA: 
ticket numbers: 9, 7, 5

Displays as:

10,8,6,9,7,5


Regardless of which type of sort is applied each group of tickets stays in
its group.  I know why this occurs, but I am not sure how to make it
different.  Any help/advice/opinions on how to display the customer id of
each ticket and intermix the tickets regardless of id would be appreciated.


Please take a look at the diffs and let me know what you think.

Thanks,

Tyler Hepworth

Attachment: multi_id.tar.gz
Description: Binary data

_______________________________________________
OTRS mailing list: dev - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/dev
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev

Reply via email to