Skip to content

Commit c582a80

Browse files
committed
fix: validate priority against allowed enum values in ticket creation
1 parent 94ed97e commit c582a80

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

includes/Services/TicketService.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@ public function create( int $requester_id, array $data ): object {
2121
$reference = Ticket::generate_reference();
2222
$now = current_time( 'mysql' );
2323
$priority = $data['priority'] ?? \Escalated\Models\Setting::get( 'default_priority', 'medium' );
24+
$valid_priorities = array_keys( \Escalated\Helpers\Enums::ticket_priorities() );
2425

2526
$ticket_data = [
2627
'reference' => $reference,
2728
'requester_id' => $requester_id,
2829
'subject' => sanitize_text_field( $data['subject'] ),
2930
'description' => wp_kses_post( $data['description'] ),
3031
'status' => 'open',
31-
'priority' => sanitize_text_field( $priority ),
32+
'priority' => in_array( $priority, $valid_priorities, true ) ? $priority : 'medium',
3233
'ticket_type' => in_array( $data['ticket_type'] ?? '', ['question', 'problem', 'incident', 'task'], true ) ? $data['ticket_type'] : 'question',
3334
'channel' => sanitize_text_field( $data['channel'] ?? 'web' ),
3435
'department_id'=> ! empty( $data['department_id'] ) ? absint( $data['department_id'] ) : null,
@@ -65,14 +66,15 @@ public function create_guest( array $data ): object {
6566
$reference = Ticket::generate_reference();
6667
$now = current_time( 'mysql' );
6768
$priority = $data['priority'] ?? \Escalated\Models\Setting::get( 'default_priority', 'medium' );
69+
$valid_priorities = array_keys( \Escalated\Helpers\Enums::ticket_priorities() );
6870

6971
$ticket_data = [
7072
'reference' => $reference,
7173
'requester_id' => null,
7274
'subject' => sanitize_text_field( $data['subject'] ),
7375
'description' => wp_kses_post( $data['description'] ),
7476
'status' => 'open',
75-
'priority' => sanitize_text_field( $priority ),
77+
'priority' => in_array( $priority, $valid_priorities, true ) ? $priority : 'medium',
7678
'ticket_type' => in_array( $data['ticket_type'] ?? '', ['question', 'problem', 'incident', 'task'], true ) ? $data['ticket_type'] : 'question',
7779
'channel' => sanitize_text_field( $data['channel'] ?? 'web' ),
7880
'department_id'=> ! empty( $data['department_id'] ) ? absint( $data['department_id'] ) : null,

0 commit comments

Comments
 (0)