Hi forum, System installed is: - SuSE 10.1 - ISPConfig 2.2.6 stable We set up our system with prefix [DOMAIN]_ so that every user gets a system username like "domain.tld_user". Now to keep the system clean we'd like generate all usernames from their given email-addresses. "[email protected]" would automatically get "domain.tld_user1" as his system username. An _almost_ smooth way to reach that would be editing /home/admispconfig/ispconfig/lib/plugins/isp_username.plugin.php line 80+ this way: Code: // neuer Username if($user_prefix != '') { // Mit User-Prefix $len_textbox = ((30 - strlen($user_prefix)) < 10)? 10: 29 - strlen($user_prefix); // PRE-MOD $out_user = $user_prefix.'<input type="text" name="plugin[user]" size="'.$len_textbox.'" maxlength="'.(32 - strlen($user_prefix)).'" class="text" >'; $out_user = $user_prefix.'<input type="text" name="plugin[user]" size="'.$len_textbox.'" maxlength="'.(32 - strlen($user_prefix)).'" class="text" [COLOR="Red"]onBlur="this.form.plugin[user].value = this.form.plugin[email].value"[/COLOR] >'; } else { //Ohne User-Prefix $out_user = $user_prefix.'<input type="text" name="plugin[user]" size="30" maxlength="32" class="text">'; } $go_api->renderer->element_jscript_nummer++; } /**************************************************** * Emailadresse vorbereiten *****************************************************/ //if($go_api->db->queryOneRecord("SELECT * FROM isp_isp_domain, isp_dep, isp_nodes WHERE isp_isp_domain.doc_id = isp_dep.child_doc_id AND isp_isp_domain.doctype_id = isp_dep.child_doctype_id AND isp_dep.parent_doctype_id = ".$web['doctype_id']." AND isp_dep.p //PRE-MOD $out_email = '<input type="text" name="plugin[email]" size="10" maxlength="32" class="text" value="'.$user["user_email"].'">@'.$web["web_domain"]; $out_email = '<input type="text" name="plugin[email]" size="10" maxlength="32" class="text" value="'.$user["user_email"].'" [COLOR="Red"]onBlur="this.form.plugin[user].value = this.form.plugin[email].value" [/COLOR]>@'.$web["web_domain"]; } Leaving the field "email" would fill the next field "username" automatically an keep the value even if changed manually. Unfortunately Javascript can't deal with the brackets [] in Code: "this.form.plugin[user].value = this.form.plugin[email].value". I tested it with renamed input name="pluginemail" and input name="pluginuser" and it worked like a charm. Renaming the input name="plugin" will break ISPConfig. Leaving them like they are breaks the hack. Any hints on another solution are highly appreciated. jz
FIXED: Generate username from email-address Hi forum, i found a quick'n'dirty solution on my own to make it work: Code: // neuer Username if($user_prefix != '') { // Mit User-Prefix $len_textbox = ((30 - strlen($user_prefix)) < 10)? 10: 29 - strlen($user_prefix); // PRE-MOD $out_user = $user_prefix.'<input type="text" name="plugin[user]" size="'.$len_textbox.'" maxlength="'.(32 - strlen($user_prefix)).'" class="text" >'; $out_user = $user_prefix.'<input type="text" name="plugin[user]" size="'.$len_textbox.'" maxlength="'.(32 - strlen($user_prefix)).'" class="text" [COLOR="Red"]readonly="readonly"[/COLOR] >'; } else { //Ohne User-Prefix $out_user = $user_prefix.'<input type="text" name="plugin[user]" size="30" maxlength="32" class="text">'; } $go_api->renderer->element_jscript_nummer++; } /**************************************************** * Emailadresse vorbereiten *****************************************************/ //if($go_api->db->queryOneRecord("SELECT * FROM isp_isp_domain, isp_dep, isp_nodes WHERE isp_isp_domain.doc_id = isp_dep.child_doc_id AND isp_isp_domain.doctype_id = isp_dep.child_doctype_id AND isp_dep.parent_doctype_id = ".$web['doctype_id']." AND isp_dep.p //PRE-MOD $out_email = '<input type="text" name="plugin[email]" size="10" maxlength="32" class="text" value="'.$user["user_email"].'">@'.$web["web_domain"]; $out_email = '<input type="text" name="plugin[email]" size="10" maxlength="32" class="text" value="'.$user["user_email"].'" [COLOR="Red"]onKeyUp="document.forms[0].elements[2].value = document.forms[0].elements[1].value"[/COLOR] >@'.$web["web_domain"]; Just check the code parts marked in red and you'll see. jz
Hi Falko, patch is running stable for us. Maybe it can be added to next release with an additional switch like "Generate Usernames from eMail-Address" when user-prefix ist set to [WEB] oder [DOMAIN] in ISPConfig system settings. Regards, jz
I tried that patch, but i removed the readonly, since if i don't ispconfig tells me the username must be 4 or more chars. and i left my [DOMAIN]_ setting too.
I don't why but it is not working for me I modified in Management and set user prefix to [Domain] I also modified the code from isp_username.plugin.php But it doesn't modify anything in database all it does it generates the user name. any ideea?
Which ISPConfig version do you use? The patch was made for ISPConfig 2.2.6, I don't know if it works in newer versions.