Current time: 05-03-2024, 01:43 PM Hello There, Guest! (LoginRegister)


Thread Closed 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[TICKET/PATCH]: Mailboxquota im GUI einstellen.
Author Message
FISA4 Offline
Member
***

Posts: 668
Joined: Feb 2008
Reputation: 15
Post: #21
RE: [HowTo]: Mailboxquota im GUI einstellen.
(03-13-2009 11:55 PM)TheCry Wrote:  Wäre nett wenn Du das machst...
Ich schaue gerne mit drauf, aber viel Zeit habe ich am Wochenende nicht
Gruß
Sascha

Na dann setz ich mich heute Nacht mal dran. Wenn ich fertig bin melde ich mich.
Ich versuch mal den SQL-Kram selber hinzubekommen. Wenn ich das nicht schaffe, dann mach ich das so wie gestern und Du kannst schauen.

Gruß
FISA4
03-14-2009 01:39 AM
Find all posts by this user
FISA4 Offline
Member
***

Posts: 668
Joined: Feb 2008
Reputation: 15
Post: #22
RE: [HowTo]: Mailboxquota im GUI einstellen.
(03-13-2009 09:56 PM)BeNe Wrote:  Ein Ticket mit Patch ist offen Smile
--> http://www.isp-control.net/ispcp/ticket/1748

Greez BeNe

Hmmmm.... entweder bin ich zu blöd oder zu müde...

Hab mein Testsystem auf einen Fresh-Install Snapshot zurückgesetzt.
Wollte den Patch aus dem Ticket einspielen aber irgendwie bekomm ich nur Fehlermeldungen.

Quote:alpha:/var/www/ispcp# patch gui/reseller/domain_edit.php quota_domain.patch
(Stripping trailing CRs from patch.)
patching file gui/reseller/domain_edit.php
Hunk #1 FAILED at 65.
Hunk #2 FAILED at 155.
Hunk #3 FAILED at 218.
Hunk #4 FAILED at 242.
Hunk #5 FAILED at 294.
Hunk #6 FAILED at 302.
Hunk #7 FAILED at 315.
Hunk #8 FAILED at 349.
Hunk #9 FAILED at 450.
9 out of 10 hunks FAILED -- saving rejects to file gui/reseller/domain_edit.php.rej
alpha:/var/www/ispcp#

Was hab ich falsch gemacht ?
Die .patch Dateien liegen im Ordener /var/www/ispcp/ weil ich gesehen hab, dass in der Datei bei Ordner /gui/ angefangen wird.


Gruß
FISA4

EDIT 2:00 Uhr
Hab die Dateien dann mal "von Hand" gepatched um das "per User" zu realisieren.

EDIT 2:10 Uhr
ToDo bevor es fertig ist:
SQL zum anlegen der neuen Spalte in `domain` OK
SQL um allen erstmal 100MB als Quota zuzuweisen OK
domain_edit.php ändern OK
mail_edit.php ändern (2*SQL und Templatevariablen )
mail_edit.tpl ändern (eine TableRow hinzufügen um die Quota editieren zu können)

EDIT 3:38 Uhr
Jetzt bin ich müde und horche mal ne Runde an meinem Kissen. Wenn ich aufgestanden bin und mit den Hunden raus war gehts weiter.
(This post was last modified: 03-14-2009 12:37 PM by FISA4.)
03-14-2009 09:42 AM
Find all posts by this user
ZooL Offline
Moderator
*****
Moderators

Posts: 3,429
Joined: Jan 2007
Reputation: 79
Post: #23
RE: [TICKET/PATCH]: Mailboxquota im GUI einstellen.
fleissig... Wink weiterso... der befehl zum patchen war falsch Smile google mal diff und patch einspielen...

mfg
03-14-2009 04:04 PM
Visit this user's website Find all posts by this user
FISA4 Offline
Member
***

Posts: 668
Joined: Feb 2008
Reputation: 15
Post: #24
RE: [TICKET/PATCH]: Mailboxquota im GUI einstellen.
ToDo bevor es fertig ist:
SQL zum anlegen der neuen Spalte in `domain` OK
SQL um allen erstmal 100MB als Quota zuzuweisen OK
domain_edit.php ändern OK
mail_edit.php ändern (2*SQL und Templatevariablen ) fast OK
mail_edit.tpl ändern (eine TableRow hinzufügen um die Quota editieren zu können) OK

