3be4b0f7e5f7d443a3badb4a23db1f33cfe2149b
bernd Webapp-Installer, erste Ver...

bernd authored 15 years ago

1) <?php
2) 
3) require_once('inc/base.php');
4) 
5) function create_new_webapp($appname, $directory, $url, $data)
6) {
bernd Doppelte webapp-installer-t...

bernd authored 15 years ago

7)   if (directory_in_use($directory))
8)     system_failure('Sie haben erst kürzlich eine Anwendung in diesem Verzeichnis installieren lassen. Die Installation ist noch nicht beendet.');
bernd Webapp-Installer, erste Ver...

bernd authored 15 years ago

9)   $username = mysql_real_escape_string($_SESSION['userinfo']['username']);
10)   $appname = mysql_real_escape_string($appname);
11)   $directory = mysql_real_escape_string($directory);
12)   $url = mysql_real_escape_string($url);
13)   $data = mysql_real_escape_string($data);
14)   db_query("INSERT INTO vhosts.webapp_installer VALUES (NULL, '{$appname}', '{$directory}', '{$url}', 'new', '{$username}', '{$data}')");
15) }
16) 
17) 
bernd * alle internen Links sinnv...

bernd authored 15 years ago

18) function request_update($appname, $directory, $url)
19) {
bernd Doppelte webapp-installer-t...

bernd authored 15 years ago

20)   if (directory_in_use($directory))
21)     system_failure('Sie haben erst kürzlich eine Anwendung in diesem Verzeichnis installieren lassen oder ein Update in diesem Verzeichnis angefordert. Bitte warten Sie bis diese Aktion durchgeführt wurde.');
bernd * alle internen Links sinnv...

bernd authored 15 years ago

22)   $username = mysql_real_escape_string($_SESSION['userinfo']['username']);
23)   $appname = mysql_real_escape_string($appname);
24)   $directory = mysql_real_escape_string($directory);
25)   $url = maybe_null(mysql_real_escape_string($url));
26)   db_query("INSERT INTO vhosts.webapp_installer VALUES (NULL, '{$appname}', '{$directory}', {$url}, 'old', '{$username}', NULL)");
27) }
28) 
bernd Doppelte webapp-installer-t...

bernd authored 15 years ago

29) function directory_in_use($directory)
30) {
31)   $directory = mysql_real_escape_string($directory);
32)   $result = db_query("SELECT id FROM vhosts.webapp_installer WHERE state IN ('new','old') AND directory='{$directory}'");
33)   if (mysql_num_rows($result) > 0)
34)     return true;
35)   return false;
36) }
bernd * alle internen Links sinnv...

bernd authored 15 years ago

37) 
38) function upgradeable($appname, $version)
39) {
40)   DEBUG("Is {$appname}-{$version} upgradeable?");
41)   if ($appname == 'Drupal')
42)   {
43)     DEBUG("found Drupal!");
44)     if (substr($version, 0, 2) == '6.')
45)     {
46)       DEBUG("found Drupal-6.*!");
47)       return 'drupal6';
48)     }
49)     DEBUG("Version: ".substr($version, 0, 2));
50)   }
51)   DEBUG("found no upgradeable webapp!");
52)   return NULL;
53) }
54) 
55) 
56) function get_url_for_dir($docroot, $cutoff = '')
57) {
58)   if (substr($docroot, -1) == '/')
59)     $docroot = substr($docroot, 0, -1);
60)   $docroot = mysql_real_escape_string($docroot);
61)   $result = db_query("SELECT `ssl`, IF(FIND_IN_SET('aliaswww', options), CONCAT('www.',fqdn), fqdn) AS fqdn FROM vhosts.v_vhost WHERE docroot IN ('{$docroot}', '{$docroot}/') LIMIT 1");
62)   if (mysql_num_rows($result) < 1)
63)   {
64)     if (!strstr($docroot, '/'))
65)       return NULL;
66)     return get_url_for_dir(substr($docroot, 0, strrpos($docroot, '/')), substr($docroot, strrpos($docroot, '/')).$cutoff);
67)   } 
68)   $tmp = mysql_fetch_assoc($result);
69)   $prefix = 'http://';
70)   if ($tmp['ssl'] == 'forward' || $tmp['ssl'] == 'https')
71)     $prefix = 'https://';
72)   return $prefix.$tmp['fqdn'].$cutoff;
73) }
74) 
75) 
bernd Frage Datenbank-Kürzel nich...

bernd authored 15 years ago

76) function create_webapp_mysqldb($application, $sitename)
bernd Webapp-Installer, erste Ver...

bernd authored 15 years ago

77) {
78)   // dependet auf das mysql-modul
79)   require_once('modules/mysql/include/mysql.php'); 
80)   
81)   $username = mysql_real_escape_string($_SESSION['userinfo']['username']);
bernd Frage Datenbank-Kürzel nich...

bernd authored 15 years ago

82)   $description = "Automatisch erzeugte Datenbank für {$application} ({$sitename})";
bernd Webapp-Installer, erste Ver...

bernd authored 15 years ago

83)   
bernd Frage Datenbank-Kürzel nich...

bernd authored 15 years ago

84)   // zuerst versuchen wir username_webappname. Wenn das nicht klappt, dann wird hochgezählt
85)   $handle = $username.'_'.$application;
86)   
87)   if (validate_mysql_username($handle) && validate_mysql_dbname($handle) && ! (has_mysql_user($handle) || has_mysql_database($handle)))
bernd Webapp-Installer, erste Ver...

bernd authored 15 years ago

88)   {
bernd Frage Datenbank-Kürzel nich...

bernd authored 15 years ago

89)     create_mysql_database($handle, $description);
90)     create_mysql_account($handle, $description);
91)     set_mysql_access($handle, $handle, true);
92)     $password = random_string(10);
93)     set_mysql_password($handle, $password);
94)     return array('dbuser' => $handle, 'dbname' => $handle, 'dbpass' => $password);
bernd Webapp-Installer, erste Ver...

bernd authored 15 years ago

95)   }
96) 
bernd Frage Datenbank-Kürzel nich...

bernd authored 15 years ago

97)   for ($i = 0; $i < 100 ; $i++) {
98)     $handle = $username.'_'.$i;
99)     if (validate_mysql_username($handle) && validate_mysql_dbname($handle) && ! (has_mysql_user($handle) || has_mysql_database($handle)))
100)     {
101)       create_mysql_database($handle);
102)       create_mysql_account($handle);
103)       set_mysql_access($handle, $handle, true);
104)       $password = random_string(10);
105)       set_mysql_password($handle, $password);
106)       return array('dbuser' => $handle, 'dbname' => $handle, 'dbpass' => $password);
107)     }
bernd Webapp-Installer, erste Ver...

bernd authored 15 years ago

108)   }
bernd Frage Datenbank-Kürzel nich...

bernd authored 15 years ago

109)   system_failure('Konnte keine Datenbank erzeugen. Bitte melden Sie diesen Umstand den Administratoren!');