RoundCube 0.1 RC2 Jelszómódosítás

Megjelent az első RoundCube 0.1 Stable Release. Ez a segédlet a RoundCube 0.1 RC2 verziójához készült. Az új tutorialt itt találod: RoundCube 0.1 Stable Jelszómódosító panel készítése.
Ebben a segédletben némi forráskód módosítással képessé tesszük a RoundCube 0.1 RC2 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 354. sor után beilleszteni:

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

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

$OUTPUT->add_handlers(array('userprefs'=>'rcmail_user_prefs_form','itentitieslist' =>'rcmail_identities_list','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:

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

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

281. sor: 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);
}

955. 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\")" ;

7 Responses to “RoundCube 0.1 RC2 Jelszómódosítás”

  1. MiszterX  on February 17th, 2008

    Ha mar te is roundcubemailal foglalkozgatsz… Esetleg spam kezeleshez hasznalatos hacket nem ismersz?

    Sajna ez a roundcube project hiaba nagyon jo nem halad olyan dinamikusan mint ahogy azt vartam volna. Es itt kulonosen a plugin apit hianyolom meg midnig nagyon.

    Hirtelen megnohetne a penszerusege ha igenyekhez hiven jonnenek ki a konnyen beagyazhato es hianyzo featurek.

  2. peet  on February 17th, 2008

    Hát igen.. én most februárra vártam egy új verziót mert verték a mellüket, hogy feb.-tól kezdve php5 only. Sajna spam kezelésig nem jutottam még el.. Most központilag van beállítva nálam minden, nem lehet userenként változtatni..

    De ha van hozzá valami, akkor az is valószínű ilyen kókány módszerrel fog csak működni mint ez a jelszavazás..

    Megj: a cikket most tesztelem, remélem még nem módosítgatsz :)

  3. peet  on February 17th, 2008

    Jah még annyit az RC-hez, hogy tök jó meg minden, kényelmi funkciók terén übereli az összes ingyenes webmail felületet, de mókusposta simán hazavágja stabilitás és ahogy te is mondtad pluginek terén. Az plugin API nagyon nagyon jó lenne..

    Most megjelent a horde ajaxos verziója, de még az is csak béta.. Ha már komolyabb változatban is elérhető lesz és RoundCubeék sem adnak ki semmit, át fogok térni..
    Tegnap fel akartam tenni próbaképp, de kell hozzá PEAR, horde framework, IMP és ezekre jön rá az új ajaxos cucc a DIMP.. nem volt hozzá türelmem, meg időm sem.. talán jövő 7végén kipróbálom.

  4. MiszterX  on February 17th, 2008

    Nem en semmikepp se haxolok bele a jolmukodo rendszerekbe…

    A horde viszont erdekel… SZoval varom a tapasztalatokat! :D

  5. peet  on February 17th, 2008

    Feltétlenül postolni fogom a tapasztalatokat.. sokat várok tőle..

    A tesztelést befejeztem, a leírtak működnek! Nyugodtan haxolhatsz :)

  6. topnuker  on May 4th, 2008

    Hali, peet!

    kijött a 0 1.1 és a form rész nem jelenik meg benne a te passwd hackeddel…

  7. peet  on May 4th, 2008

    Ejhaj.. még nem frissítettem, Holnap megteszem és nyomok valami update postot, hogy mit kell másképp csinálni!

    Köszi, hogy szóltál!


Leave a Reply