fast OK = nur noch die Abfrage wieviel an max. Quota eingetragen ist und vergleichen ob das eingegebene kleiner ist. Da häng ich noch ein wenig.

@TheCry: du dürftest so gut wie keine Arbeit haben (denke ich mal).
03-15-2009 11:17 AM
Find all posts by this user
FISA4 Offline
Member
***

Posts: 668
Joined: Feb 2008
Reputation: 15
Post: #25
RE: [TICKET/PATCH]: Mailboxquota im GUI einstellen.
Voraussetzung ist das Patch hier:
Quota im GUI

PHPMyAdmin Öffnen, in die ispcp Datenbank einloggen und folgende SQL Befehle ausführen:
Code:
ALTER TABLE `domain` ADD `mailbox_quota` INT( 12 ) NOT NULL;
UPDATE `domain` SET `mailbox_quota` = '104857600' WHERE `mailbox_quota` = '0';

Jetzt haben wir schon mal jedem Account eine Quota von 100 MB zugeteilt.

in domain_edit.php

EDIT Zeile 63:
Text ändern in
Code:
'TR_MAIL_QUOTA' => tr('Max. Mailbox Quota [MB]'),

Edit Zeile 225:
änder "quota" in "mailbox_quota"

Edit Zeile 227
ändere "mail_user" in "domain"

EDIT Zeile 456
ändere `mail_user` in `domain` und `quota` in `mailbox_quota`



in ../gui/themes/omega_original/client/mail_edit.tpl

nach:
Code:
<tr>
                <td width="200" class="content2"><label for="pass_rep">{TR_PASSWORD_REPEAT}</label></td>
                <td class="content">
                 <input type="password" name="pass_rep" id="pass_rep" value="" style="width:210px" class="textinput">
                </td>
               </tr>

einfügen:
Code:
<tr>
                <td width="200" class="content2">{TR_MAIL_QUOTA}</td>
                <td class="content">
                 <input type="text" name="mail_quota" value="{MAIL_QUOTA}" style="width:100px" class="textinput">
                </td>
               </tr>

in ../gui/client/mail_edit.php

nach:
Code:
$mail_forward = $rs->fields['mail_forward'];
                $sub_id = $rs->fields['sub_id'];

einfügen (ca. Zeile 71):
Code:
$mail_quota = $rs->fields['quota']/1024/1024;

ca. Zeile 143 ändere:
Code:
'MAIL_ID'               => $mail_id

in
Code:
    'MAIL_ID'               => $mail_id,
        'MAIL_QUOTA'            => $mail_quota

ca. Zeile 214:

vor:
Code:
$pass=encrypt_db_password($pass);

einfügen:
Code:
$mail_quota = clean_input($_POST['mail_quota']*1024*1024);

Zeile 195:
einfügen:
Code:
$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'];

Zeile: 212

nach:
Code:
$mail_id = $_GET['id'];
$mail_account = clean_input($_POST['mail_account']);

einfügen:
Code:
if($maxquota < clean_input($_POST['mail_quota']*1024*1024))
{
set_page_message(tr('Quota is more then your maximum!'));
                return false;
}
else{

ca. Zeile 218 + 219:
änder :
Code:
     $query = "UPDATE `mail_users` SET `mail_pass` = ?, `status` = ? WHERE `mail_id` = ?";
         $rs = exec_query($sql, $query, array($pass, $status, $mail_id));

in:
Code:
$query = "UPDATE `mail_users` SET `mail_pass` = ?, `quota` = ?, `status` = ? WHERE `mail_id` = ?";
$rs = exec_query($sql, $query, array($pass, $mail_quota, $status, $mail_id));

Zeile 241:

nach:
Code:
}

einfügen:
Code:
}


ca. Zeile 331:
ändere :
Code:
'TR_PASSWORD_REPEAT'    => tr('Repeat password'),
'TR_FORWARD_MAIL'               => tr('Forward mail'),

in

