Roundcube Community Forum

 

New File Added: Qmail+Mysql+Vpopmail Password Change Patch v1.1 (Updated)

Started by lucifer, February 20, 2009, 02:06:22 PM

Previous topic - Next topic

nadir

#30
Hi, somebody can help me fix problem with roundcube v0.2.2? :( current password change patch not works on this version. :mad: when i click to password tab, i see blank page. i tried fix this but i see that app.js and other js files changed.

aalovesiti

what sql command to give permissions roundcube users to update vpopmail database. this is my database name
vpopmail databases name: vpopmail
vpopmail username : vopmailuser
roundcube databases name : roundcubemail
roundcube username : roundcubemail

are corect or not ?
        // ONLY CHANGE YOUR vpopmail DATABASE NAME !!!!!
$passwordquery = "UPDATE vpopmail.vpopmail SET pw_passwd = '$crypted',pw_clear_passwd='".$new_password."' WHERE pw_name = '".$emailuser."';";


Thanks

nadir

this version of patch not works with roundcube version 0.2.2

siodseraph

Excellent - this is what I was looking for. It doesn't work with the SVN version of roundcube though. Which is not a big deal but it kinda raises the question: Would it be possible to get this plugin to work with the new Plugin API? Kinda like create a new tab in the Personal Settings menu called Password and let the Plugin API handle it?

Just an idea, great work on this, makes the whole application much more useful for us.

drzymalski

I have two different servers. A html server hosting roundcubemail, and a mail server. I have the roundcubemail database on the webserver.

How do i change the password inc to access the sql database on the mail server?

Termi

Quote from: siodseraph;20019Would it be possible to get this plugin to work with the new Plugin API? Kinda like create a new tab in the Personal Settings menu called Password and let the Plugin API handle it?

Just an idea, great work on this, makes the whole application much more useful for us.

There is already a qmail plugin for the RC0.3 plugin api which works like described (adding a password tab in prefs). Would be a good idea to extend this.

By the way: There is a qmail web interface for changing a users pw. I'd love to use this so if someone would extend the plugin api i'd really appreciate it :-)

jingo

Changing password using vpopmail can be done through the vpopmaild daemon.

I already made the driver, and it is committed in roundcube, see
http://www.roundcubeforum.net/api-based-plugins/5378-new-password-plugin-driver-vpopmaild.html

Termi

I don't know which mailer my isp is using but I asked for any support for users to change their passwords and my isp answered the only way would be their qmail web interface.

Thus I'm looking for a driver for the password plugin which simply sends a post with the three 4 needed entries (old pw) to that form and parses the error message or success message.

My ISPs password change form is located at
https://mail.bytecamp.net/cgi-bin/qmailadmin/qmailadmin/passwd/

The form fields are:

address -> e.g. "[email protected]"
oldpass
newpass1
newpass2

When posting these fields one gets an answer page which should be parsed.

I tried to change the direct admin parser which seemed appropriate for that task but it didn't work. Here comes the changed code (communication class code afterwards not changed):

function password_save($curpass, $passwd){

    $rcmail = rcmail::get_instance();
    $Socket = new HTTPSocket;

    $da_user    = $_SESSION['username'];
    $da_curpass = $curpass;
    $da_newpass = $passwd;
    $da_host    = $rcmail->config->get('password_directadmin_host');
    $da_port    = $rcmail->config->get('password_directadmin_port');

    $Socket->connect($da_host,$da_port);
    $Socket->set_method('POST');
    $Socket->query('/cgi-bin/qmailadmin/qmailadmin/passwd/',
        array(
            'address' => $da_user,
            'oldpass' => $da_curpass,
            'newpass1' => $da_newpass,
            'newpass2' => $da_newpass
    ));
    $response = $Socket->fetch_parsed_body();

//console("DA error response: $response[text] [$da_user]");
    if($Socket->result_status_code <> 200)
        return PASSWORD_CONNECT_ERROR;
    elseif($response['error'] == 1){ //Error description: $response[text]
        return PASSWORD_ERROR;
    }else
        return PASSWORD_SUCCESS;

}


I renamed the file to qmail.php and set the needed vars $da_host,$da_port in the config.inc.php within password directory.

Any ideas how I could get this to work? Thanks in advance...

Ingo

SKaero

Why not include it in a iframe?

Termi

Hi skaero,

Sorry but I don't get your point. I want to access my webhoster's qmail web interface via roundcube password plugin and just have to send a query via POST or GET and parse the result.

Do you mean I should show my webhosters qmail password change form in an iframe within roundcubemail? This wouldn't look nice and fit the look and feel of my skin.

I just don't know why it doesn't work :-(