Modifikasi berikut ini akan menambahkan sebuah fitur kecil untuk membatasi kemampuan staff dalam menutup tiket yang statusnya masih terbuka, atau membuka ulang tiket yang statusnya sudah ditutup di osTicket v1.6 RC5. Hanya staf yang telah ditugaskan atau admin yang dapat menutup atau membuka ulang sebuah tiket. Artinya, jika suatu tiket belum ditugaskan ke staf manapun, maka hanya admin yang dapat menutup tiket tersebut. Karena tidak ada informasi staff_id untuk tiket yang statusnya sudah ditutup, maka perlakuan terhadap tiket ini mirip dengan tiket yang belum ditugaskan. Oleh karenanya, aturan ini berlaku juga untuk tiket tersebut.
-
Buka file \include\class.ticket.php Anda, dan cari kode ini:
361 362 363 364 365 366 367 368 369 370 371 372 373
//Close the ticket function close(){ $sql= 'UPDATE '.TICKET_TABLE.' SET status='.db_input('closed').',staff_id=0,isoverdue=0,duedate=NULL,updated=NOW(),closed=NOW() '. ' WHERE ticket_id='.db_input($this->getId()); return (db_query($sql) && db_affected_rows())?true:false; } //set status to open on a closed ticket. function reopen(){ global $thisuser; $sql= 'UPDATE '.TICKET_TABLE.' SET status='.db_input('open').',isanswered=0,updated=NOW(),reopened=NOW() WHERE ticket_id='.db_input($this->getId()); return (db_query($sql) && db_affected_rows())?true:false; }
lalu timpa dengan kode berikut:
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
//Close the ticket function close(){ // MOD Only The Assignee Staff Or Admin Can Close The Ticket, // by Masino Sinaga (http://www.openscriptsolution.com), December 4, 2009 global $thisuser; if ($this->getStaffId()!=$thisuser->getId() && !$thisuser->isadmin()) { return false; } else { $sql= 'UPDATE '.TICKET_TABLE.' SET status='.db_input('closed').',staff_id=0,isoverdue=0,duedate=NULL,updated=NOW(),closed=NOW() '. ' WHERE ticket_id='.db_input($this->getId()); return (db_query($sql) && db_affected_rows())?true:false; } } //set status to open on a closed ticket. function reopen(){ // MOD Only The Assignee Staff Or Admin Can ReOpen The Ticket, // by Masino Sinaga (http://www.openscriptsolution.com), December 4, 2009 global $thisuser; if ($this->getStaffId()!=$thisuser->getId() && !$thisuser->isadmin()) { return false; } else { $sql= 'UPDATE '.TICKET_TABLE.' SET status='.db_input('open').',isanswered=0,updated=NOW(),reopened=NOW() WHERE ticket_id='.db_input($this->getId()); return (db_query($sql) && db_affected_rows())?true:false; } }
-
Buka file \scp\tickets.php Anda, dan cari kode ini:
210
$errors['err']='Problems closing the ticket. Try again';
lalu timpa dengan kode berikut:
210
$errors['err']='Problems closing the ticket or you are not allowed to close tickets.';
Cari lagi kode yang ini:
224
$errors['err']='Problems reopening the ticket. Try again';
lalu timpa dengan kode berikut:
224
$errors['err']='Problems reopening the ticket or you are not allowed to reopen tickets.';
Itulah semuanya! Selamat menikmati kode dan hasilnya.

Hi Masino Sinaga,
I need some help. We want to disable assign ticket option to staff group. I mean only admin group can assign ticket.
Please help me in this issue.
Thanks & Regards
Amarchand