Code:
'TR_PASSWORD_REPEAT'    => tr('Repeat password'),
'TR_MAIL_QUOTA'         => tr('Mailbox Quota [MB]'),
'TR_FORWARD_MAIL'               => tr('Forward mail'),


Das war es dann auch schon.
Die Quota lässt sich aber nur ändern, wenn auch das Passwort geändert wird. Ließ sich auf die schnelle nicht anders bewerkstelligen.
Wenn mal zwischendurch Zeit ist, werd ich da mal ne änderung vornehmen so das man die Quota auch ohne Passwortänderung ändern kann.
Aber wie ich TheCry kenne macht er das fertig bevor ich angefangen hab darüber nachzudenken. Wink
(This post was last modified: 03-15-2009 01:35 PM by FISA4.)
03-15-2009 01:31 PM
Find all posts by this user
TheCry Away
Member
***

Posts: 851
Joined: Oct 2008
Reputation: 21
Post: #26
RE: [TICKET/PATCH]: Mailboxquota im GUI einstellen.
Morgen.. Smile
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.
(This post was last modified: 03-15-2009 09:23 PM by TheCry.)
03-15-2009 08:34 PM
Find all posts by this user
FISA4 Offline
Member
***

Posts: 668
Joined: Feb 2008
Reputation: 15
Post: #27
RE: [TICKET/PATCH]: Mailboxquota im GUI einstellen.
(03-15-2009 08:34 PM)TheCry Wrote:  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!

Moin,

also die Änderungen in der domain_edit.php sind notwendig, da die max. Quota in der `domain` Tabelle stehen und die SQL Query in `mail_users` nach Werten sucht und in diese schreibt.

Wenn Du meiner Anleitung "Schritt für Schritt" folgst, dann gibt der Reseller die max. Quota vor und der User kann dann für jeden Mailaccount einen eigenen Wert angeben der jedoch nur so hoch geht wie der Reseller als max. angegeben hat. An sonsten wäre es sinnlos wenn der Reseller die Werte vom User ändert und der User kann diese dann wiederum ändern. Wink

Bzgl. des Fehlers der Dir angezeigt wird:
Hattest Du die DB Änderungen gemacht bevor Du die Änderungen an der domain_edit.php gemacht hast?

Gruß

FISA4
03-15-2009 09:50 PM
Find all posts by this user
TheCry Away
Member
***

Posts: 851
Joined: Oct 2008
Reputation: 21
Post: #28
RE: [TICKET/PATCH]: Mailboxquota im GUI einstellen.
(03-15-2009 09:50 PM)FISA4 Wrote:  Bzgl. des Fehlers der Dir angezeigt wird:
Hattest Du die DB Änderungen gemacht bevor Du die Änderungen an der domain_edit.php gemacht hast?
Ja die hatte ich gemacht.
Ich werde das morgen noch einmal in Ruhe durchgehen.
Mit der Änderung hast Du recht... Hatte nicht dran gedacht
03-15-2009 09:59 PM
Find all posts by this user
FISA4 Offline
Member
***

Posts: 668
Joined: Feb 2008
Reputation: 15
Post: #29
RE: [TICKET/PATCH]: Mailboxquota im GUI einstellen.
(03-15-2009 09:59 PM)TheCry Wrote:  Ja die hatte ich gemacht.
Ich werde das morgen noch einmal in Ruhe durchgehen.
Mit der Änderung hast Du recht... Hatte nicht dran gedacht

Ich mach nachher nen neuen Snapshot von meinem VMWare, gehe dann zurück zum frisch installierten ispCP und geh dann die Anleitung nochmal durch.
Kann auch sein, dass ich irgendwo was vergessen hab mit aufzuschreiben.
War ja schon spät als ich das geschrieben hab.
03-15-2009 10:03 PM
Find all posts by this user
MasterTH Offline
Member
***

Posts: 570
Joined: Feb 2009
Reputation: 4
Post: #30
RE: [TICKET/PATCH]: Mailboxquota im GUI einstellen.
kurze frage noch zu diesem thema, funktioniert das auch mit postfix?
03-20-2009 03:59 PM
Find all posts by this user
Thread Closed 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)