e74237ebc91d111a7a300413fe4d9fc04e19c2a3
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

1) <?php
2) 
3) require_once("inc/debug.php");
4) require_once("inc/db_connect.php");
bernd input-filtering

bernd authored 16 years ago

5) require_once("inc/security.php");
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

6) 
bernd Parse Error, hatte ich gar...

bernd authored 16 years ago

7) require_once('class/domain.php');
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

8) 
9) function get_jabber_accounts() {
10)   require_role(ROLE_CUSTOMER);
11)   $customerno = (int) $_SESSION['customerinfo']['customerno'];
bernd sql-abfragen abstrahiert

bernd authored 16 years ago

12)   $result = db_query("SELECT id, created, local, domain FROM jabber.accounts WHERE customerno='$customerno' AND `delete`=0;");
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

13)   $accounts = array();
14)   if (@mysql_num_rows($result) > 0)
15)     while ($acc = @mysql_fetch_object($result))
16)       array_push($accounts, array('id'=> $acc->id, 'created' => $acc->created, 'local' => $acc->local, 'domain' => $acc->domain));
17)   return $accounts;
18) }
19) 
20) 
21) 
22) function get_jabberaccount_details($id)
23) {
24)   require_role(ROLE_CUSTOMER);
25)   $customerno = (int) $_SESSION['customerinfo']['customerno'];
26) 
27)   $id = (int) $id;
28) 
bernd sql-abfragen abstrahiert

bernd authored 16 years ago

29)   $result = db_query("SELECT id, local, domain FROM jabber.accounts WHERE customerno={$customerno} AND id={$id} LIMIT 1");
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

30)   if (mysql_num_rows($result) != 1)
31)     system_failure("Invalid account");
32)   $data = mysql_fetch_assoc($result);
bernd Parse Error, hatte ich gar...

bernd authored 16 years ago

33)   if ($data['domain'] == NULL)
bernd Mehr config-optionen und co...

bernd authored 14 years ago

34)     $data['domain'] = config('masterdomain');
bernd Parse Error, hatte ich gar...

bernd authored 16 years ago

35)   else
36)   {
37)     $dom = new Domain((int) $data['domain']);
bernd Prüfe, ob Domain wirklich d...

bernd authored 14 years ago

38)     $dom->ensure_customerdomain();
bernd Parse Error, hatte ich gar...

bernd authored 16 years ago

39)     $data['domain'] = $dom->fqdn;
40)   }
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

41)   return $data;
42) }
43) 
44) 
bernd erlaube Jabber-Passwörter m...

bernd authored 16 years ago

45) function valid_jabber_password($pass)
46) {
bernd htmlspecialchars ist nicht...

bernd authored 16 years ago

47)   // Hier könnten erweiterte Checks stehen wenn nötig.
bernd stripslashes und erlaube An...

bernd authored 16 years ago

48)   /*$foo = ereg_replace('["\']', '', $pass);
bernd Anführungszeichen filtern

bernd authored 16 years ago

49)   DEBUG("\$foo = {$foo} / \$pass = {$pass}");
50)   return ($foo == $pass);
bernd stripslashes und erlaube An...

bernd authored 16 years ago

51)   */
52)   return true;
bernd erlaube Jabber-Passwörter m...

bernd authored 16 years ago

53) }
54) 
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

55) 
56) function create_jabber_account($local, $domain, $password)
57) {
58)   require_role(ROLE_CUSTOMER);
59)   $customerno = (int) $_SESSION['customerinfo']['customerno'];
60) 
bernd input-filtering

bernd authored 16 years ago

61)   $local = mysql_real_escape_string( filter_input_username($local) );
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

62)   $domain = (int) $domain;
bernd erlaube Jabber-Passwörter m...

bernd authored 16 years ago

63)   if (! valid_jabber_password($password))
bernd Bei falschen Daten auch abb...

bernd authored 16 years ago

64)   {
bernd erlaube Jabber-Passwörter m...

bernd authored 16 years ago

65)     input_error('Das Passwort enthält Zeichen, die aufgrund technischer Beschränkungen momentan nicht benutzt werden können.');
bernd Bei falschen Daten auch abb...

bernd authored 16 years ago

66)     return;
67)   }
bernd htmlspecialchars ist nicht...

bernd authored 16 years ago

68)   $password = mysql_real_escape_string( $password );
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

69)   
70)   if ($domain > 0)
71)   {
bernd sql-abfragen abstrahiert

bernd authored 16 years ago

72)     $result = db_query("SELECT id FROM kundendaten.domains WHERE kunde={$customerno} AND jabber=1 AND id={$domain};");
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

