Author: jfthomps
Date: Mon Oct 13 18:08:44 2014
New Revision: 1631498

URL: http://svn.apache.org/r1631498
Log:
VCL-253 - Allow users to specify RDP port

xmlrpcWrappers.php: modified XMLRPCgetRequestConnectData: if not using NAT, 
connectmethod is RDP, and connectmethodport is 3389, set port to user's rdp 
port instead of connectmethod port

utils.php: modified sendRDPfile: if not using NAT and port is 3389 and user has 
specified a different RDP port, add the user's RDP port to the 'full address'

userpreferences.php: modified processUserPrefsInput: use 3389 as the default 
port instead of user's specified port - this allows the user to enter an empty 
string to get 3389 as the default; added a check that prevents user from 
changing RDP port if user has active reservations

requests.php: modified AJconnectRequest: if not using NAT, connectmethod is 
RDP, and connectmethodport is 3389, set port to user's rdp port instead of 
connectmethod port

Modified:
    vcl/trunk/web/.ht-inc/requests.php
    vcl/trunk/web/.ht-inc/userpreferences.php
    vcl/trunk/web/.ht-inc/utils.php
    vcl/trunk/web/.ht-inc/xmlrpcWrappers.php

Modified: vcl/trunk/web/.ht-inc/requests.php
URL: 
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/requests.php?rev=1631498&r1=1631497&r2=1631498&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/requests.php (original)
+++ vcl/trunk/web/.ht-inc/requests.php Mon Oct 13 18:08:44 2014
@@ -4164,8 +4164,14 @@ function AJconnectRequest() {
                        foreach($method['ports'] as $port) {
                                if($usenat && array_key_exists($port['key'], 
$natports[$cmid]))
                                        $msg = preg_replace("/{$port['key']}/", 
$natports[$cmid][$port['key']]['publicport'], $msg); 
-                               else
-                                       $msg = preg_replace("/{$port['key']}/", 
$port['port'], $msg); 
+                               else {
+                                       if((preg_match('/remote desktop/i', 
$method['description']) ||
+                                          preg_match('/RDP/i', 
$method['description'])) && 
+                                          $port['key'] == '#Port-TCP-3389#')
+                                               $msg = 
preg_replace("/{$port['key']}/", $user['rdpport'], $msg); 
+                                       else
+                                               $msg = 
preg_replace("/{$port['key']}/", $port['port'], $msg); 
+                               }
                        }
                        #$h .= preg_replace("/(.{1,120}([ ]|$))/", '\1<br>', 
$msg);
                        $h .= $msg;

