Enhanced mailgate in RT3

Hello.

I saw in RT::Interface::Email that an enhanced mailgate behavior was
intended :

# Authentication Level
# -1 - Get out.  this user has been explicitly declined
# 0 - User may not do anything (Not used at the moment)
# 1 - Normal user
# 2 - User is allowed to specify status updates etc. a la enhanced-mailgate

But for now, it seems there no code to handle this case.

I see two (quite bad) ways to implement this as “site” code :

  1. redefining RT::Ticket->Correspond and RT::Ticket->Comment and calling
    them with the AuthStat from RT::Interface::Email->Gateway. The first
    point can be achieved by redefining two new subs (in a Ticket_Local.pm
    file) that handles enhanced commands then call the original subs. The
    second point needs to redefine the whole Gateway sub and I think this a
    bad idea because I don’t want to maintain it.

  2. adding two email authentication plug-in, say
    RT::Interface::email::Auth::GPG and
    RT::Interface::email::Auth::EnhancedGateway. The first plug-in checks
    GPG signature and raises authentication level to 2 when appropriate. The
    second plug-in implements the “enhanced behavior” when authentication
    level equals 2.

I said “quite bad” ways because I think neither solution implements the
enhanced mailgate behavior in the right place.

Any idea ?

Guillaume Perréal.

Responsable informatique,
Cemagref, groupement de Lyon,
France.

Tél: (+33) 4.72.20.87.87.
Fax: (+33) 4.78.47.78.75.
Site: http://www.lyon.cemagref.fr/