73)     if (mysql_num_rows($result) == 0)
74)     {
bernd Logger mit Logleveln

bernd authored 14 years ago

75)       logger(LOG_WARNING, "modules/jabber/include/jabberaccounts", "jabber", "attempt to create account for invalid domain »{$domain}«");
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

76)       system_failure("Invalid domain!");
77)     }
78)   }
79) 
bernd Duplikate-Problem gefixed....

bernd authored 16 years ago

80)   $domainquery = "domain={$domain}";
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

81)   if ($domain == 0)
bernd Ich hasse PHP

bernd authored 16 years ago

82)   {
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

83)     $domain = 'NULL';
bernd Duplikate-Problem gefixed....

bernd authored 16 years ago

84)     $domainquery = 'domain IS NULL'; 
bernd Ich hasse PHP

bernd authored 16 years ago

85)   }
bernd sql-abfragen abstrahiert

bernd authored 16 years ago

86)   $result = db_query("SELECT id FROM jabber.accounts WHERE local='{$local}' AND {$domainquery}");
bernd Duplikate-Problem gefixed....

bernd authored 16 years ago

87)   if (mysql_num_rows($result) > 0)
88)   {
bernd Logger mit Logleveln

bernd authored 14 years ago

89)     logger(LOG_WARNING, "modules/jabber/include/jabberaccounts", "jabber", "attempt to create already existing account »{$local}@{$domain}«");
bernd Duplikate-Problem gefixed....

bernd authored 16 years ago

90)     system_failure("Diesen Account gibt es bereits!");
91)   }
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

92) 
bernd sql-abfragen abstrahiert

bernd authored 16 years ago

93)   db_query("INSERT INTO jabber.accounts (customerno,local,domain,password) VALUES ({$customerno}, '{$local}', {$domain}, '{$password}');");
bernd Logger mit Logleveln

bernd authored 14 years ago

94)   logger(LOG_INFO, "modules/jabber/include/jabberaccounts", "jabber", "created account »{$local}@{$domain}«");
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

95) }
96) 
97) 
bernd Jabber-Passwort ändern

bernd authored 16 years ago

98) 
bernd erlaube Jabber-Passwörter m...

bernd authored 16 years ago

99) function change_jabber_password($id, $password)
bernd Jabber-Passwort ändern

bernd authored 16 years ago

100) {
101)   require_role(ROLE_CUSTOMER);
102)   $customerno = (int) $_SESSION['customerinfo']['customerno'];
103)   $id = (int) $id;
bernd erlaube Jabber-Passwörter m...

bernd authored 16 years ago

104)   if (! valid_jabber_password($password))
bernd Bei falschen Daten auch abb...

bernd authored 16 years ago

105)   {
bernd erlaube Jabber-Passwörter m...

bernd authored 16 years ago

106)     input_error('Das Passwort enthält Zeichen, die aufgrund technischer Beschränkungen momentan nicht benutzt werden können.');
bernd Bei falschen Daten auch abb...

bernd authored 16 years ago

107)     return;
108)   }
bernd htmlspecialchars ist nicht...

bernd authored 16 years ago

109)   $password = mysql_real_escape_string( $password );
bernd Jabber-Passwort ändern

bernd authored 16 years ago

110)   
bernd erlaube Jabber-Passwörter m...

bernd authored 16 years ago

111)   db_query("UPDATE jabber.accounts SET password='{$password}' WHERE customerno={$customerno} AND id={$id} LIMIT 1");
bernd Logger mit Logleveln

bernd authored 14 years ago

112)   logger(LOG_INFO, "modules/jabber/include/jabberaccounts", "jabber", "changed password for account  »{$id}«");
bernd Jabber-Passwort ändern

bernd authored 16 years ago

113) }
114) 
115) 
116) 
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

117) function delete_jabber_account($id)
118) {
119)   require_role(ROLE_CUSTOMER);
120)   $customerno = (int) $_SESSION['customerinfo']['customerno'];
121) 
122)   $id = (int) $id;
123) 
bernd sql-abfragen abstrahiert

bernd authored 16 years ago

124)   db_query("UPDATE jabber.accounts SET `delete`=1 WHERE customerno={$customerno} AND id={$id} LIMIT 1");
bernd Logger mit Logleveln

bernd authored 14 years ago

125)   logger(LOG_INFO, "modules/jabber/include/jabberaccounts", "jabber", "deleted account »{$id}«");
bernd Neues Jabber-Modul (noch ni...

bernd authored 16 years ago

126) }
127) 
bernd Neue Jabber-Domains selbst...

bernd authored 14 years ago

128) 
129) function new_jabber_domain($id)
130) {
131)   $d = new Domain( (int) $id );
132)   $d->ensure_customerdomain();
133)   db_query("UPDATE kundendaten.domains SET jabber=2 WHERE jabber=0 AND id={$d->id} LIMIT 1");
134) }
135) 
136)