modules/email/imap.php
defbfa55
 <?php
 
 require_once('session/start.php');
 
c0d71b32
 require_once('class/domain.php');
defbfa55
 require_once('mailaccounts.php');
 
 require_role(ROLE_SYSTEMUSER);
 
 $user = $_SESSION['userinfo'];
 
 $title = "E-Mail-Accounts";
 
 
 if (isset($_GET['action']) && $_GET['action'] == 'save')
 {
   if (isset($_GET['id']))
   {
3000accf
     check_form_token('email_imap_edit');
defbfa55
     $account = $_POST['user'].'@'.$_POST['domain'];
     if (isset($_POST['enabled']) && $_POST['enabled'] == 'true')
       $enabled = 'Y';
     else
       $enabled = 'N';
     $acc = array('id' => $_GET['id'], 'account' => $account, 'mailbox' => $_POST['mailbox'], 'enabled' => $enabled);
     if ($_POST['password'] != '')
       $acc['password'] = $_POST['password'];
     $error = check_valid($acc);
     if ($error != "")
     {
       input_error($error);
       $title = "E-Mail-Accounts";
       output("");
     }
     else
     {
       change_mailaccount($_GET['id'], $acc);
       if (! $debugmode)
63a0529b
         header('Location: imap');
defbfa55
       die();
     }
   }
   elseif (isset($_POST['create']))
   {
3000accf
     check_form_token('email_imap_create');
defbfa55
     $account = $_POST['user'].'@'.$_POST['domain'];
     if (isset($_POST['enabled']) && $_POST['enabled'] == 'true')
       $enabled = 'Y';
     else
       $enabled = 'N';
     $acc = array('account' => $account, 'mailbox' => $_POST['mailbox'], 'enabled' => $enabled);
     if ($_POST['password'] != '')
       $acc['password'] = $_POST['password'];
     $error = check_valid($acc);
     if ($error != "")
     {
       input_error($error);
       output("");
     }
     else
     {
       create_mailaccount($acc);
       if (! $debugmode)
63a0529b
         header('Location: imap');
defbfa55
       die(); 
     }
   }
 }
 elseif (isset($_GET['action']) && $_GET['action'] == 'create')
 {
af8c8976
   $options = '';
   $domains = get_domain_list($user['customerno'], $user['uid']);
   if (count($domains) > 0)
     $options .= '<option>----------------------------</option>';
   foreach ($domains as $dom)
     $options .= '<option value="'.$dom->fqdn.'">'.$dom->fqdn.'</option>';
 
63a0529b
   output('<h3>IMAP-Account anlegen</h3>
ec0c81a8
 <p>Hier können Sie ein neues POP3/IMAP-Konto anlegen.</p>
63a0529b
 <p style="border: 2px solid red; background-color: white; padding:1em;"><strong>ACHTUNG:</strong> ein POP3-/IMAP-Account ist <strong>keine E-Mail-Adresse</strong>. Wenn Sie sich nicht sicher sind, lesen Sie bitte die Anleitung <a href="https://wiki.schokokeks.org/E-Mail/Konfiguration">in unserem Wiki</a>. Sie können Ihre E-Mail-Konten auch über eine einfachere Möglichkeit verwalten, dann ist eine Einrichtung über diese Weboberfläche möglich. Die Umstellung erfolgt '.internal_link("../email/domains", "unter Domains").'.</p>
   '.html_form('email_imap_create', 'imap', 'action=save', '
defbfa55
   <table style="margin-bottom: 1em;">
ec0c81a8
   <tr><th>Einstellung:</th><th>Wert:</th><th>&#160;</th></tr>
defbfa55
   <tr>
     <td>Benutzername:</td>
     <td><input type="text" id="user" name="user" />@<select name="domain" size="1">
     <option value="schokokeks.org">schokokeks.org</option>
af8c8976
   '.$options.'
     </select></td>
defbfa55
   </tr>
   <tr>
     <td>Mailbox:</td>
     <td><input type="text" id="mailbox" name="mailbox" value="'.$user['homedir'].'/" /></td>
   </tr>
   <tr>
     <td>Passwort:</td>
     <td><input type="password" id="password" name="password" value="" /></td>
   </tr>
   <tr>
     <td>Account sofort aktivieren:</td>
     <td><input type="checkbox" id="enabled" name="enabled" value="true" /></td>
   </tr>
   </table>
13cf6393
   <p><input type="submit" name="create" value="Anlegen" /></p>
af8c8976
   '));
defbfa55
 }
 elseif (isset($_GET['action']) && $_GET['action'] == 'delete' && $_GET['account'] != '')
 {
33986238
   $sure = user_is_sure();
   if ($sure === NULL)
   {
     $_GET['account'] = (int) $_GET['account'];
     $account = get_mailaccount($_GET['account']);
     $enabled = ($account['enabled'] ? 'Ja' : 'Nein');
     are_you_sure("action=delete&amp;account={$_GET['account']}", '
ec0c81a8
     <p>Soll der folgende Account wirklich gelöscht werden?</p>
33986238
     <table style="margin-bottom: 1em;">
       <tr><td>Benutzername:</td>
         <td>'.filter_input_general($account['account']).'</td>
       </tr>
       <tr><td>Mailbox:</td>
         <td>'.filter_input_general($account['mailbox']).'</td>
       </tr>
       <tr><td>Konto aktiv:</td>
         <td>'.$enabled.'</td>
       </tr>
     </table>
 ');
   }
   elseif ($sure === true)
defbfa55
   {
     delete_mailaccount($_GET['account']);
     if (! $debugmode)
63a0529b
       header('Location: imap');
defbfa55
     die();
   }
33986238
   elseif ($sure === false)
defbfa55
   {
33986238
     if (! $debugmode)
63a0529b
       header("Location: imap");
33986238
     die();
defbfa55
   }
 }
 elseif (isset($_GET['edit']))
 {
63a0529b
   output('<h3>IMAP-Account bearbeiten</h3>
ec0c81a8
 <p>Hier können Sie die Einstellungen des IMAP-Kontos bearbeiten.</p>
defbfa55
 ');
   $_GET['edit'] = (int) $_GET['edit'];
   $account = get_mailaccount($_GET['edit']);
   list($username, $domain) = explode('@', $account['account'], 2);
   $enabled = ($account['enabled'] ? ' checked="checked"' : '');
33986238
   $form = '
defbfa55
   <table style="margin-bottom: 1em;">
ec0c81a8
   <tr><th>Einstellung:</th><th>alter Wert:</th><th>neuer Wert:</th><th>&#160;</th></tr>
defbfa55
   <tr><td>Benutzername:</td><td><input type="text" id="old_account" name="old_account" value="'.$account['account'].'" readonly="readonly" style="background-color: #C0C0C0;" /></td>
           <td><input type="text" id="user" name="user" value="'.$username.'" />@<select name="domain" id="domain" size="1">
     <option value="schokokeks.org">schokokeks.org</option>
33986238
     ';
c0d71b32
     $domains = get_domain_list($user['customerno'], $user['uid']);
defbfa55
     if (count($domains) > 0)
33986238
       $form .= '<option>----------------------------</option>';
defbfa55
     foreach ($domains as $dom)
c0d71b32
       if ($domain == $dom->fqdn)
33986238
         $form .= '<option value="'.$dom->fqdn.'" selected="selected">'.$dom->fqdn.'</option>';
defbfa55
       else
33986238
         $form .= '<option value="'.$dom->fqdn.'">'.$dom->fqdn.'</option>';
defbfa55
 
33986238
     $form .= '</select></td>
ec0c81a8
           <td><input type="button" onclick="document.getElementById(\'user\').value = \''.$username.'\' ; document.getElementById(\'domain\').value = \''.$domain.'\'" value="Zeile zurücksetzen" /></td></tr>
defbfa55
   <tr><td>Mailbox:</td><td><input type="text" id="old_mailbox" name="old_mailbox" value="'.$account['mailbox'].'" readonly="readonly" style="background-color: #C0C0C0;" /></td>
           <td><input type="text" id="mailbox" name="mailbox" value="'.$account['mailbox'].'" /></td>
ec0c81a8
           <td><input type="button" onclick="document.getElementById(\'mailbox\').value = document.getElementById(\'old_mailbox\').value" value="Zeile zurücksetzen" /></td></tr>
defbfa55
   <tr><td>Passwort:</td><td><i>nicht angezeigt</i></td>
           <td><input type="password" id="password" name="password" value="" /></td>
ec0c81a8
           <td><input type="button" onclick="document.getElementById(\'password\').value = \'\'" value="Zeile zurücksetzen" /></td></tr>
defbfa55
   <tr><td>Konto aktiv:</td>
ec0c81a8
     <td>&#160;</td>
defbfa55
     <td><input type="checkbox" id="enabled" name="enabled" value="true"'.$enabled.' /></td>
ec0c81a8
     <td>&#160;</td></tr>
defbfa55
   </table>
ec0c81a8
   <p><input type="submit" value="Änderungen speichern" /><br />
   Hinweis: Das Passwort wird nur geändert, wenn Sie auf dieser Seite eines eingeben. Geben Sie keines an, wird das bisherige beibehalten!</p>
33986238
   ';
63a0529b
   output(html_form('email_imap_edit', 'imap', 'action=save&id='.$_GET['edit'], $form));
defbfa55
 }
 else
 {
63a0529b
   output('<h3>IMAP-Accounts</h3>
defbfa55
 <p>Folgende POP3/IMAP-Konten sind eingerichtet:</p>
 <table style="margin-bottom: 1em;">
ec0c81a8
 <tr><th>Kontoname:</th><th>Mailbox-Pfad:</th><th>aktiv</th><th>&#160;</th></tr>
defbfa55
 ');
 
         foreach (mailaccounts($user['uid']) as $account)
         {
                 $mailbox = $account['mailbox'];
                 if (empty($mailbox))
                         $mailbox = '<i>nicht festgelegt</i>';
                 output('<tr>
63a0529b
             <td>'.internal_link('imap', $account['account'], 'edit='.$account['id']).'</td>
defbfa55
             <td>'.$mailbox.'</td>
             <td><b>'.($account['enabled'] ? 'Ja' : 'Nein').'</b></td>
63a0529b
             <td>'.internal_link("imap", "löschen", "action=delete&account=".$account['id']).'</td></tr>');
defbfa55
         }
         output('</table>
63a0529b
 <p>'.internal_link("imap", "Neuen Account anlegen", "action=create").'</p>
defbfa55
 
 ');
 }
 
 ?>