smeserver-phpvirtualbox/smeserver-phpvirtualbox-5.2.1-multiple_changes.patch

432 lines
22 KiB
Diff
Raw Permalink Normal View History

diff -urN smeserver-phpvirtualbox-5.2.1.old/createlinks smeserver-phpvirtualbox-5.2.1/createlinks
--- smeserver-phpvirtualbox-5.2.1.old/createlinks 2022-10-18 09:49:44.000000000 +1100
+++ smeserver-phpvirtualbox-5.2.1/createlinks 2023-03-01 16:58:09.000000000 +1100
@@ -9,17 +9,22 @@
#see the /etc/systemd/system-preset/49-koozali.preset should be present for systemd integration on all you yum update event
foreach my $file (qw(
- /etc/php-fpm.d/phpvirtualbox.conf
- /opt/phpvirtualbox/config.php
+ /etc/httpd/conf/httpd.conf
+ /etc/opt/remi/php74/php-fpm.d/www.conf
+ /etc/samba/smb.conf
+ /opt/phpvirtualbox/config.php
))
{
templates2events( $file, $event );
};
+#we need to expand /opt/phpvirtualbox/config.php when changing the vboxweb runtime user passwd
+templates2events( '/opt/phpvirtualbox/config.php', 'smeserver-virtualbox-update');
+
#action needed in case we have a systemd unit
#event_link('systemd-default', $event, '10');
#event_link('systemd-reload', $event, '50');
#services we need to restart
-#event_services($event, 'vboxdrv' => 'restart', 'vboxweb-service' => 'restart');
+event_services($event, 'httpd-e-smith' => 'restart', 'php74-php-fpm' => 'restart', 'smbd' => 'restart');
#backup_includes("smeserver-virtualbox", qw(
#/home/e-smith/files/users/vbox
diff -urN smeserver-phpvirtualbox-5.2.1.old/README.md smeserver-phpvirtualbox-5.2.1/README.md
--- smeserver-phpvirtualbox-5.2.1.old/README.md 2015-08-08 21:37:59.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/README.md 1970-01-01 10:00:00.000000000 +1000
@@ -1,2 +0,0 @@
-smeserver-phpvirtualbox
-=======================
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/adminUser smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/adminUser
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/adminUser 1970-01-01 10:00:00.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/adminUser 2023-02-25 16:29:54.000000000 +1100
@@ -0,0 +1 @@
+admin
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/authtype smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/authtype
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/authtype 2022-10-17 09:14:35.000000000 +1100
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/authtype 2023-02-25 16:29:54.000000000 +1100
@@ -1 +1 @@
-disabled
+WebAuth
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/type smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/type
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/type 2015-08-08 21:37:59.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/type 2023-02-25 16:29:54.000000000 +1100
@@ -1 +1 @@
-service
+configuration
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/userGroups smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/userGroups
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/userGroups 1970-01-01 10:00:00.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/userGroups 2023-02-28 17:37:52.000000000 +1100
@@ -0,0 +1 @@
+vboxusers
\ No newline at end of file
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/migrate/40phpvirtualbox-change-webauth-to-enabled smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/migrate/40phpvirtualbox-change-webauth-to-enabled
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/migrate/40phpvirtualbox-change-webauth-to-enabled 2015-08-08 21:37:59.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/migrate/40phpvirtualbox-change-webauth-to-enabled 1970-01-01 10:00:00.000000000 +1000
@@ -1,8 +0,0 @@
-{
- my $PVBwebauth = $DB->get_prop('phpvirtualbox', 'webauth') or return;
- if ($PVBwebauth eq 'disabled')
- {
- $DB->set_prop('phpvirtualbox',"webauth", "enabled" );
- }
-}
-
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/migrate/phpvirtualbox smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/migrate/phpvirtualbox
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/migrate/phpvirtualbox 1970-01-01 10:00:00.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/migrate/phpvirtualbox 2023-02-25 16:29:54.000000000 +1100
@@ -0,0 +1,29 @@
+{
+ my $rec = $DB->get('phpvirtualbox')
+ || $DB->new_record('phpvirtualbox', {type => 'configuration'});
+
+ # webauth replaced by authType, which can have multiple values
+ if ($rec->prop('webauth')) {
+ $rec->set_prop('authType', 'WebAuth');
+ $rec->del_prop('webauth');
+ }
+ if ( -e '/etc/e-smith/db/configuration/defaults/phpvirtualbox/Group' ) {
+ unlink '/etc/e-smith/db/configuration/defaults/phpvirtualbox/Group';
+ }
+
+ # Group has been replaced with userGroups, which already allowed for multiple groups
+ if ($rec->prop('Group')) {
+ $rec->set_prop('userGroups', $rec->prop('Group'));
+ $rec->del_prop('Group');
+ }
+
+ # User replaced by Users, because it already allows for multiple users
+ if ($rec->prop('User')) {
+ $rec->set_prop('Users', $rec->prop('User'));
+ $rec->del_prop('User');
+ }
+ if ( -e '/etc/e-smith/db/configuration/defaults/phpvirtualbox/User' ) {
+ unlink '/etc/e-smith/db/configuration/defaults/phpvirtualbox/User';
+ }
+
+}
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35ExternalUnixGroup smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35ExternalUnixGroup
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35ExternalUnixGroup 1970-01-01 10:00:00.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35ExternalUnixGroup 2023-03-07 12:10:50.000000000 +1100
@@ -0,0 +1 @@
+DefineExternalGroup ugroup environment /usr/bin/unixgroup
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35-group-auth smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35-group-auth
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35-group-auth 2015-08-08 21:37:59.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35-group-auth 1970-01-01 10:00:00.000000000 +1000
@@ -1,5 +0,0 @@
-{
- $OUT .= " AddExternalGroup ugroup /usr/bin/unixgroup\n";
- $OUT .= " SetExternalGroupMethod ugroup environment\n";
-}
-
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92phpvirtualhost smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92phpvirtualhost
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92phpvirtualhost 2022-10-18 08:09:34.000000000 +1100
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92phpvirtualhost 2023-03-07 12:09:59.000000000 +1100
@@ -6,8 +6,8 @@
$OUT = "";
my $satisfy = 'all';
my $name = $phpvirtualbox{'Name'} || 'phpvirtualbox';
- my @phpvuser = split(",", ($phpvirtualbox{'User'} || "") );
- my @phpvgroup = split(",", ($phpvirtualbox{'Group'} || "") );
+ my @phpvboxusers = split(",", ($phpvirtualbox{'Users'} || "") );
+ my @phpvboxgroups = split(",", ($phpvirtualbox{'userGroups'} || "") );
my $alias = ($phpvirtualbox{'URL'} || 'phpvirtualbox');
$OUT .= "#------------------------------------------------------------\n";
@@ -18,20 +18,23 @@
$OUT .= "\n";
if ($phpvirtualbox{'authtype'} ne 'disabled') {
$OUT .= "<Location /$alias>\n";
- if ($phpvirtualbox{'authtype'} eq 'httpd_webauth') {
+ if ($phpvirtualbox{'authtype'} eq 'WebAuth') {
$OUT .= " AuthName \"$name\"\n";
- $OUT .= " AuthType Basic\n";
- $OUT .= " AuthBasicProvider \n";
- $OUT .= " AuthExternal webauth\n";
- $OUT .= " GroupExternal ugroup\n";
- $OUT .= " Require user admin @phpvuser\n";
- $OUT .= " Require group @phpvgroup\n";
+ $OUT .= " AuthType Basic\n";
+ $OUT .= " AuthBasicProvider external\n";
+ $OUT .= " AuthExternal pwauth\n";
+ $OUT .= " GroupExternal ugroup\n";
+ $OUT .= " Require user admin @phpvboxusers\n";
+ $OUT .= " Require external-group @phpvboxgroups\n";
} elsif ($phpvirtualbox{'authtype'} eq 'httpd_LDAP') {
- $OUT .= " AuthName \"$name\"\n";
- $OUT .= " AuthType Basic\n";
- $OUT .= " AuthBasicProvider ldap\n";
- $OUT .= " Require ldap-user admin @phpvuser\n";
- $OUT .= " Require ldap-group cn=@phpvgroup, o=*\n";
+ $OUT .= " AuthName \"$name\"\n";
+ $OUT .= " AuthType Basic\n";
+ $OUT .= " AuthBasicProvider ldap\n";
+ $OUT .= " AuthLDAPURL = ldap://localhost/0=$smb{'Workgroup'},%uid\n";
+ $OUT .= " Require ldap-user admin @phpvboxusers\n";
+ foreach my $group (@phpvboxgroups) {
+ $OUT .= " Require ldap-group cn=@group, o=*\n";
+ }
}
$OUT .= "</Location>\n";
$OUT .= "\n";
@@ -46,4 +49,3 @@
$OUT .= " AddType application/x-httpd-php .php\n";
$OUT .= "</Directory>\n";
}
-
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/php-fpm.d/phpvirtualbox.conf/50phpvirtualbox smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/php-fpm.d/phpvirtualbox.conf/50phpvirtualbox
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/php-fpm.d/phpvirtualbox.conf/50phpvirtualbox 2022-10-12 14:58:16.000000000 +1100
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/php-fpm.d/phpvirtualbox.conf/50phpvirtualbox 1970-01-01 10:00:00.000000000 +1000
@@ -1,32 +0,0 @@
-[php74-phpvirtualbox]
-user = www
-group = www
-listen.owner = root
-listen.group = www
-listen.mode = 0660
-listen = /var/run/php-fpm/php74-phpvirtualbox.sock
-pm = dynamic
-pm.max_children = 15
-pm.start_servers = 3
-pm.min_spare_servers = 3
-pm.max_spare_servers = 4
-pm.max_requests = 1000
-slowlog = /var/log/php/phpvirtualbox/slow.log
-php_admin_value[session.save_path] = /var/lib/php/php74/phpvirtualbox/session
-php_admin_value[opcache.file_cache] = /var/lib/php/php74/phpvirtualbox/opcache
-php_admin_value[upload_tmp_dir] = /var/lib/php/php74/phpvirtualbox/tmp
-php_admin_value[sys_temp_dir] = /var/lib/php/php74/phpvirtualbox/tmp
-php_admin_flag[display_errors] = on
-php_admin_flag[log_errors] = on
-php_admin_value[error_log] = /var/log/php/phpvirtualbox/error.log
-php_admin_value[memory_limit] = 128M
-php_admin_value[max_execution_time] = 30
-php_admin_value[upload_max_filesize] = 10M
-php_admin_value[max_input_time] = 60
-php_admin_flag[allow_url_fopen] = 1
-php_admin_flag[file_upload] = on
-php_admin_flag[session.cookie_httponly] = on
-php_admin_flag[allow_url_include] = off
-php_admin_value[session.save_handler] = files
-php_admin_value[open_basedir] = /opt/phpvirtualbox/:/var/lib/php/php74/phpvirtualbox/:/var/log/php/phpvirtualbox/:/var/run/php-fpm/
-php_admin_value[eaccelerator.enable] = 1
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpvirtualbox smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpvirtualbox
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpvirtualbox 1970-01-01 10:00:00.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpvirtualbox 2023-02-25 16:29:54.000000000 +1100
@@ -0,0 +1,65 @@
+{
+
+ my $phpversion = ($phpvirtulabox{Version} || '74');
+ if ($PHP_VERSION eq $phpversion) {
+ if (($phpvirtualbox{'status'} || 'disabled') eq 'enabled') {
+ my $max_upload_size = ($phpvirtualbox{MaxUploadSize} || '4096');
+ $max_upload_size .= 'M' if ($max_upload_size =~ m/^\d+$/);
+ my $memory_limit = ($phpvirtualbox{MemoryLimit} || '500M');
+ $memory_limit .= 'M' if ($memory_limit =~ m/^\d+$/);
+ my $open_basedir= $phpvirtualbox{PHPBaseDir} || '';
+ my $id = 'phpvirtualbox';
+ $open_basedir = "/opt/phpvirtualbox/:/var/log/php/$id/:/var/lib/php/$id/:$open_basedir";
+ my $max_children = $phpvirtualbox{'PHPmaxChildren'} || 20;
+ my $min_spare_servers = $phpvirtualbox{'PHPminServers'} || 4;
+ my $start_servers = $phpvirtualbox{'PHPstartServers'} || 6;
+ my $max_spare_servers = $phpvirtualbox{'PHPmaxServers'} || 8;
+ my $max_requests = $phpvirtualbox{'PHPmaxRequests'} || 1000;
+ $min_spare_servers = ( $min_spare_servers > $max_spare_servers ) ? printf("%.0f",$max_spare_servers/2) : $min_spare_servers;
+ $start_servers = ( $start_servers > $max_spare_servers ) ? printf("%.0f", $max_spare_servers /2 + $min_spare_servers/2 ) : $start_servers;
+
+ $OUT .=<<_EOF;
+
+[php$PHP_VERSION-$id]
+user = www
+group = www
+listen.owner = root
+listen.group = www
+listen.mode = 0660
+listen = /var/run/php-fpm/php$PHP_VERSION-$id.sock
+pm = dynamic
+pm.max_children = $max_children
+pm.start_servers = $start_servers
+pm.min_spare_servers = $min_spare_servers
+pm.max_spare_servers = $max_spare_servers
+pm.max_requests = $max_requests
+php_admin_value[session.save_path] = /var/lib/php/$id/session
+php_admin_value[session.gc_maxlifetime] = 86400
+php_admin_value[opcache.file_cache] = /var/lib/php/$id/opcache
+php_admin_value[upload_tmp_dir] = /var/lib/php/$id/tmp
+php_admin_value[error_log] = /var/log/php/$id/error.log
+slowlog = /var/log/php/$id/slow.log
+php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName }
+php_admin_flag[display_errors] = off
+php_admin_flag[log_errors] = on
+php_admin_value[memory_limit] = $memory_limit
+php_admin_value[max_execution_time] = 3600
+php_admin_value[post_max_size] = $max_upload_size
+php_admin_value[upload_max_filesize] = $max_upload_size
+php_admin_value[disable_functions] = system, show_source, symlink, dl, passthru, phpinfo, escapeshellarg, escapeshellcmd
+php_admin_value[open_basedir] = $open_basedir
+php_admin_flag[allow_url_fopen] = on
+php_admin_flag[file_uploads] = on
+php_admin_flag[session.cookie_httponly] = on
+php_admin_flag[allow_url_include] = off
+php_admin_value[session.save_handler] = files
+php_admin_flag[output_buffering] = off
+php_admin_flag[eaccelerator.enable] = on
+
+_EOF
+
+ } else {
+ $OUT .= '; phpvirtualbox is disabled';
+ }
+ }
+}
\ No newline at end of file
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox 1970-01-01 10:00:00.000000000 +1000
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox 2023-03-07 13:11:47.000000000 +1100
@@ -0,0 +1,33 @@
+{
+ my $validusers = '';
+ if ($phpvirtualbox{'adminUser'} || $phpvirtualbox{'userGroups'}) {
+ if ($phpvirtualbox{'adminUser'}) {
+ $validusers = "$phpvirtualbox{'adminUser'}";
+ if ($phpvirtualbox{'userGroups'}) {
+ $validusers .= ",+$phpvirtualbox{'userGroups'}";
+ }
+ } else {
+ if ($phpvirtualbox{'userGroups'}) {
+ $validusers = "+$phpvirtualbox{'userGroups'}";
+ }
+ }
+ }
+
+ $OUT .=<<_VBOX;
+
+[virtualbox]
+comment = virtualbox ISO directory
+path = /opt/vbox/ISOs
+read only = no
+writable = yes
+printable = no
+inherit permissions = yes
+create mode = 0640
+
+_VBOX
+
+ if ($validusers) {
+ $OUT .= "valid users = $validusers\n";
+ }
+
+}
\ No newline at end of file
diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/opt/phpvirtualbox/config.php/config.php smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/opt/phpvirtualbox/config.php/config.php
--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/opt/phpvirtualbox/config.php/config.php 2023-03-07 16:07:55.309653000 +1100
+++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/opt/phpvirtualbox/config.php/config.php 2023-03-07 12:07:39.000000000 +1100
@@ -1,38 +1,90 @@
{
+# domain stuff
+ my $baseDN = esmith::util::ldapBase($DomainName);
+ my $workgroup = $smb{'Workgroup'};
+# vboxweb parameters
+ my $username = (${'vboxweb-service'}{'user'} || 'vbox');
+ my $password = ${'vboxweb-service'}{'password'};
+ my $location = ("http://${'vboxweb-service'}{'access'}:${'vboxweb-service'}{'TCPPort'}/" || "http://127.0.0.1:18083/");
+# phpvirtualbox parameters for users
+ my $adminUser = ($phpvirtualbox{'adminUser'} || 'admin');
+ my $adminGroup = ($phpvirtualbox{'adminGroup'} || 'admin');
+ my $userGroups = $phpvirtualbox{'userGroups'};
+# phpvirtualbox config parameters
+ my $language = ($phpvirtualbox{'language'} || 'en');
+ my $vrdeports = ($phpvirtualbox{'vrdeports'} || '19000-19100');
+ my $maxProgressList = ($phpvirtualbox{'maxProgressList'} || 5);
+ my $deleteOnRemove = ($phpvirtualbox{'deleteOnRemove'} || true);
+ my $browserRestrictFiles = ($phpvirtualbox{'browserRestrictFiles'} || "'.iso','.vdi','.vmdk','.img','.bin','.vhd','.hdd','.ovf','.ova','.xml','.vbox','.cdr','.dmg','.ima','.dsk','.vfd'");
+ my $browserRestrictFolders = ($phpvirtualbox{'browserRestrictFolders'} || "'/opt/vbox/ISOs','/opt/vbox/VMs'");
+ my $hostMemInfoRefreshInterval = ($phpvirtualbox{'hostMemInfoRefreshInterval'} || 5);
+ my $consoleResolutions = ($phpvirtualbox{'consoleResolutions'} || "'640x480','800x600','1024x768','1280x720','1440x900'");
+ my $consoleKeyboardLayout = ($phpvirtualbox{'consoleKeyboardLayout'} || 'EN');
+ my $nicMax = ($phpvirtualbox{'nicMax'} || 4);
+# working
+ my @phpvboxusers = split(",", ($phpvirtualbox{'Users'} || "") );
+ my @phpvboxgroups = split(",", ($phpvirtualbox{'userGroups'} || "") );
$OUT .=<<_PARMS;
-
+
class phpVBoxConfig {
-var \$username = 'vbox';
-var \$location = 'http://127.0.0.1:18083/';
-var \$language = 'en';
-var \$vrdeports = '9000-9100';
-var \$maxProgressList = 5;
-var \$deleteOnRemove = true;
-var \$browserRestrictFiles = array('.iso','.vdi','.vmdk','.img','.bin','.vhd','.hdd','.ovf','.ova','.xml','.vbox','.cdr','.dmg','.ima','.dsk','.vfd');
-var \$hostMemInfoRefreshInterval = 5;
-var \$consoleResolutions = array('640x480','800x600','1024x768','1280x720','1440x900');
-var \$consoleKeyboardLayout = 'EN';
-var \$nicMax = 4;
+# default paramaters
+var \$username = '$username';
+var \$password = '$password';
+var \$location = '$location';
+var \$language = '$language';
+var \$vrdeports = '$vrdeports';
+var \$maxProgressList = $maxProgressList;
+var \$deleteOnRemove = $deleteOnRemove;
+var \$browserRestrictFiles = array($browserRestrictFiles);
+var \$browserRestrictFolders = array($browserRestrictFolders);
+var \$hostMemInfoRefreshInterval = $hostMemInfoRefreshInterval;
+var \$consoleResolutions = array($consoleResolutions);
+var \$consoleKeyboardLayout = '$consoleKeyboardLayout';
+var \$nicMax = $nicMax;
+
+# authentication parameters
_PARMS
- my $authtype = $phpvirtualbox{'authtype'} || 'disabled';
- if ($authtype eq 'webauth') {
- $OUT .= "var \$authLib = 'WebAuth';\n";
- $OUT .= "var \$authConfig = array('adminUser' => 'admin');\n";
- } elsif ($authtype eq 'Builtin') {
+# authentication stuff
+ my $authtype = ($phpvirtualbox{'authType'} || 'WebAuth');
+ if ($authtype eq 'Builtin') {
$OUT .= "var \$authLib = 'Builtin';\n";
+ } elsif ($authtype eq 'WebAuth') {
+ $OUT .= "var \$authLib = 'WebAuth';\n";
+ $OUT .= "var \$authConfig = array('adminUser' => '$adminUser');\n";
} elsif ($authtype eq 'LDAP') {
$OUT .= "var \$authLib = 'LDAP';\n";
$OUT .= "var \$authConfig = array(\n";
- $OUT .= " 'host' => '127.0.0.1',\n";
- $OUT .= " 'bind_dn' => 'uid=%s, ou=Users, dc=mycompany, dc=local',\n";
- $OUT .= " 'adminUser' => 'admin');\n";
+ $OUT .= " 'host' => '127.0.0.1',\n";
+ $OUT .= " 'bind_dn' => 'uid=%s, ou=Users, $baseDN',\n";
+ $OUT .= " 'adminUser' => $adminUser);\n";
+ } elsif ($authtype eq 'AD' && $workgroup ) {
+ $OUT .= "var \$authLib = 'ActiveDirectory';\n";
+ $OUT .= "var \$authConfig = array(\n";
+ $OUT .= " 'host' => '127.0.0.1',\n";
+ $OUT .= " 'domain' => '$workgroup',\n";
+ $OUT .= " 'admin_group' => '$adminGroup'";
+ if ($userGroups) {
+ foreach my $group (@phpvboxgroups) {
+ $OUT .= ",\n";
+ $OUT .= " 'user_group' => '$group'";
+ }
+ };
+ $OUT .= ");\n";
} else {
$OUT .= "var \$noAuth=true;\n";
}
-
+
+# allow inclusion of any generic parameter stored in config db for phpvirtualbox
+ $OUT .= "# additional parameters defined in configuration DB\n";
+ my @stdparms = qw(type status Name Users userGroups adminUser adminGroup authtype language vrdeports maxProgressList deleteOnRemove browserRestrictFiles browserRestrictFolders consolresolutions hostMemInfoRefreshInterval consoleKeyboardLayout nicMax);
+ while (my ($param, $value) = each (%phpvirtualbox)) {
+ next if ( $param ~~ @stdparms );
+ $OUT .= "var \$$param = $value;\n";
+ }
+
$OUT .= "}\n";
-
+
}