diff --git a/lib/filelib.php b/lib/filelib.php index 6d48fba275c..9b97e8c807e 100644 --- a/lib/filelib.php +++ b/lib/filelib.php @@ -422,6 +422,10 @@ function file_get_draft_area_info($draftitemid) { // The number of files $draftfiles = $fs->get_area_files($usercontext->id, 'user', 'draft', $draftitemid, 'id', false); $results['filecount'] = count($draftfiles); + $results['filesize'] = 0; + foreach ($draftfiles as $file) { + $results['filesize'] += $file->get_filesize(); + } return $results; } diff --git a/user/filesedit_form.php b/user/filesedit_form.php index 4c5314bb173..4fd1e6f1b5e 100644 --- a/user/filesedit_form.php +++ b/user/filesedit_form.php @@ -41,4 +41,16 @@ class user_filesedit_form extends moodleform { $this->set_data($data); } + function validation($data, $files) { + global $CFG; + + $errors = array(); + $draftitemid = $data['files_filemanager']; + $fileinfo = file_get_draft_area_info($draftitemid); + if ($fileinfo['filesize'] > $CFG->userquota) { + $errors['files_filemanager'] = get_string('userquotalimit', 'error'); + } + + return $errors; + } }