Morgen..
Das sieht doch richtig gut aus..
Mein Ansatz bezüglich der Änderung ohne das Passwort zu ändern wäre eine neue Funtkion in der domain_edit.php
Code:
if (preg_match('/update_forward/', $_POST['uaction']) == 1 || isset($_POST['mail_forward'])) {
// The user only wants to update the forward list, not the password
if ($_POST['pass'] === '' && $_POST['pass_rep'] === '') {
return true;
}
}
Hier brauch man ja auch kein Passwort zu ändern wenn man den Forward einstellen will.
Ich würde das schon mal auf
Code:
if (preg_match('/update_forward/', $_POST['uaction']) == 1 || isset($_POST['mail_forward']) || isset($_POST['mail_quota_edit'])) {
// The user only wants to update the forward list, not the password
if ($_POST['pass'] === '' && $_POST['pass_rep'] === '') {
return true;
}
}
und in dem Template eine Checkbox mit der gleichen Funktion wie bei Mailforward einbauen! Nur wenn man das klickt wird das auch geändert!
Die Checkbox müsste dann den Namen "mail_quota_edit" haben.
Ist lediglich ein Ansatz!
Gruß
Sascha
Edit..
Warum eigentlich die Änderungen in der domain_edit.php?
Wenn ich die bei mir einpflege bekomme ich unter anderem einen Fehler wegen undefinded "quota".
Ich finde das man das mailbox_quota nur für den Benutzer nimmt.
Das quota ist massgebend!!!
Ausserdem funktioniert das schon 1a und würde das nur noch im Notfall anfassen!
Ohne es jetzt getestet zu haben!
Von Deiner Anleitung wäre dann ab
Code:
ca. Zeile 214:
vor:
Code:
$pass=encrypt_db_password($pass);
einfügen:
bis
Code:
Zeile 241:
nach:
Code:
}
einfügen:
Code:
}
hinfällig!
Dieses Funktion sollte nur für den Quotaupdate genutzt werden. Einfach unter die Funktion von "update_email_forward" setzen.
Code:
function update_email_quota(&$tpl, &$sql) {
if (!isset($_POST['uaction'])) {
return false;
}
if (!isset($_POST['mail_quota_edit'])) {
return true;
}
$dmn_name = $_SESSION['user_logged'];
$query = "
SELECT
`mailbox_quota`
FROM
`domain`
WHERE
`domain_name` = ?
";
$rs = exec_query($sql, $query, array($dmn_name));
$maxquota = $rs->fields['mailbox_quota'];
$mail_id = $_GET['id'];
$mail_quota = clean_input($_POST['mail_quota']*1024*1024);
if($maxquota < $mail_quota)
{
set_page_message(tr('Quota is more then your maximum!'));
return false;
}else{
$query = "UPDATE `mail_users` SET `quota` = ? WHERE `mail_id` = ?";
$rs = exec_query($sql, $query, array($mail_quota, $mail_id));
$status = Config::get('ITEM_CHANGE_STATUS');
check_for_lock_file();
write_log($_SESSION['user_logged'] . ": change mail quota: $mail_account");
return true;
}
}
Dann am Ende
Code:
if (update_email_pass($sql) && update_email_forward($tpl, $sql)) {
in
Code:
if (update_email_pass($sql) && update_email_forward($tpl, $sql) && update_email_quota($tpl, $sql)) {
ändern.
Ich muss gleich noch einmal weg... Deswegen hoffe ich das sie funktioniert!
Konnte die Sache also nicht testen.
Du müsstest noch die Checkbox (genauso wie bei Forward, Erst wenn angeklickt kann man editieren) erstellen. Der Name muss "mail_quota_edit" lauten.