[rt-users] Resolve Ticket Option
Justin Hayes
justin.hayes at orbisuk.com
Wed Jun 25 05:20:15 EDT 2008
Hmm another interesting suggestion, thanks! :)
But aren't you checking that it's the owner that's doing the resolving?
if ( $Ticket->OwnerObj->Name eq $session{'CurrentUser'}->Name )
I'm after letting the customer resolve, and they won't be the owner.
Also you're calling the SetStatus function. Doesn't that check that
you have ModifyTicket?
} else {
unless ($self->CurrentUserHasRight('ModifyTicket')) {
return ( 0, $self->loc('Permission Denied') );
}
}
Or does that code in <%INIT> run as if you're the main RT user or
something, thus you have permission if you run SetStatus in <%INIT>?
Justin
------------------------------------------------------
Justin Hayes
Support Manager
justin.hayes at orbisuk.com
On 25 Jun 2008, at 10:08, Brian Gallew wrote:
> Justin Hayes wrote:
>> I'd like to offer my customers an option to resolve a ticket
>> themselves, however I don't want them to have the Modify Ticket
>> permission (which I think is the one you need for changing status).
>> Does anyone know of a way round this? I'm running 3.6.3
>
> Sure. Create
> $RTHOME/local/html/Callbacks/orbisuk/SelfService/Elements/Tabs/
> Default that looks something like this:
> ==========================CUT HERE==========================
> <%ARGS>
> $actions
> $Ticket
> </%ARGS>
> <%INIT>
> if ($Ticket) {
> my $id = $Ticket->id();
> if ( $Ticket->OwnerObj->Name eq $session{'CurrentUser'}->Name ) {
> $actions->{'D'} = { path => "SelfService/Resolve.html?id=" . $id,
> title => loc('Owner Resolve') };
> };
> }
> </%INIT>
>
> %# Local Variables:
> %# mode:perl
> %# End:
> ==========================CUT HERE==========================
>
> Then you'll need to create $RTHOME/local/html/SelfService/Resolve.html
>
> ==========================CUT HERE==========================
> <%ARGS>
> $Ticket
> </%ARGS>
> <%INIT>
> if ($Ticket) {
> my $id = $Ticket->id();
> if ( $Ticket->OwnerObj->Name eq $session{'CurrentUser'}->Name ) {
> $Ticket->SetStatus('resolved');
> };
> }
> RT::Interface::Web::Redirect($RT::WebURL."SelfService/");
> </%INIT>
>
> %# Local Variables:
> %# mode:perl
> %# End:
> ==========================CUT HERE==========================
>
> Caveat emptor: I've modeled the code after something I have running
> which is similary, but I've never actually run it, so you may have
> to experiment. Especially since I don't actually do Perl. 8)
>
> Also, notice that this marks the ticket resolved without actually
> allowing the opportunity to add any commentary.
More information about the rt-users
mailing list