function to create email addresses after a configurable policy

This commit is contained in:
Ralf Becker 2006-04-16 12:31:00 +00:00
parent 515a22be1a
commit 703f049b09
6 changed files with 92 additions and 13 deletions

View File

@ -307,6 +307,10 @@
if ($_POST['submit'])
{
if (!($email = $_POST['account_email']))
{
$email = $GLOBALS['egw']->common->email_address($_POST['account_firstname'],$_POST['account_lastname'],$_POST['account_lid']);
}
$userData = array(
'account_type' => 'u',
'account_lid' => $accountPrefix.$_POST['account_lid'],
@ -326,7 +330,7 @@
'homedirectory' => $_POST['homedirectory'],
'loginshell' => $_POST['loginshell'],
'account_expires_never' => $_POST['never_expires'],
'account_email' => $_POST['account_email'],
'account_email' => $email,
/* 'file_space' => $_POST['account_file_space_number'] . "-" . $_POST['account_file_space_type'] */
);
@ -517,6 +521,10 @@
if ($_POST['submit'])
{
if (!($email = $_POST['account_email']))
{
$email = $GLOBALS['egw']->common->email_address($_POST['account_firstname'],$_POST['account_lastname'],$_POST['account_lid']);
}
$userData = array(
'account_lid' => $accountPrefix.$_POST['account_lid'],
'firstname' => $_POST['account_firstname'],
@ -535,7 +543,7 @@
'homedirectory' => $_POST['homedirectory'],
'loginshell' => $_POST['loginshell'],
'account_expires_never' => $_POST['never_expires'],
'email' => $_POST['account_email'],
'email' => $email,
/* 'file_space' => $_POST['account_file_space_number'] . "-" . $_POST['account_file_space_type'] */
);
if ($userData['account_primary_group'] && (!isset($userData['account_groups']) || !in_array($userData['account_primary_group'],$userData['account_groups'])))

View File

@ -1029,6 +1029,8 @@
function create_edit_user($_account_id,$_userData='',$_errors='')
{
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
$sbox =& CreateObject('phpgwapi.sbox');
$jscal =& CreateObject('phpgwapi.jscalendar');
@ -1127,7 +1129,8 @@
'lang_firstname' => lang('First Name'),
'lang_anonymous' => lang('Anonymous User (not shown in list sessions)'),
'lang_changepassword' => lang('Can change password'),
'lang_button' => ($_account_id?lang('Save'):lang('Add'))
'lang_button' => ($_account_id?lang('Save'):lang('Add')),
'lang_passwds_unequal' => lang('The two passwords are not the same'),
/* 'lang_file_space' => lang('File Space') */
);
$t->set_var($var);
@ -1187,7 +1190,7 @@
$var = Array(
'input_expires' => $jscal->input('expires',$userData['expires']<0?'':($userData['expires']?$userData['expires']:time()+(60*60*24*7))),
'lang_never' => lang('Never'),
'account_lid' => $accountPrefix.'<input name="account_lid" value="' . $userData['account_lid'] . '">',
'account_lid' => $accountPrefix.'<input id="account" onchange="check_account_email(this.id);" name="account_lid" value="' . $userData['account_lid'] . '">',
'lang_homedir' => $lang_homedir,
'lang_shell' => $lang_shell,
'homedirectory' => $homedirectory,
@ -1195,12 +1198,13 @@
'anonymous' => '<input type="checkbox" name="anonymous" value="1"'.($userData['anonymous'] ? ' checked' : '').'>',
'changepassword' => '<input type="checkbox" name="changepassword" value="1"'.($userData['changepassword'] ? ' checked' : '').'>',
'account_status' => '<input type="checkbox" name="account_status" value="A"'.($userData['status']?' checked':'').'>',
'account_firstname' => '<input name="account_firstname" value="' . $userData['firstname'] . '">',
'account_lastname' => '<input name="account_lastname" value="' . $userData['lastname'] . '">',
'account_email' => '<input name="account_email" size="32" value="' . $userData['email'] . '">',
'account_firstname' => '<input id="firstname" onchange="check_account_email(this.id);" name="account_firstname" value="' . $userData['firstname'] . '">',
'account_lastname' => '<input id="lastname" onchange="check_account_email(this.id);" name="account_lastname" value="' . $userData['lastname'] . '">',
'account_email' => '<input id="email" onchange="check_account_email(this.id);" name="account_email" size="32" value="' . $userData['email'] . '">',
'account_passwd' => $userData['account_passwd'],
'account_passwd_2' => $userData['account_passwd_2'],
'account_file_space' => $account_file_space
'account_file_space' => $account_file_space,
'account_id' => (int) $userData['account_id'],
);
if($userData['expires'] == -1)
@ -1325,6 +1329,22 @@
echo $t->fp('out','form');
}
function ajax_check_account_email($first,$last,$account_lid,$account_id,$email,$id)
{
$response =& new xajaxResponse();
if (!$email)
{
$response->addAssign('email','value',$GLOBALS['egw']->common->email_address($first,$last,$account_lid));
}
$id_account_lid = (int) $GLOBALS['egw']->accounts->name2id($account_lid);
if ($id == 'account' && $id_account_lid && $id_account_lid != (int) $account_id)
{
$response->addScript("alert('".addslashes(lang('That loginid has already been taken').': '.$account_lid)."'); document.getElementById('account').value='".
($account_id ? $GLOBALS['egw']->accounts->id2name($account_id) : '')."'; document.getElementById('account').focus();");
}
return $response->getXML();
}
function edit_group_managers($group_info,$_errors='')
{
if ($GLOBALS['egw']->acl->check('group_access',16,'admin'))

View File

@ -221,12 +221,14 @@ host information admin de Host-Information
hour<br>(0-23) admin de Stunde<br>(0-23)
how many days should entries stay in the access log, before they get deleted (default 90) ? admin de Wie viele Tage sollen Einträge im Zugangsprotokoll bleiben, bevor sie gelöscht werden (Vorgabe 90)?
how many minutes should an account or ip be blocked (default 30) ? admin de Wie viele Minuten soll ein Benutzerkonto oder eine IP gesperrt werden (Vorgabe 30)?
how should email addresses for new users be constructed? admin de In welchem Format sollen EMail Adressen von neuen Benutzern erzeugt werden?
icon admin de Icon
idle admin de im Leerlauf
if no acl records for user or any group the user is a member of admin de Wenn es keinen ACL-Eintrag für einen Benutzer oder oder eine Gruppe der er angehört gibt
if using ldap, do you want to manage homedirectory and loginshell attributes? admin de Wenn Sie LDAP verwenden, wollen Sie Benutzerverzeichnisse und Komandointerpreter verwalten ?
in mbyte admin de in MByte
inbound admin de eingehend
initial admin de Anfangsbuchstabe
install crontab admin de Crontab installieren
installed applications common de Installierte Anwendungen
installed crontab admin de Installierte Crontab
@ -406,7 +408,7 @@ use cookies to pass sessionid admin de SitzungsId in einem Cookie speichern
use pure html compliant code (not fully working yet) admin de Vollständig HTML kompatiblen Code verwenden (nicht vollständig implementiert)
use theme admin de Benutztes Farbschema
user accounts admin de Benutzerkonten
user data admin de Benutzerdaten
user data common de Benutzerdaten
user for smtp-authentication (leave it empty if no auth required) admin de Benutzer für SMTP Authentifizierung (leer lassen falls keine Authentifizierung nötig)
user groups admin de Benutzergruppen
userdata admin de Benutzerkonto

View File

@ -221,12 +221,14 @@ host information admin en Host information
hour<br>(0-23) admin en Hour<br>(0-23)
how many days should entries stay in the access log, before they get deleted (default 90) ? admin en How many days should entries stay in the access log, before they get deleted (default 90) ?
how many minutes should an account or ip be blocked (default 30) ? admin en How many minutes should an account or IP be blocked (default 30) ?
how should email addresses for new users be constructed? admin en How should EMail addresses for new users be constructed?
icon admin en Icon
idle admin en idle
if no acl records for user or any group the user is a member of admin en If no ACL records for user or any group the user is a member of
if using ldap, do you want to manage homedirectory and loginshell attributes? admin en If using LDAP, do you want to manage homedirectory and loginshell attributes?
in mbyte admin en in MByte
inbound admin en inbound
initial admin en Initial
install crontab admin en Install crontab
installed applications common en Installed applications
installed crontab admin en Installed crontab
@ -406,7 +408,7 @@ use cookies to pass sessionid admin en Use cookies to pass sessionid
use pure html compliant code (not fully working yet) admin en Use pure HTML compliant code (not fully working yet)
use theme admin en Use theme
user accounts admin en User accounts
user data admin en User Data
user data common en User Data
user for smtp-authentication (leave it empty if no auth required) admin en User for SMTP-authentication (leave it empty if no auth required)
user groups admin en User groups
userdata admin en userdata

View File

@ -1,6 +1,34 @@
<!-- BEGIN form -->
{error_messages}
<script>
var email_set=0;
function check_account_email(id)
{
account = document.getElementById('account').value;
firstname = document.getElementById('firstname').value;
lastname = document.getElementById('lastname').value;
email = document.getElementById('email').value;
if (!email || email_set || id == 'account')
{
xajax_doXMLHTTP('admin.uiaccounts.ajax_check_account_email',firstname,lastname,account,{account_id},email_set ? '' : email,id);
email_set = !email || email_set;
}
}
function check_password(id)
{
password = document.getElementById('password').value;
password2 = document.getElementById('password2').value;
if (password && (password2 || id == 'password2') && password != password2)
{
alert('{lang_passwds_unequal}');
document.getElementById('password2').focus();
return false;
}
return true;
}
</script>
<form method="POST" action="{form_action}">
<div align="center">
<table border="0" width="95%">
@ -75,9 +103,9 @@
<!-- BEGIN form_passwordinfo -->
<tr class="row_on">
<td>{lang_password}</td>
<td><input type="password" name="account_passwd" value="{account_passwd}"></td>
<td><input id="password" onchange="check_password(this.id);" type="password" name="account_passwd" value="{account_passwd}"></td>
<td>{lang_reenter_password}</td>
<td><input type="password" name="account_passwd_2" value="{account_passwd_2}"></td>
<td><input id="password2" onblur="check_password(this.id);" type="password" name="account_passwd_2" value="{account_passwd_2}"></td>
</tr>
<!-- END form_passwordinfo -->

View File

@ -71,6 +71,25 @@
</td>
</tr>
<tr class="row_on">
<td>{lang_How_should_EMail_addresses_for_new_users_be_constructed?}:</td>
<td>
<select name="newsettings[email_address_format]">
<option value="first_dot_last">{lang_Firstname}.{lang_Lastname}@domain.com</option>
<option value="first_last">{lang_Firstname}{lang_Lastname}@domain.com</option>
<option value="first_underscore_last">{lang_Firstname}_{lang_Lastname}@domain.com</option>
<option value="initial_last">{lang_Initial}{lang_Lastname}@domain.com</option>
<option value="initial_dot_last">{lang_Initial}.{lang_Lastname}@domain.com</option>
<option value="last_dot_first">{lang_Lastname}.{lang_Firstname}@domain.com</option>
<option value="last_first">{lang_Lastname}{lang_Firstname}@domain.com</option>
<option value="last_underscore_first">{lang_Lastname}_{lang_Firstname}@domain.com</option>
<option value="last">{lang_Lastname}@domain.com</option>
<option value="first">{lang_Firstname}@domain.com</option>
<option value="account">{lang_Username}@domain.com</option>
</select>
</td>
</tr>
<tr class="th">
<td colspan="2">&nbsp;<b>{lang_appearance}</b></td>
</tr>