[svn r15428] Added more explicit messages when course import fails because of directory permissions

skala
Yannick Warnier 17 years ago
parent ee5a9193bc
commit f31a1bc29d
  1. 13
      main/coursecopy/classes/CourseArchiver.class.php
  2. 36
      main/coursecopy/import_backup.php

@ -1,5 +1,5 @@
<?php <?php
// $Id: CourseArchiver.class.php 15180 2008-04-29 22:40:16Z yannoo $ // $Id: CourseArchiver.class.php 15428 2008-05-26 20:30:11Z yannoo $
/* /*
============================================================================== ==============================================================================
Dokeos - elearning and course management software Dokeos - elearning and course management software
@ -70,7 +70,7 @@ class CourseArchiver
$zip_dir = api_get_path(SYS_ARCHIVE_PATH).''; $zip_dir = api_get_path(SYS_ARCHIVE_PATH).'';
$user = api_get_user_info(); $user = api_get_user_info();
$zip_file = $user['user_id'].'_'.$course->code.'_'.date("YmdHis").'.zip'; $zip_file = $user['user_id'].'_'.$course->code.'_'.date("YmdHis").'.zip';
$php_errormsg = '';
$res = @mkdir($backup_dir, 0755); $res = @mkdir($backup_dir, 0755);
if($res == false) if($res == false)
{ {
@ -168,8 +168,13 @@ class CourseArchiver
function import_uploaded_file($file) function import_uploaded_file($file)
{ {
$new_filename = uniqid('').'.zip'; $new_filename = uniqid('').'.zip';
move_uploaded_file($file,api_get_path(SYS_ARCHIVE_PATH).''.$new_filename); $new_dir = api_get_path(SYS_ARCHIVE_PATH);
return $new_filename; if(is_dir($new_dir) && is_writable($new_dir))
{
move_uploaded_file($file,api_get_path(SYS_ARCHIVE_PATH).''.$new_filename);
return $new_filename;
}
return false;
} }
/** /**
* Read a course-object from a zip-file * Read a course-object from a zip-file

@ -1,4 +1,4 @@
<?php // $Id: import_backup.php 13315 2007-09-27 08:17:12Z yannoo $ <?php // $Id: import_backup.php 15428 2008-05-26 20:30:11Z yannoo $
/* /*
============================================================================== ==============================================================================
Dokeos - elearning and course management software Dokeos - elearning and course management software
@ -97,15 +97,25 @@ if( (isset($_POST['action']) && $_POST['action'] == 'course_select_form' ) || (
{ {
if($_FILES['backup']['error']==0){ if($_FILES['backup']['error']==0){
$filename = CourseArchiver::import_uploaded_file($_FILES['backup']['tmp_name']); $filename = CourseArchiver::import_uploaded_file($_FILES['backup']['tmp_name']);
$delete_file = true; if ($filename === false)
{
$error = true;
}
else
{
$delete_file = true;
}
} }
else{ else{
$error=true; $error=true;
} }
} }
$course = CourseArchiver::read_course($filename,$delete_file); if(!$error)
{
$course = CourseArchiver::read_course($filename,$delete_file);
}
} }
if( $course->has_resources()) if(!$error && $course->has_resources())
{ {
$cr = new CourseRestorer($course); $cr = new CourseRestorer($course);
$cr->set_file_option($_POST['same_file_name_option']); $cr->set_file_option($_POST['same_file_name_option']);
@ -117,14 +127,19 @@ if( (isset($_POST['action']) && $_POST['action'] == 'course_select_form' ) || (
if(!$error){ if(!$error){
echo get_lang('NoResourcesInBackupFile'); echo get_lang('NoResourcesInBackupFile');
} }
else{ elseif ($filename === false)
echo get_lang('UploadError'); {
echo get_lang('ArchivesDirectoryNotWriteableContactAdmin');
}
else
{
echo ucfirst(get_lang('UploadError'));
} }
} }
CourseArchiver::clean_backup_dir(); CourseArchiver::clean_backup_dir();
echo '<p><a href="../course_home/course_home.php">&lt;&lt; '.get_lang('CourseHomepage').'</a></p>'; echo '<p><a href="../course_home/course_home.php">&lt;&lt; '.get_lang('CourseHomepage').'</a></p>';
} }
elseif( isset($_POST['import_option']) && $_POST['import_option'] == 'select_items') elseif (isset($_POST['import_option']) && $_POST['import_option'] == 'select_items')
{ {
if( $_POST['backup_type'] == 'server') if( $_POST['backup_type'] == 'server')
{ {
@ -137,10 +152,15 @@ elseif( isset($_POST['import_option']) && $_POST['import_option'] == 'select_ite
$delete_file = true; $delete_file = true;
} }
$course = CourseArchiver::read_course($filename,$delete_file); $course = CourseArchiver::read_course($filename,$delete_file);
if( $course->has_resources()) if ($course->has_resources() && ($filename !== false))
{ {
CourseSelectForm::display_form($course,array('same_file_name_option'=>$_POST['same_file_name_option'])); CourseSelectForm::display_form($course,array('same_file_name_option'=>$_POST['same_file_name_option']));
} }
elseif ($filename === false)
{
echo get_lang('ArchivesDirectoryNotWriteableContactAdmin');
echo '<p><a href="import_backup.php">&lt;&lt; '.get_lang('TryAgain').'</a></p>';
}
else else
{ {
echo get_lang('NoResourcesInBackupFile'); echo get_lang('NoResourcesInBackupFile');

Loading…
Cancel
Save