2
0
Эх сурвалжийг харах

[Web] check mailbox before replacing sogo_static_view

FreddleSpl0it 2 жил өмнө
parent
commit
e1d8df6580

+ 13 - 2
data/web/inc/functions.inc.php

@@ -1021,7 +1021,18 @@ function update_sogo_static_view($mailbox = null) {
   }
   global $pdo;
   global $lang;
-  
+
+  $mailbox_exists = false;
+  if ($mailbox !== null) {
+    // Check if the mailbox exists
+    $stmt = $pdo->prepare("SELECT username FROM mailbox WHERE username = :mailbox AND active = '1'");
+    $stmt->execute(array(':mailbox' => $mailbox));
+    $row = $stmt->fetch(PDO::FETCH_ASSOC);  
+    if ($row){
+      $mailbox_exists = true;
+    }
+  }
+
   $query = "REPLACE INTO _sogo_static_view (`c_uid`, `domain`, `c_name`, `c_password`, `c_cn`, `mail`, `aliases`, `ad_aliases`, `ext_acl`, `kind`, `multiple_bookings`)
             SELECT
               mailbox.username,
@@ -1045,7 +1056,7 @@ function update_sogo_static_view($mailbox = null) {
             WHERE
               mailbox.active = '1'";
   
-  if ($mailbox !== null) {
+  if ($mailbox_exists) {
     $query .= " AND mailbox.username = :mailbox";
     $stmt = $pdo->prepare($query);
     $stmt->execute(array(':mailbox' => $mailbox));