Modified: vcl/trunk/web/.ht-inc/userpreferences.php
URL: 
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/userpreferences.php?rev=1631498&r1=1631497&r2=1631498&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/userpreferences.php (original)
+++ vcl/trunk/web/.ht-inc/userpreferences.php Mon Oct 13 18:08:44 2014
@@ -605,7 +605,7 @@ function processUserPrefsInput($checks=1
        $return["mapdrives"] = processInputVar("mapdrives" , ARG_NUMERIC, 
$user["mapdrives"]);
        $return["mapprinters"] = processInputVar("mapprinters" , ARG_NUMERIC, 
$user["mapprinters"]);
        $return["mapserial"] = processInputVar("mapserial" , ARG_NUMERIC, 
$user["mapserial"]);
-       $return["rdpport"] = processInputVar("rdpport" , ARG_NUMERIC, 
$user["rdpport"]);
+       $return["rdpport"] = processInputVar("rdpport" , ARG_NUMERIC, 3389);
 
        if(! $checks) {
                return $return;
@@ -640,7 +640,24 @@ function processUserPrefsInput($checks=1
                        $submitErrMsg[LOCALPASSWORDERR] = _("Passwords do not 
match");
                }
        }
-       if($return['rdpport'] < 1024 || $return['rdpport'] > 65535) {
+       if($return['rdpport'] != $user['rdpport']) {
+               $requests = getUserRequests('all');
+               $nochange = 0;
+               foreach($requests as $req) {
+                       if(preg_match('/^(3|8|24|25|26|27|28|29)$/', 
$req['currstateid']) ||
+                          ($req['currstateid'] == 14 &&
+                               preg_match('/^(3|8|24|25|26|27|28|29)$/', 
$req['laststateid']))) {
+                               $nochange = 1;
+                               break;
+                       }
+               }
+               if($nochange) {
+                       $submitErr |= RDPPORTERR;
+                       $submitErrMsg[RDPPORTERR] = _("RDP Port cannot be 
changed while you have active reservations");
+               }
+       }
+       if(! ($submitErr & RDPPORTERR) &&
+          ($return['rdpport'] < 1024 || $return['rdpport'] > 65535)) {
                $submitErr |= RDPPORTERR;
                $submitErrMsg[RDPPORTERR] = _("RDP Port must be between 1024 
and 65535");
        }

Modified: vcl/trunk/web/.ht-inc/utils.php
URL: 
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/utils.php?rev=1631498&r1=1631497&r2=1631498&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/utils.php (original)
+++ vcl/trunk/web/.ht-inc/utils.php Mon Oct 13 18:08:44 2014
@@ -9690,8 +9690,13 @@ function sendRDPfile() {
                        # assume index 0 of ports for nat
                        if(! empty($natports) && 
array_key_exists($method['ports'][0]['key'], $natports[$cmid]))
                                $port = ':' . 
$natports[$cmid][$method['ports'][0]['key']]['publicport'];
-                       else
-                               $port = ':' . $method['ports'][0]['port'];
+                       else {
+                               if($method['ports'][0]['key'] == 
'#Port-TCP-3389#' &&
+                                  $user['rdpport'] != 3389)
+                                       $port = ':' . $user['rdpport'];
+                               else
+                                       $port = ':' . 
$method['ports'][0]['port'];
+                       }
                        break;
                }
        }

Modified: vcl/trunk/web/.ht-inc/xmlrpcWrappers.php
URL: 
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/xmlrpcWrappers.php?rev=1631498&r1=1631497&r2=1631498&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/xmlrpcWrappers.php (original)
+++ vcl/trunk/web/.ht-inc/xmlrpcWrappers.php Mon Oct 13 18:08:44 2014
@@ -812,8 +812,16 @@ function XMLRPCgetRequestConnectData($re
                                        $connectMethods[$key]['connectports'][] 
= 
"{$port['protocol']}:{$port['port']}:{$natports[$key][$port['key']]['publicport']}";
                                }
                                else {
-                                       $connecttext = 
preg_replace("/{$port['key']}/", $port['port'], $connecttext); 
-                                       $connectMethods[$key]['connectports'][] 
= "{$port['protocol']}:{$port['port']}:{$port['port']}";
+                                       if((preg_match('/remote desktop/i', 
$cm['description']) ||
+                                          preg_match('/RDP/i', 
$cm['description'])) && 
+                                          $port['key'] == '#Port-TCP-3389#') {
+                                               $connecttext = 
preg_replace("/{$port['key']}/", $user['rdpport'], $connecttext); 
+                                               
$connectMethods[$key]['connectports'][] = 
"{$port['protocol']}:{$port['port']}:{$user['rdpport']}";
+                                       }
+                                       else {
+                                               $connecttext = 
preg_replace("/{$port['key']}/", $port['port'], $connecttext); 
+                                               
$connectMethods[$key]['connectports'][] = 
"{$port['protocol']}:{$port['port']}:{$port['port']}";
+                                       }
                                }
                        }
                        $connectMethods[$key]["connecttext"] = $connecttext;
@@ -823,7 +831,12 @@ function XMLRPCgetRequestConnectData($re
                $tmp = array_keys($portdata);
                $cmid = $tmp[0];
                if(empty($natports))
-                       $connectport = $portdata[$cmid][0]['port'];
+                       if((preg_match('/remote desktop/i', 
$connectMethods[$cmid]['description']) ||
+                          preg_match('/RDP/i', 
$connectMethods[$cmid]['description'])) && 
+                               $portdata[$cmid][0]['port'] == 3389)
+                               $connectport = $user['rdpport'];
+                       else
+                               $connectport = $portdata[$cmid][0]['port'];
                else {
                        $key = $portdata[$cmid][0]['key'];
                        $connectport = $natports[$cmid][$key]['publicport'];


Reply via email to