Correct, everything is on godaddy.
The plugin enables the user using roundcube to change their password from their webmail.
Here's part of the instructions it comes with:
*1. Configuration
*2. Drivers
*2.1. *Database (sql)
*2.2. *Cyrus/SASL (sasl)
*2.3. *Poppassd/Courierpassd (poppassd)
*2.4. *LDAP (ldap)
*2.5. *DirectAdmin Control Panel (directadmin)
*2.6. *cPanel (cpanel)
*2.7. *XIMSS/Communigate (ximms)
*2.8. *Virtualmin (virtualmin)
*2.9. *hMailServer (hmail)
*2.10. PAM (pam)
*2.11. Chpasswd (chpasswd)
*2.12. LDAP - no PEAR (ldap_simple)
*2.13. XMail (xmail)
*3. Driver API
*1. Configuration
*----------------
*Copy config.inc.php.dist to config.inc.php and set the options as described
*within the file.
*2. Drivers
*----------
*Password plugin supports many password change mechanisms which are
*handled by included drivers. Just pass driver name in 'password_driver' option.
*2.1. Database (sql)
*-------------------
*You can specify which database to connect by 'password_db_dsn' option and
*what SQL query to execute by 'password_query'. See main.inc.php.dist file for
*more info.
*Example implementations of an update_passwd function:
*- This is for use with LMS (
LMS - LAN Management System) database and postgres:
CREATE OR REPLACE FUNCTION update_passwd(hash text, account text) RETURNS integer AS $$
DECLARE
* * * *res integer;
BEGIN
* * * *UPDATE passwd SET password = hash
* *WHERE login = split_part(account, '@', 1)
AND domainid = (SELECT id FROM domains WHERE name = split_part(account, '@', 2))
* *RETURNING id INTO res;
* *RETURN res;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
*- This is for use with a SELECT update_passwd(%o,%c,%u) query
Updates the password only when the old password matches the MD5 password
in the database
CREATE FUNCTION update_password (oldpass text, cryptpass text, user text) RETURNS text
* * * *MODIFIES SQL DATA
BEGIN
* *DECLARE currentsalt varchar(20);
* *DECLARE error text;
* *SET error = 'incorrect current password';
* *SELECT substring_index(substr(user.password,4),_latin1'$',1) INTO currentsalt FROM users WHERE username=user;
* *SELECT '' INTO error FROM users WHERE username=user AND password=ENCRYPT(oldpass,currentsalt);
* *UPDATE users SET password=cryptpass WHERE username=user AND password=ENCRYPT(oldpass,currentsalt);
* *RETURN error;
END
*Example SQL UPDATEs:
*- Plain text passwords:
* * UPDATE users SET password=%p WHERE username=%u AND password=%o AND domain=%h LIMIT 1
*- Crypt text passwords:
* * UPDATE users SET password=%c WHERE username=%u LIMIT 1
*- Use a MYSQL crypt function (*nix only) with random 8 character salt
* * UPDATE users SET password=ENCRYPT(%p,concat(_utf8'$1$',right(md5(rand()),8),_utf8'$')) WHERE username=%u LIMIT 1
*- MD5 stored passwords:
* * UPDATE users SET password=MD5(%p) WHERE username=%u AND password=MD5(%o) LIMIT 1
*2.2. Cyrus/SASL (sasl)
*----------------------
Etc
Etc
More drivers....