RoundCube 0.1 Stable Jelszómódosító panel készítése

Az első RoundCube 0.1 Stable Release megjelenése alkalmából aktualizáltam a RoundCube 0.1 RC2 Jelszómódosítás c. tutorialomat:

Ebben a segédletben némi forráskód módosítással képessé tesszük a RoundCube 0.1 Stable webmail kliensünket, hogy rajta keresztül ügyfeleink/felhasználóink megváltoztathassák levelezéshez használt jelszavukat. A segédletben hMailServer az SMTP/IMAP server, de gyakorlatilag minden olyan mail szerverrel működhet, amely mysql adatbázisban tárolja a felhasználók jelszavát. Különbség csak az 3. pontban az SQL UPDATE résznél lesz..

1.Telepítsük fel a hMailServer-t és a Roundcube-ot és hozzuk őket működőképes állapotba.

2. A feltelepített RoundCube mappájában hajtsuk végre a következő módosításokat kedvenc text editorunk segítségével az alábbi fájlokon:

index.php 369. sor után beilleszteni:

if (($_action=='passwd') or ($_action=='save-passwd'))
include('program/steps/settings/passwd.inc');

program/steps/settings/func.inc 255. sor-tól módosítsuk így:

$OUTPUT->add_handlers(array(
'userprefs' => 'rcmail_user_prefs_form',
'identitieslist' => 'rcmail_identities_list',
'itentitieslist' => 'rcmail_identities_list',  // keep this for backward compatibility
'userpasswd'=>'rcmail_passwd_form' ));

program/steps/settings/passwd.inc: letöltés

skins/default/templates/passwd.html: letöltés

skins/default/includes/settingstabs.html tartalmát cseréljük erre: letöltés
program/js/app.js módosításai:

285. sor: módosítás:

case 'settings':
this.enable_command('preferences', 'identities', 'save', 'folders', 'passwd', true);

297. if (this.gui_objects.identitieslist) sor ELÉ:

if (this.env.action=='passwd' || this.env.action=='save-passwd')
{
var input_curpasswd = rcube_find_object('_curpasswd');
var input_newpasswd = rcube_find_object('_newpasswd');
var input_confpasswd = rcube_find_object('_confpasswd');
if (input_curpasswd && input_curpasswd.value=='')
input_curpasswd.focus();
else if (input_confpasswd)
input_confpasswd.focus();
this.enable_command('save-passwd', true);
}

984. sor környéke (az előző módosításoktól függ): case ‘delete-folder’: ……… break; után:

case 'passwd':
this.goto_url('passwd');
break;

case 'save-passwd':
var input_curpasswd = rcube_find_object('_curpasswd');
var input_newpasswd = rcube_find_object('_newpasswd');
var input_confpasswd = rcube_find_object('_confpasswd');
if ((input_newpasswd && input_newpasswd.value=='') && (input_confpasswd && input_confpasswd.value=='') || (input_curpasswd && input_curpasswd.value==''))
{
alert(this.get_label('nopassword'));
input_curpasswd.value='';
input_newpasswd.value='';
input_confpasswd.value='';
input_curpasswd.focus();
}
else if ((input_newpasswd && input_confpasswd) && ( input_newpasswd.value != input_confpasswd.value))
{
alert(this.get_label('passwordinconsistency'));
input_newpasswd.value='';
input_confpasswd.value='';
input_newpasswd.focus();
}
else
this.gui_objects.editform.submit();
break;

program/localization/hu/labels.inc (feltéve ha a config fájlban a nyelvet már átállítottuk magyarra..)

A default nyelvet a main.inc.php-ben lehet beállítani:

$rcmail_config['locale_string'] = 'hu';

Érdemes a többi usereink által igényelt nyelvekhez is elkészíteni a fordításokat és a program/localization/[nyelv]/ mappákban módosítgatni őket.

$labels['changepasswd']  = 'Jelszó változtatás';
$labels['curpasswd']  = 'Jelszó';
$labels['newpasswd']  = 'Új jelszó';
$labels['confpasswd']  = 'Új jelszó megerősítése';

program/localization/hu/messages.inc (ugyan az a szituáció mint a labels.inc esetében)

$messages['nopassword'] = "Írj be egy új jelszót!";
$messages['passwordinconsistency'] = "Az új jelszó és megerősítése nem egyezik.";

3. Miután felkészítettük a felületet, gondoskodjunk az adatbázis beli módosításokról.

Fontos, hogy a roundcube-hoz használt mysql user-nek legyen írási joga is a levelezőszerver adatbázisához.

A létrehozott program/steps/settings/passwd.inc fájlban módosítsuk az SQL UPDATE-et a levelezőszerver adatbázisszerkezetének függényében. A létrehozott fájlban a külső adatbázisból működő hMailServeré van.

$sql_query = " UPDATE  hmailserver.hm_accounts SET accountpassword= md5(\"$newpasswd\") WHERE accountaddress = \"" .  $_SESSION['username']  . "\" AND accountpassword =  md5(\"$curpasswd\")" ;

Roundcube |

There are 5 Comments


  1. Van egy kis gondom az md5 titkositással. Az adatbázisban nekem nem md5 ben vannnak a jelszavak hanem ENCRYPT formában vannak titkositva. native DES crypt

    És sajnos a jelszó változtatás nem akar összejönni.

    Köszönöm


  2. Ne md5-el titkosíts az utolsó sorban, ahol md5() fv-eket látsz, hanem DES-el.
    Bocs, hogy csak most de a spamszűrőm kiszűrte a figyelmeztető mailt :/


  3. Szia Peter,

    sajnos a letolteni valo fajlok hianyoznak (404 error). Tudnad ezeket potolni, vagy mailben elkuldeni nekem?

    Elore is koszonom,
    Tamas


  4. Szia Tomi!
    Visszaállítottam backupból, mert valamilyen rejtélyes módon eltűnt az összes 2008-as feltöltés.
    Bocsi a kellemetlenségek miatt.

    P


  5. Nagyon szepen koszonom. :)

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

Keresés

Témák

Linkek