From 5a0865a1b1a6c93acf9e3d0cc7c04a524e00f457 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Mudr=C3=A1k?= <david@moodle.com>
Date: Tue, 4 Jul 2017 10:57:24 +0200
Subject: [PATCH] MDL-56486 workshop: Use filetypes utility class to check
 submitted files

---
 mod/workshop/form/assessment_form.php |  7 ++++---
 mod/workshop/locallib.php             | 10 ++++------
 mod/workshop/submission_form.php      |  7 ++++---
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/mod/workshop/form/assessment_form.php b/mod/workshop/form/assessment_form.php
index 8432cab505f..7ecbcf6738c 100644
--- a/mod/workshop/form/assessment_form.php
+++ b/mod/workshop/form/assessment_form.php
@@ -133,19 +133,20 @@ class workshop_assessment_form extends moodleform {
         $errors = parent::validation($data, $files);
 
         if (isset($data['feedbackauthorattachment_filemanager']) and isset($this->workshop->overallfeedbackfiletypes)) {
-            $whitelist = workshop::normalize_file_extensions($this->workshop->overallfeedbackfiletypes);
+            $filetypesutil = new \core_form\filetypes_util();
+            $whitelist = $filetypesutil->normalize_file_types($this->workshop->overallfeedbackfiletypes);
             if ($whitelist) {
                 $draftfiles = file_get_drafarea_files($data['feedbackauthorattachment_filemanager']);
                 if ($draftfiles) {
                     $wrongfiles = array();
                     foreach ($draftfiles->list as $file) {
-                        if (!workshop::is_allowed_file_type($file->filename, $whitelist)) {
+                        if (!$filetypesutil->is_allowed_file_type($file->filename, $whitelist)) {
                             $wrongfiles[] = $file->filename;
                         }
                     }
                     if ($wrongfiles) {
                         $a = array(
-                            'whitelist' => workshop::clean_file_extensions($whitelist),
+                            'whitelist' => implode(', ', $whitelist),
                             'wrongfiles' => implode(', ', $wrongfiles),
                         );
                         $errors['feedbackauthorattachment_filemanager'] = get_string('err_wrongfileextension', 'mod_workshop', $a);
diff --git a/mod/workshop/locallib.php b/mod/workshop/locallib.php
index af0dca3c231..824ccdc251f 100644
--- a/mod/workshop/locallib.php
+++ b/mod/workshop/locallib.php
@@ -2515,9 +2515,8 @@ class workshop {
             'return_types' => FILE_INTERNAL | FILE_CONTROLLED_LINK,
         );
 
-        if ($acceptedtypes = self::normalize_file_extensions($this->submissionfiletypes)) {
-            $options['accepted_types'] = $acceptedtypes;
-        }
+        $filetypesutil = new \core_form\filetypes_util();
+        $options['accepted_types'] = $filetypesutil->normalize_file_types($this->overallfeedbackfiletypes);
 
         return $options;
     }
@@ -2557,9 +2556,8 @@ class workshop {
             'return_types' => FILE_INTERNAL | FILE_CONTROLLED_LINK,
         );
 
-        if ($acceptedtypes = self::normalize_file_extensions($this->overallfeedbackfiletypes)) {
-            $options['accepted_types'] = $acceptedtypes;
-        }
+        $filetypesutil = new \core_form\filetypes_util();
+        $options['accepted_types'] = $filetypesutil->normalize_file_types($this->overallfeedbackfiletypes);
 
         return $options;
     }
diff --git a/mod/workshop/submission_form.php b/mod/workshop/submission_form.php
index f6c827094ea..6b794dcd935 100644
--- a/mod/workshop/submission_form.php
+++ b/mod/workshop/submission_form.php
@@ -95,19 +95,20 @@ class workshop_submission_form extends moodleform {
         }
 
         if (isset($data['attachment_filemanager']) and isset($this->_customdata['workshop']->submissionfiletypes)) {
-            $whitelist = workshop::normalize_file_extensions($this->_customdata['workshop']->submissionfiletypes);
+            $filetypesutil = new \core_form\filetypes_util();
+            $whitelist = $filetypesutil->normalize_file_types($this->_customdata['workshop']->submissionfiletypes);
             if ($whitelist) {
                 $draftfiles = file_get_drafarea_files($data['attachment_filemanager']);
                 if ($draftfiles) {
                     $wrongfiles = array();
                     foreach ($draftfiles->list as $file) {
-                        if (!workshop::is_allowed_file_type($file->filename, $whitelist)) {
+                        if (!$filetypesutil->is_allowed_file_type($file->filename, $whitelist)) {
                             $wrongfiles[] = $file->filename;
                         }
                     }
                     if ($wrongfiles) {
                         $a = array(
-                            'whitelist' => workshop::clean_file_extensions($whitelist),
+                            'whitelist' => implode(', ', $whitelist),
                             'wrongfiles' => implode(', ', $wrongfiles),
                         );
                         $errors['attachment_filemanager'] = get_string('err_wrongfileextension', 'mod_workshop', $a);