Disable Reply for Company Tickets

Moderator: crythias

Post Reply
pedrodevoto
Znuny newbie
Posts: 4
Joined: 11 Nov 2011, 18:18
Znuny Version: 3.0

Disable Reply for Company Tickets

Post by pedrodevoto »

Hi there, I have the following situation:

I need to implement this system inside a company, which has 3 major departments: Accounts Managers, Media Buyers (both customers) and Traffickers (agents).
The first 2 send tickets to traffickers, and they reply them when they have done the job. The thing is that I'd need the account managers and media buyers to be able to see the tickets of their fellow workers, but not to reply them. For example, account manager A should be able to create tickets, see and respond his own tickets and see but not respond account manager B's tickets (hence, the title of the post); same should happen with media buyers, but no one should be able to see the other department's tickets.

Of course, traffickers would see both departments' tickets. Should I use ACLs? Or is it configurable from the Admin front end? I searched the forum but haven't found any answer.

Thank you all
crythias
Moderator
Posts: 10169
Joined: 04 May 2010, 18:38
Znuny Version: 5.0.x
Location: SouthWest Florida, USA
Contact:

Re: Disable Reply for Company Tickets

Post by crythias »

pedrodevoto wrote:The thing is that I'd need the account managers and media buyers to be able to see the tickets of their fellow workers,
Read this: http://forums.otrs.org/viewtopic.php?f=60&t=7531
pedrodevoto wrote:but not to reply them
Set their group membership to read only?
OTRS 6.0.x (private/testing/public) on Linux with MySQL database.
Please edit your signature to include your OTRS version, Operating System, and database type.
Click Subscribe Topic below to get notifications. Consider amending your topic title to include [SOLVED] if it is so.
Need help? Before you ask
pedrodevoto
Znuny newbie
Posts: 4
Joined: 11 Nov 2011, 18:18
Znuny Version: 3.0

Re: Disable Reply for Company Tickets

Post by pedrodevoto »

You mean to set the group membership to read-only from "Customers -> Groups" section? Or you mean to enter the group in the "Group ro" field in CustomerFrontend::Module###CustomerTicketOverView?

I had already tried to set the group membership to read-only with the first method, but the customer was unable to create new tickets.
pedrodevoto
Znuny newbie
Posts: 4
Joined: 11 Nov 2011, 18:18
Znuny Version: 3.0

Re: Disable Reply for Company Tickets

Post by pedrodevoto »

I managed to give access to Company Tickets tab, but I'm not able to give them read-only access; they are still able to respond to others' tickets.
I created the group "CompanyTickets", gave read-only membership to the customers (via Customers -> Groups) and added "CompanyTickets" to the "Group ro" field in CustomerFrontend::Module###CustomerTicketOverView but they still have the "Reply" button enabled.

Is there anything I can do?

Thanks!
artjoms15
Znuny advanced
Posts: 121
Joined: 30 Aug 2011, 10:48
Znuny Version: 3.3.8 && 4.0.9
Real Name: Artjoms Petrovs
Location: Latvia

Re: Disable Reply for Company Tickets

Post by artjoms15 »

I have been struggling with this issue for a while...
There is one almost complete solution - disable this button with javascript after checking if the current user is equal to ticket owner
the only problem is to get those values, have no idea where they are kept :(
Ar cieņu / Kind regards,
----------------------------------------
Artjoms Petrovs
Sistēmu analītiķis/Programmētājs /
Systems Analyst/Programmer
RRFARIA
Znuny newbie
Posts: 54
Joined: 12 Jun 2012, 13:49
Znuny Version: 3.1.6
Real Name: Rafael Faria

Re: Disable Reply for Company Tickets

Post by RRFARIA »

I tried to use the group permissions, but not worked
I also need help with this
crythias
Moderator
Posts: 10169
Joined: 04 May 2010, 18:38
Znuny Version: 5.0.x
Location: SouthWest Florida, USA
Contact:

Re: Disable Reply for Company Tickets

Post by crythias »

The problem is that the only check for allowable followups are based, mostly, on queue.

The appropriate place to look at this is Kernel/Modules/CustomerTicketZoom.pm

Code: Select all

        my $FollowUpPossible = $Self->{QueueObject}->GetFollowUpOption(
            QueueID => $Ticket{QueueID},
        );
The code for the reply button is in Kernel/Output/HTML/Standard(or your theme)/CustomerTicketZoom.dtl

Code: Select all

                <a id="ReplyButton" class="DontPrint" href="">$Text{"Reply"}</a>
What can be done about the reply? not much, but if I were to code it, I'd consider editing CustomerTicketZoom.pm around

Code: Select all

        if ( $FollowUpPossible =~ /(new ticket|reject)/i && $State{TypeName} =~ /^close/i ) {
            my $Output = $Self->{LayoutObject}->CustomerHeader( Title => 'Error' );
            $Output .= $Self->{LayoutObject}->CustomerWarning(
                Message => 'Can\'t reopen ticket, not possible in this queue!',
                Comment => 'Create a new ticket!',
            );
            $Output .= $Self->{LayoutObject}->CustomerFooter();
            return $Output;
        }
and adding a similar check above or below for if Customer's Customer_ID != Ticket's customer_id, do a similar error.

Don't forget, though, that *ANYONE* can add a ticket number to an email subject line and be an additional customer respondent to a ticket.
OTRS 6.0.x (private/testing/public) on Linux with MySQL database.
Please edit your signature to include your OTRS version, Operating System, and database type.
Click Subscribe Topic below to get notifications. Consider amending your topic title to include [SOLVED] if it is so.
Need help? Before you ask
RRFARIA
Znuny newbie
Posts: 54
Joined: 12 Jun 2012, 13:49
Znuny Version: 3.1.6
Real Name: Rafael Faria

Re: Disable Reply for Company Tickets

Post by RRFARIA »

you could create a video on youtube how to do this?
crythias
Moderator
Posts: 10169
Joined: 04 May 2010, 18:38
Znuny Version: 5.0.x
Location: SouthWest Florida, USA
Contact:

Re: Disable Reply for Company Tickets

Post by crythias »

maybe, but the code as given would merely error if submitted, which would just tick people off.

This seems more promising in sub _Mask, though:

Code: Select all

    if (
        $Self->{TicketObject}->TicketCustomerPermission(
            Type     => 'update',
            TicketID => $Self->{TicketID},
            UserID   => $Self->{UserID}
        )
        && (
            ( $FollowUpPossible !~ /(new ticket|reject)/i && $State{TypeName} =~ /^close/i )
            || $State{TypeName} !~ /^close/i
        )
        )
... As coded, this is the most likely place to put a catch. To do this without coding would be to clear the checkbox for CustomerID permissions check. Which means that Company tickets is otherwise useless.
OTRS 6.0.x (private/testing/public) on Linux with MySQL database.
Please edit your signature to include your OTRS version, Operating System, and database type.
Click Subscribe Topic below to get notifications. Consider amending your topic title to include [SOLVED] if it is so.
Need help? Before you ask
Post Reply