]> scripts.mit.edu Git - autoinstallsdev/wordpress.git/blobdiff - wp-content/plugins/wp-db-backup.php
Wordpress 2.0.4
[autoinstallsdev/wordpress.git] / wp-content / plugins / wp-db-backup.php
index d8d714217a62cefaf3dd3a0c17ac813280ef7e47..4c92a7f608b634d22892cd5d1e3b3bfe4d141f25 100644 (file)
@@ -36,13 +36,13 @@ class wpdbBackup {
        }
 
        function wpdbBackup() {
-                               
                add_action('wp_cron_daily', array(&$this, 'wp_cron_daily'));
 
                $this->backup_dir = trailingslashit($this->backup_dir);
                $this->basename = preg_replace('/^.*wp-content[\\\\\/]plugins[\\\\\/]/', '', __FILE__);
        
                if (isset($_POST['do_backup'])) {
+                       if ( !current_user_can('import') ) die(__('You are not allowed to perform backups.'));
                        switch($_POST['do_backup']) {
                        case 'backup':
                                $this->perform_backup();
@@ -52,8 +52,10 @@ class wpdbBackup {
                                break;                          
                        }
                } elseif (isset($_GET['fragment'] )) {
+                       if ( !current_user_can('import') ) die(__('You are not allowed to perform backups.'));
                        add_action('init', array(&$this, 'init'));
                } elseif (isset($_GET['backup'] )) {
+                       if ( !current_user_can('import') ) die(__('You are not allowed to perform backups.'));
                        add_action('init', array(&$this, 'init'));
                } else {
                        add_action('admin_menu', array(&$this, 'admin_menu'));
@@ -61,10 +63,7 @@ class wpdbBackup {
        }
        
        function init() {
-               global $user_level;
-               get_currentuserinfo();
-
-               if ($user_level < 9) die(__('Need higher user level.'));
+               if ( !current_user_can('import') ) die(__('You are not allowed to perform backups.'));
 
                if (isset($_GET['backup'])) {
                        $via = isset($_GET['via']) ? $_GET['via'] : 'http';
@@ -307,7 +306,7 @@ class wpdbBackup {
                
                $core_tables = $_POST['core_tables'];
                $this->backup_file = $this->db_backup($core_tables, $also_backup);
-               if (FALSE !== $backup_file) {
+               if (FALSE !== $this->backup_file) {
                        if ('smtp' == $_POST['deliver']) {
                                $this->deliver_backup ($this->backup_file, $_POST['deliver'], $_POST['backup_recipient']);
                        } elseif ('http' == $_POST['deliver']) {
@@ -321,11 +320,11 @@ class wpdbBackup {
        
        ///////////////////////////////
        function admin_menu() {
-               add_management_page(__('Backup'), __('Backup'), 9, basename(__FILE__), array(&$this, 'backup_menu'));
+               add_management_page(__('Backup'), __('Backup'), 'import', basename(__FILE__), array(&$this, 'backup_menu'));
        }
 
        function fragment_menu() {
-               add_management_page(__('Backup'), __('Backup'), 9, basename(__FILE__), array(&$this, 'build_backup_script'));
+               add_management_page(__('Backup'), __('Backup'), 'import', basename(__FILE__), array(&$this, 'build_backup_script'));
        }
 
        /////////////////////////////////////////////////////////
@@ -884,6 +883,14 @@ class wpdbBackup {
        } // wp_cron_db_backup
 }
 
-$mywpdbbackup = new wpdbBackup();
+function wpdbBackup_init() {
+       global $mywpdbbackup;
+
+       if ( !current_user_can('import') ) return;
+
+       $mywpdbbackup = new wpdbBackup();       
+}
+
+add_action('plugins_loaded', 'wpdbBackup_init');
 
 ?>