Plugin Directory

Changeset 1958953


Ignore:
Timestamp:
10/19/2018 06:05:53 AM (7 years ago)
Author:
oseuk
Message:

Update to version 1.1.6

Location:
ose-lets-encrypt
Files:
10 edited
1 copied

Legend:

Unmodified
Added
Removed
  • ose-lets-encrypt/tags/1.1.6/README.txt

    r1956663 r1958953  
    66Tested up to: 4.9.8
    77Requires PHP: 5.3
    8 Stable tag: 1.1.5
     8Stable tag: 1.1.6
    99License: GNU General Public License v3
    1010License URI: http://www.gnu.org/licenses/gpl-3.0.txt
     
    4848
    4949== Changelog ==
     50= 1.1.6 =
     51* Change to use native WordPress ftp function to run ftp mode
     52
    5053= 1.1.5 =
    5154* Update plugin description
  • ose-lets-encrypt/tags/1.1.6/api.php

    r1954763 r1958953  
    33 * oseLetsencryptApi class
    44 *
    5  * @package OSE Let's Encrypt
     5 * @package OSE Free SSL
    66 * @author Open Source Excellence <https://www.opensource-excellence.com/>
    77 * @since 1.0.0
  • ose-lets-encrypt/tags/1.1.6/assets/css/admin.css

    r1954763 r1958953  
    22    margin-top: 5px !important;
    33    color: #46b450;
     4}
     5.error-message{
     6    color: #F00;
    47}
    58.terms{
     
    3336}
    3437
    35 #oseletsencrypt-account-form input[type='checkbox']{
     38#oseletsencrypt-account-form input[type='checkbox']
     39{
    3640    -webkit-appearance: checkbox !important;
    3741}
    3842
    39 #oseletsencrypt-account-form input[type="radio"] {
    40     -webkit-appearance: radio !important;
    41     margin-right: 10px;
     43input[type='checkbox'], input[type='radio'] {
     44    display: inline-block !important;
    4245}
    4346
     
    7982    display: none;
    8083}
     84#upgrade{
     85    display: none;
     86}
     87
     88.modal-footer, .modal-header {
     89    padding: 5px 15px !important;
     90}
  • ose-lets-encrypt/tags/1.1.6/assets/js/admin.js

    r1954774 r1958953  
    1111        jQuery(this).append('<input type="hidden" name="action" value="store_account_data" />');
    1212        jQuery(this).append('<input type="hidden" name="security" value="'+ oseletsencrypt_exchanger._nonce +'" />');
    13 
     13        jQuery('#error-message').text('');
    1414        // We make our call
    1515        jQuery.ajax( {
     
    1919            success: function (response) {
    2020             //   alert(response);
    21                 jQuery('#response-message').text(response);
    22                 jQuery('#oseletsencrypt-ssl-request').attr("disabled",false);
     21                data = jQuery.parseJSON(response);
     22                if(data.status == true){
     23                    jQuery('#response-message').text(data.message);
     24                }else{
     25                    jQuery('#ftpModal').modal();
     26                }
    2327            }
    2428        } );
     
    7579    }
    7680    showHideMode();
     81
     82    jQuery('#oseletsencrypt-process').click(function () {
     83        var password = encodeURIComponent(jQuery( '#password').val());
     84        jQuery.ajax( {
     85            url: oseletsencrypt_exchanger.ajax_url,
     86            type: 'post',
     87            data: "action=create_folders&hostname="+jQuery( '#hostname').val()+"&username="+jQuery( '#username').val()+"&password="+password+"&connection_type="+jQuery("input[name='connection_type']:checked").val()+"&security="+oseletsencrypt_exchanger._nonce,
     88            success: function (response) {
     89                data = jQuery.parseJSON(response);
     90                if(data.success == true){
     91                    jQuery('#ftpModal').modal('hide');
     92                    jQuery('#response-message').text(data.message);
     93                }else{
     94                    jQuery('#error-message').text(data.message);
     95                }
     96            }
     97        } );
     98    });
    7799/*
    78100    jQuery("#view-terms").click(function () {
  • ose-lets-encrypt/tags/1.1.6/ose-letsencrypt.php

    r1956664 r1958953  
    1616 * Plugin URI:        https://www.opensource-excellence.com/
    1717 * Description:       OSE Free SSL is an easy-to-use plugin to create SSL certificates from Let’s Encrypt (https://letsencrypt.org) platform which provides free SSL certificates for everyone.
    18  * Version:           1.1.5
     18 * Version:           1.1.6
    1919 * Author:            Open Source Excellence
    2020 * Author URI:        https://www.opensource-excellence.com/
     
    7979        add_action('wp_ajax_check_account_data',  array($this,'checkAccountData'));
    8080        add_action('wp_ajax_send_ssl_request',  array($this,'sendSslRequest'));
     81        add_action('wp_ajax_create_folders',  array($this,'createFolders'));
    8182        //add_action('wp_ajax_get_terms',  array($this,'getTerms'));
    8283        add_action( 'rest_api_init',  array($this,'letsencrypt_rest_register_route'));
     
    99100        $content = $request["filecontent"];
    100101        $filename = OSELETSENCRYPT_ACME_CHALLENGE_PATH.$request["filename"];
    101         if($request['action']== 'acme-challenge-delete'){
    102             if(file_exists($filename)){
    103                 unlink($filename);
     102        $data = $this->getData();
     103        if(isset($data['hostname']) && !empty($data['hostname']) && isset($data['username']) && !empty($data['username'])
     104        && isset($data['password']) && !empty($data['password']) && isset($data['connection_type']) && !empty($data['connection_type'])){
     105            return $this->acmeChallengeActionsWithFtp($data,$request['action'] ,$request["filename"],$content);
     106        }else{
     107            if($request['action'] == 'acme-challenge-delete'){
     108                if(file_exists($filename)){
     109                    unlink($filename);
     110                }
     111            }else{
     112                file_put_contents($filename,$content);
    104113            }
     114        }
     115        return true;
     116    }
     117    protected function acmeChallengeActionsWithFtp($data,$action,$filename,$conetent){
     118        require_once(ABSPATH . 'wp-admin/includes/file.php');
     119        $creds = array();
     120        $creds['hostname'] = base64_decode($data['hostname']);
     121        $creds['username'] = base64_decode($data['username']);
     122        $creds['password'] = base64_decode($data['password']);
     123        $creds['connection_type'] = $data['connection_type'];
     124        if(!WP_Filesystem($creds)){
     125            echo 'Incorrect credentials';exit;
     126            return false;
     127        }
     128        global $wp_filesystem;
     129        $dir = $wp_filesystem->find_folder(OSELETSENCRYPT_ACME_CHALLENGE_PATH);
     130        $file = trailingslashit($dir) .$filename;
     131        if($action == 'acme-challenge-delete'){
     132            return $wp_filesystem->delete($file);
    105133        }else{
    106             file_put_contents($filename,$content);
    107         }
    108         return true;
     134            return $wp_filesystem->put_contents($file, $conetent, 0755);
     135        }
    109136    }
    110137    public function storeAccountData()
     
    119146        $_POST['oseletsencrypt_web_address'] = $site_url;
    120147
    121         $mode = isset($_POST['oseletsencrypt_mode'])?$_POST['oseletsencrypt_mode']:'';
     148        //$mode = isset($_POST['oseletsencrypt_mode'])?$_POST['oseletsencrypt_mode']:'';
     149        $_POST['oseletsencrypt_mode'] = $mode = 'http';
    122150        if($mode == 'http'){
    123             $data['web_token'] = $token = $this->generateToken(16);
    124151            $result = $this->checkPermission();
    125152            if(!$result['status']){
    126                 echo __($result['message'], 'oseletsencrypt');
    127                 die();
     153                $data['web_address'] = $site_url;
     154                $data['email'] = sanitize_email($_POST['oseletsencrypt_email']);
     155                update_option($this->option_name, $data);
     156                print_r(json_encode($result));exit;
     157            }else{
     158                $data['web_token'] = $token = $this->generateToken(16);
     159                foreach ($_POST as $field=>$value) {
     160
     161                    if (substr($field, 0, 15) !== "oseletsencrypt_")
     162                        continue;
     163
     164                    if (empty($value))
     165                        unset($data[$field]);
     166
     167                    // We remove the oseletsencrypt_ prefix to clean things up
     168                    $field = substr($field, 15);
     169
     170                    $data[$field] = esc_attr__($value);
     171
     172                }
     173                $data = $this->sanitizeData($data);
     174                update_option($this->option_name, $data);
    128175            }
    129176        }
    130 
    131         foreach ($_POST as $field=>$value) {
    132 
    133             if (substr($field, 0, 15) !== "oseletsencrypt_")
    134                 continue;
    135 
    136             if (empty($value))
    137                 unset($data[$field]);
    138 
    139             // We remove the oseletsencrypt_ prefix to clean things up
    140             $field = substr($field, 15);
    141 
    142             $data[$field] = esc_attr__($value);
    143 
    144         }
    145         $data = $this->sanitizeData($data);
    146         update_option($this->option_name, $data);
    147         echo __('Saved!', 'oseletsencrypt');
    148         die();
     177        $return = array();
     178        $return['status'] = true;
     179        $return['message'] = __( 'Saved!', 'oseletsencrypt' );
     180        print_r(json_encode($return));exit;
     181        //echo __('Saved!', 'oseletsencrypt');
     182        //die();
    149183
    150184    }
     
    214248    {
    215249        add_menu_page(
    216             __( 'OSE Let\'s Encrypt', 'oseletsencrypt' ),
    217             __( 'OSE Let\'s Encrypt', 'oseletsencrypt' ),
     250            __( 'OSE Free SSL', 'oseletsencrypt' ),
     251            __( 'OSE Free SSL', 'oseletsencrypt' ),
    218252            'manage_options',
    219253            'oseletsencrypt',
     
    247281                            <div class="column column-50">
    248282                                <h1><?php _e('OSE Free SSL Settings', 'oseletsencrypt'); ?></h1>
     283                                <!--
    249284                                <div>
    250285                                    <label for="mode"><?php _e( 'Mode', 'oseletsencrypt' ); ?></label>
     
    252287                                    <input type="radio" name="oseletsencrypt_mode" value="ftp">FTP
    253288                                </div>
     289                                -->
    254290                                <div class="ftp-form-fields">
    255291                                    <label for="ftp-server"><?php _e( 'FTP Server', 'oseletsencrypt' ); ?></label>
     
    316352            </form>
    317353
     354            <div class="modal fade" id="ftpModal" tabindex="-1" role="dialog" aria-labelledby="ftpModalLabel" aria-hidden="true">
     355                <div class="modal-dialog">
     356                    <div class="modal-content">
     357                        <div class="modal-header">
     358                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×
     359                            </button>
     360                        </div>
     361                        <div id="ftp-modal-body" class="modal-body">
     362                            <?php request_filesystem_credentials( site_url() );?>
     363                            <div id="error-message" class="error-message"></div>
     364                        </div>
     365                        <div class="modal-footer">
     366                            <button type="button" class="btn btn-default" id="oseletsencrypt-process">
     367                                <?php _e( 'Process', 'oseletsencrypt' ); ?>
     368                            </button>
     369                            <button type="button" class="btn btn-default" data-dismiss="modal">
     370                                <?php _e( 'Close', 'oseletsencrypt' ); ?>
     371                            </button>
     372                        </div>
     373                    </div>
     374                </div>
     375            </div>
     376
    318377        </div>
    319378        <?php
     
    378437            return $return;
    379438        }
     439        return $return;
    380440    }
    381441    protected function checkToken($web_token){
     
    385445        }
    386446        return false;
     447    }
     448    public function createFolders(){
     449        if (wp_verify_nonce($_POST['security'], $this->_nonce ) === false)
     450            die('Invalid Request! Reload your page please.');
     451
     452        $return = array();
     453        $return['success'] = true;
     454        $creds = array();
     455        $data = $this->sanitizeData($_POST);
     456        $creds['hostname'] = $data['hostname'];
     457        $creds['username'] = $data['username'];
     458        $creds['password'] = $data['password'];
     459        $creds['connection_type'] = $data['connection_type'];
     460        if(!WP_Filesystem($creds)){
     461            $error_string = __('ERROR: There was an error connecting to the server, Please verify the settings are correct.');
     462            $return['success'] = false;
     463            $return['message'] = $error_string;
     464            print_r(json_encode($return));exit;
     465        }
     466        global $wp_filesystem;
     467        if(!file_exists(OSELETSENCRYPT_WELL_KNOWN_PATH)){
     468           $dest = $wp_filesystem->abspath();
     469           $created = $wp_filesystem->mkdir($dest.'.well-known/',0755);
     470           if(!$created){
     471               $error_string = __('ERROR: There was an error creating folder').' '.OSELETSENCRYPT_WELL_KNOWN_PATH;
     472               $return['success'] = false;
     473               $return['message'] = $error_string;
     474               print_r(json_encode($return));exit;
     475           }
     476        }
     477        if(!file_exists(OSELETSENCRYPT_ACME_CHALLENGE_PATH)){
     478            $dest = $wp_filesystem->find_folder(OSELETSENCRYPT_WELL_KNOWN_PATH);
     479            $created = $wp_filesystem->mkdir($dest.'acme-challenge/',0755);
     480            if(!$created){
     481                $error_string = __('ERROR: There was an error creating folder').' '.OSELETSENCRYPT_ACME_CHALLENGE_PATH;
     482                $return['success'] = false;
     483                $return['message'] = $error_string;
     484                print_r(json_encode($return));exit;
     485            }
     486        }
     487        $dir = $wp_filesystem->find_folder(OSELETSENCRYPT_ACME_CHALLENGE_PATH);
     488        $file = trailingslashit($dir) . "test.txt";
     489        $created = $wp_filesystem->put_contents($file, 'test', 0755);
     490        if(!$created){
     491            $error_string = __('ERROR: There was an error creating test file in').' '.OSELETSENCRYPT_ACME_CHALLENGE_PATH;
     492            $return['success'] = false;
     493            $return['message'] = $error_string;
     494            print_r(json_encode($return));exit;
     495        }
     496        /*
     497        $deleted = $wp_filesystem->delete($file);
     498        if(!$created){
     499            $error_string = __('ERROR: There was an error deleting test file in').' '.OSELETSENCRYPT_ACME_CHALLENGE_PATH;
     500            $return['success'] = false;
     501            $return['message'] = $error_string;
     502            print_r(json_encode($return));exit;
     503        }
     504        */
     505        $this->saveFtpInfo($creds);
     506        $return['message'] = __( 'Saved!', 'oseletsencrypt' );
     507        print_r(json_encode($return));exit;
     508    }
     509    protected function saveFtpInfo($creds){
     510        $data = $this->getData();
     511        if(!isset($data['web_token']) || empty($data['web_token'])){
     512            $data['web_token'] = $this->generateToken(16);
     513        }
     514        $data['hostname'] = base64_encode($creds['hostname']);
     515        $data['username'] = base64_encode($creds['username']);
     516        $data['password'] = base64_encode($creds['password']);
     517        $data['connection_type'] = $creds['connection_type'];
     518        return  update_option($this->option_name, $data);
    387519    }
    388520}
  • ose-lets-encrypt/trunk/README.txt

    r1956663 r1958953  
    66Tested up to: 4.9.8
    77Requires PHP: 5.3
    8 Stable tag: 1.1.5
     8Stable tag: 1.1.6
    99License: GNU General Public License v3
    1010License URI: http://www.gnu.org/licenses/gpl-3.0.txt
     
    4848
    4949== Changelog ==
     50= 1.1.6 =
     51* Change to use native WordPress ftp function to run ftp mode
     52
    5053= 1.1.5 =
    5154* Update plugin description
  • ose-lets-encrypt/trunk/api.php

    r1954763 r1958953  
    33 * oseLetsencryptApi class
    44 *
    5  * @package OSE Let's Encrypt
     5 * @package OSE Free SSL
    66 * @author Open Source Excellence <https://www.opensource-excellence.com/>
    77 * @since 1.0.0
  • ose-lets-encrypt/trunk/assets/css/admin.css

    r1954763 r1958953  
    22    margin-top: 5px !important;
    33    color: #46b450;
     4}
     5.error-message{
     6    color: #F00;
    47}
    58.terms{
     
    3336}
    3437
    35 #oseletsencrypt-account-form input[type='checkbox']{
     38#oseletsencrypt-account-form input[type='checkbox']
     39{
    3640    -webkit-appearance: checkbox !important;
    3741}
    3842
    39 #oseletsencrypt-account-form input[type="radio"] {
    40     -webkit-appearance: radio !important;
    41     margin-right: 10px;
     43input[type='checkbox'], input[type='radio'] {
     44    display: inline-block !important;
    4245}
    4346
     
    7982    display: none;
    8083}
     84#upgrade{
     85    display: none;
     86}
     87
     88.modal-footer, .modal-header {
     89    padding: 5px 15px !important;
     90}
  • ose-lets-encrypt/trunk/assets/js/admin.js

    r1954774 r1958953  
    1111        jQuery(this).append('<input type="hidden" name="action" value="store_account_data" />');
    1212        jQuery(this).append('<input type="hidden" name="security" value="'+ oseletsencrypt_exchanger._nonce +'" />');
    13 
     13        jQuery('#error-message').text('');
    1414        // We make our call
    1515        jQuery.ajax( {
     
    1919            success: function (response) {
    2020             //   alert(response);
    21                 jQuery('#response-message').text(response);
    22                 jQuery('#oseletsencrypt-ssl-request').attr("disabled",false);
     21                data = jQuery.parseJSON(response);
     22                if(data.status == true){
     23                    jQuery('#response-message').text(data.message);
     24                }else{
     25                    jQuery('#ftpModal').modal();
     26                }
    2327            }
    2428        } );
     
    7579    }
    7680    showHideMode();
     81
     82    jQuery('#oseletsencrypt-process').click(function () {
     83        var password = encodeURIComponent(jQuery( '#password').val());
     84        jQuery.ajax( {
     85            url: oseletsencrypt_exchanger.ajax_url,
     86            type: 'post',
     87            data: "action=create_folders&hostname="+jQuery( '#hostname').val()+"&username="+jQuery( '#username').val()+"&password="+password+"&connection_type="+jQuery("input[name='connection_type']:checked").val()+"&security="+oseletsencrypt_exchanger._nonce,
     88            success: function (response) {
     89                data = jQuery.parseJSON(response);
     90                if(data.success == true){
     91                    jQuery('#ftpModal').modal('hide');
     92                    jQuery('#response-message').text(data.message);
     93                }else{
     94                    jQuery('#error-message').text(data.message);
     95                }
     96            }
     97        } );
     98    });
    7799/*
    78100    jQuery("#view-terms").click(function () {
  • ose-lets-encrypt/trunk/ose-letsencrypt.php

    r1956664 r1958953  
    1616 * Plugin URI:        https://www.opensource-excellence.com/
    1717 * Description:       OSE Free SSL is an easy-to-use plugin to create SSL certificates from Let’s Encrypt (https://letsencrypt.org) platform which provides free SSL certificates for everyone.
    18  * Version:           1.1.5
     18 * Version:           1.1.6
    1919 * Author:            Open Source Excellence
    2020 * Author URI:        https://www.opensource-excellence.com/
     
    7979        add_action('wp_ajax_check_account_data',  array($this,'checkAccountData'));
    8080        add_action('wp_ajax_send_ssl_request',  array($this,'sendSslRequest'));
     81        add_action('wp_ajax_create_folders',  array($this,'createFolders'));
    8182        //add_action('wp_ajax_get_terms',  array($this,'getTerms'));
    8283        add_action( 'rest_api_init',  array($this,'letsencrypt_rest_register_route'));
     
    99100        $content = $request["filecontent"];
    100101        $filename = OSELETSENCRYPT_ACME_CHALLENGE_PATH.$request["filename"];
    101         if($request['action']== 'acme-challenge-delete'){
    102             if(file_exists($filename)){
    103                 unlink($filename);
     102        $data = $this->getData();
     103        if(isset($data['hostname']) && !empty($data['hostname']) && isset($data['username']) && !empty($data['username'])
     104        && isset($data['password']) && !empty($data['password']) && isset($data['connection_type']) && !empty($data['connection_type'])){
     105            return $this->acmeChallengeActionsWithFtp($data,$request['action'] ,$request["filename"],$content);
     106        }else{
     107            if($request['action'] == 'acme-challenge-delete'){
     108                if(file_exists($filename)){
     109                    unlink($filename);
     110                }
     111            }else{
     112                file_put_contents($filename,$content);
    104113            }
     114        }
     115        return true;
     116    }
     117    protected function acmeChallengeActionsWithFtp($data,$action,$filename,$conetent){
     118        require_once(ABSPATH . 'wp-admin/includes/file.php');
     119        $creds = array();
     120        $creds['hostname'] = base64_decode($data['hostname']);
     121        $creds['username'] = base64_decode($data['username']);
     122        $creds['password'] = base64_decode($data['password']);
     123        $creds['connection_type'] = $data['connection_type'];
     124        if(!WP_Filesystem($creds)){
     125            echo 'Incorrect credentials';exit;
     126            return false;
     127        }
     128        global $wp_filesystem;
     129        $dir = $wp_filesystem->find_folder(OSELETSENCRYPT_ACME_CHALLENGE_PATH);
     130        $file = trailingslashit($dir) .$filename;
     131        if($action == 'acme-challenge-delete'){
     132            return $wp_filesystem->delete($file);
    105133        }else{
    106             file_put_contents($filename,$content);
    107         }
    108         return true;
     134            return $wp_filesystem->put_contents($file, $conetent, 0755);
     135        }
    109136    }
    110137    public function storeAccountData()
     
    119146        $_POST['oseletsencrypt_web_address'] = $site_url;
    120147
    121         $mode = isset($_POST['oseletsencrypt_mode'])?$_POST['oseletsencrypt_mode']:'';
     148        //$mode = isset($_POST['oseletsencrypt_mode'])?$_POST['oseletsencrypt_mode']:'';
     149        $_POST['oseletsencrypt_mode'] = $mode = 'http';
    122150        if($mode == 'http'){
    123             $data['web_token'] = $token = $this->generateToken(16);
    124151            $result = $this->checkPermission();
    125152            if(!$result['status']){
    126                 echo __($result['message'], 'oseletsencrypt');
    127                 die();
     153                $data['web_address'] = $site_url;
     154                $data['email'] = sanitize_email($_POST['oseletsencrypt_email']);
     155                update_option($this->option_name, $data);
     156                print_r(json_encode($result));exit;
     157            }else{
     158                $data['web_token'] = $token = $this->generateToken(16);
     159                foreach ($_POST as $field=>$value) {
     160
     161                    if (substr($field, 0, 15) !== "oseletsencrypt_")
     162                        continue;
     163
     164                    if (empty($value))
     165                        unset($data[$field]);
     166
     167                    // We remove the oseletsencrypt_ prefix to clean things up
     168                    $field = substr($field, 15);
     169
     170                    $data[$field] = esc_attr__($value);
     171
     172                }
     173                $data = $this->sanitizeData($data);
     174                update_option($this->option_name, $data);
    128175            }
    129176        }
    130 
    131         foreach ($_POST as $field=>$value) {
    132 
    133             if (substr($field, 0, 15) !== "oseletsencrypt_")
    134                 continue;
    135 
    136             if (empty($value))
    137                 unset($data[$field]);
    138 
    139             // We remove the oseletsencrypt_ prefix to clean things up
    140             $field = substr($field, 15);
    141 
    142             $data[$field] = esc_attr__($value);
    143 
    144         }
    145         $data = $this->sanitizeData($data);
    146         update_option($this->option_name, $data);
    147         echo __('Saved!', 'oseletsencrypt');
    148         die();
     177        $return = array();
     178        $return['status'] = true;
     179        $return['message'] = __( 'Saved!', 'oseletsencrypt' );
     180        print_r(json_encode($return));exit;
     181        //echo __('Saved!', 'oseletsencrypt');
     182        //die();
    149183
    150184    }
     
    214248    {
    215249        add_menu_page(
    216             __( 'OSE Let\'s Encrypt', 'oseletsencrypt' ),
    217             __( 'OSE Let\'s Encrypt', 'oseletsencrypt' ),
     250            __( 'OSE Free SSL', 'oseletsencrypt' ),
     251            __( 'OSE Free SSL', 'oseletsencrypt' ),
    218252            'manage_options',
    219253            'oseletsencrypt',
     
    247281                            <div class="column column-50">
    248282                                <h1><?php _e('OSE Free SSL Settings', 'oseletsencrypt'); ?></h1>
     283                                <!--
    249284                                <div>
    250285                                    <label for="mode"><?php _e( 'Mode', 'oseletsencrypt' ); ?></label>
     
    252287                                    <input type="radio" name="oseletsencrypt_mode" value="ftp">FTP
    253288                                </div>
     289                                -->
    254290                                <div class="ftp-form-fields">
    255291                                    <label for="ftp-server"><?php _e( 'FTP Server', 'oseletsencrypt' ); ?></label>
     
    316352            </form>
    317353
     354            <div class="modal fade" id="ftpModal" tabindex="-1" role="dialog" aria-labelledby="ftpModalLabel" aria-hidden="true">
     355                <div class="modal-dialog">
     356                    <div class="modal-content">
     357                        <div class="modal-header">
     358                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×
     359                            </button>
     360                        </div>
     361                        <div id="ftp-modal-body" class="modal-body">
     362                            <?php request_filesystem_credentials( site_url() );?>
     363                            <div id="error-message" class="error-message"></div>
     364                        </div>
     365                        <div class="modal-footer">
     366                            <button type="button" class="btn btn-default" id="oseletsencrypt-process">
     367                                <?php _e( 'Process', 'oseletsencrypt' ); ?>
     368                            </button>
     369                            <button type="button" class="btn btn-default" data-dismiss="modal">
     370                                <?php _e( 'Close', 'oseletsencrypt' ); ?>
     371                            </button>
     372                        </div>
     373                    </div>
     374                </div>
     375            </div>
     376
    318377        </div>
    319378        <?php
     
    378437            return $return;
    379438        }
     439        return $return;
    380440    }
    381441    protected function checkToken($web_token){
     
    385445        }
    386446        return false;
     447    }
     448    public function createFolders(){
     449        if (wp_verify_nonce($_POST['security'], $this->_nonce ) === false)
     450            die('Invalid Request! Reload your page please.');
     451
     452        $return = array();
     453        $return['success'] = true;
     454        $creds = array();
     455        $data = $this->sanitizeData($_POST);
     456        $creds['hostname'] = $data['hostname'];
     457        $creds['username'] = $data['username'];
     458        $creds['password'] = $data['password'];
     459        $creds['connection_type'] = $data['connection_type'];
     460        if(!WP_Filesystem($creds)){
     461            $error_string = __('ERROR: There was an error connecting to the server, Please verify the settings are correct.');
     462            $return['success'] = false;
     463            $return['message'] = $error_string;
     464            print_r(json_encode($return));exit;
     465        }
     466        global $wp_filesystem;
     467        if(!file_exists(OSELETSENCRYPT_WELL_KNOWN_PATH)){
     468           $dest = $wp_filesystem->abspath();
     469           $created = $wp_filesystem->mkdir($dest.'.well-known/',0755);
     470           if(!$created){
     471               $error_string = __('ERROR: There was an error creating folder').' '.OSELETSENCRYPT_WELL_KNOWN_PATH;
     472               $return['success'] = false;
     473               $return['message'] = $error_string;
     474               print_r(json_encode($return));exit;
     475           }
     476        }
     477        if(!file_exists(OSELETSENCRYPT_ACME_CHALLENGE_PATH)){
     478            $dest = $wp_filesystem->find_folder(OSELETSENCRYPT_WELL_KNOWN_PATH);
     479            $created = $wp_filesystem->mkdir($dest.'acme-challenge/',0755);
     480            if(!$created){
     481                $error_string = __('ERROR: There was an error creating folder').' '.OSELETSENCRYPT_ACME_CHALLENGE_PATH;
     482                $return['success'] = false;
     483                $return['message'] = $error_string;
     484                print_r(json_encode($return));exit;
     485            }
     486        }
     487        $dir = $wp_filesystem->find_folder(OSELETSENCRYPT_ACME_CHALLENGE_PATH);
     488        $file = trailingslashit($dir) . "test.txt";
     489        $created = $wp_filesystem->put_contents($file, 'test', 0755);
     490        if(!$created){
     491            $error_string = __('ERROR: There was an error creating test file in').' '.OSELETSENCRYPT_ACME_CHALLENGE_PATH;
     492            $return['success'] = false;
     493            $return['message'] = $error_string;
     494            print_r(json_encode($return));exit;
     495        }
     496        /*
     497        $deleted = $wp_filesystem->delete($file);
     498        if(!$created){
     499            $error_string = __('ERROR: There was an error deleting test file in').' '.OSELETSENCRYPT_ACME_CHALLENGE_PATH;
     500            $return['success'] = false;
     501            $return['message'] = $error_string;
     502            print_r(json_encode($return));exit;
     503        }
     504        */
     505        $this->saveFtpInfo($creds);
     506        $return['message'] = __( 'Saved!', 'oseletsencrypt' );
     507        print_r(json_encode($return));exit;
     508    }
     509    protected function saveFtpInfo($creds){
     510        $data = $this->getData();
     511        if(!isset($data['web_token']) || empty($data['web_token'])){
     512            $data['web_token'] = $this->generateToken(16);
     513        }
     514        $data['hostname'] = base64_encode($creds['hostname']);
     515        $data['username'] = base64_encode($creds['username']);
     516        $data['password'] = base64_encode($creds['password']);
     517        $data['connection_type'] = $creds['connection_type'];
     518        return  update_option($this->option_name, $data);
    387519    }
    388520}
Note: See TracChangeset for help on using the changeset viewer.