feature 1668, user manager redesign: ability to add a new user (call to pwg.users.add through AJAX)
Move the "send connection settings" code to function register_user (avoid code duplication). git-svn-id: http://piwigo.org/svn/trunk@25237 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
f79ae0902b
commit
df6718f3f8
7 changed files with 211 additions and 76 deletions
|
|
@ -125,12 +125,12 @@ function search_case_username($username)
|
|||
* @param string $login
|
||||
* @param string $password
|
||||
* @param string $mail_adress
|
||||
* @param bool $with_notifications
|
||||
* @param bool $notify_admin
|
||||
* @param &array $errors
|
||||
* @param bool $notify_user
|
||||
* @return int|bool
|
||||
*/
|
||||
function register_user($login, $password, $mail_address,
|
||||
$with_notification = true, &$errors = array())
|
||||
function register_user($login, $password, $mail_address, $notify_admin=true, &$errors = array(), $notify_user=false)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
|
@ -169,24 +169,24 @@ function register_user($login, $password, $mail_address,
|
|||
}
|
||||
}
|
||||
|
||||
$errors = trigger_event('register_user_check',
|
||||
$errors,
|
||||
array(
|
||||
'username'=>$login,
|
||||
'password'=>$password,
|
||||
'email'=>$mail_address,
|
||||
)
|
||||
);
|
||||
$errors = trigger_event(
|
||||
'register_user_check',
|
||||
$errors,
|
||||
array(
|
||||
'username'=>$login,
|
||||
'password'=>$password,
|
||||
'email'=>$mail_address,
|
||||
)
|
||||
);
|
||||
|
||||
// if no error until here, registration of the user
|
||||
if (count($errors) == 0)
|
||||
{
|
||||
$insert =
|
||||
array(
|
||||
$conf['user_fields']['username'] => pwg_db_real_escape_string($login),
|
||||
$conf['user_fields']['password'] => $conf['password_hash']($password),
|
||||
$conf['user_fields']['email'] => $mail_address
|
||||
);
|
||||
$insert = array(
|
||||
$conf['user_fields']['username'] => pwg_db_real_escape_string($login),
|
||||
$conf['user_fields']['password'] => $conf['password_hash']($password),
|
||||
$conf['user_fields']['email'] => $mail_address
|
||||
);
|
||||
|
||||
single_insert(USERS_TABLE, $insert);
|
||||
$user_id = pwg_db_insert_id();
|
||||
|
|
@ -203,9 +203,9 @@ SELECT id
|
|||
$inserts = array();
|
||||
while ($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$inserts[] = array(
|
||||
'user_id' => $user_id,
|
||||
'group_id' => $row['id']
|
||||
$inserts[] = array(
|
||||
'user_id' => $user_id,
|
||||
'group_id' => $row['id']
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -215,40 +215,66 @@ SELECT id
|
|||
}
|
||||
|
||||
$override = null;
|
||||
if ($with_notification and $conf['browser_language'])
|
||||
if ($notify_admin and $conf['browser_language'])
|
||||
{
|
||||
if ( !get_browser_language($override['language']) )
|
||||
if (!get_browser_language($override['language']))
|
||||
{
|
||||
$override=null;
|
||||
}
|
||||
}
|
||||
create_user_infos($user_id, $override);
|
||||
|
||||
if ($with_notification and $conf['email_admin_on_new_user'])
|
||||
if ($notify_admin and $conf['email_admin_on_new_user'])
|
||||
{
|
||||
include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
|
||||
$admin_url = get_absolute_root_url()
|
||||
.'admin.php?page=user_list&username='.$login;
|
||||
$admin_url = get_absolute_root_url().'admin.php?page=user_list&username='.$login;
|
||||
|
||||
$keyargs_content = array
|
||||
(
|
||||
$keyargs_content = array(
|
||||
get_l10n_args('User: %s', stripslashes($login)),
|
||||
get_l10n_args('Email: %s', $_POST['mail_address']),
|
||||
get_l10n_args('', ''),
|
||||
get_l10n_args('Admin: %s', $admin_url)
|
||||
);
|
||||
);
|
||||
|
||||
pwg_mail_notification_admins
|
||||
(
|
||||
pwg_mail_notification_admins(
|
||||
get_l10n_args('Registration of %s', stripslashes($login)),
|
||||
$keyargs_content
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
trigger_action('register_user',
|
||||
if ($notify_user and email_check_format($mail_address))
|
||||
{
|
||||
include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
|
||||
|
||||
$keyargs_content = array(
|
||||
get_l10n_args('Hello %s,', $login),
|
||||
get_l10n_args('Thank you for registering at %s!', $conf['gallery_title']),
|
||||
get_l10n_args('', ''),
|
||||
get_l10n_args('Here are your connection settings', ''),
|
||||
get_l10n_args('Username: %s', $login),
|
||||
get_l10n_args('Password: %s', $password),
|
||||
get_l10n_args('Email: %s', $mail_address),
|
||||
get_l10n_args('', ''),
|
||||
get_l10n_args('If you think you\'ve received this email in error, please contact us at %s', get_webmaster_mail_address()),
|
||||
);
|
||||
|
||||
pwg_mail(
|
||||
$mail_address,
|
||||
array(
|
||||
'subject' => '['.$conf['gallery_title'].'] '.l10n('Registration'),
|
||||
'content' => l10n_args($keyargs_content),
|
||||
'content_format' => 'text/plain',
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
trigger_action(
|
||||
'register_user',
|
||||
array(
|
||||
'id'=>$user_id,
|
||||
'username'=>$login,
|
||||
'email'=>$mail_address,
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return $user_id;
|
||||
|
|
|
|||
|
|
@ -3561,7 +3561,24 @@ SELECT user_id, group_id
|
|||
*/
|
||||
function ws_users_add($params, &$service)
|
||||
{
|
||||
$user_id = register_user($params['username'], $params['password'], $params['email'], false, $errors);
|
||||
global $conf;
|
||||
|
||||
if ($conf['double_password_type_in_admin'])
|
||||
{
|
||||
if ($params['password'] != $params['password_confirm'])
|
||||
{
|
||||
return new PwgError(WS_ERR_INVALID_PARAM, l10n('The passwords do not match'));
|
||||
}
|
||||
}
|
||||
|
||||
$user_id = register_user(
|
||||
$params['username'],
|
||||
$params['password'],
|
||||
$params['email'],
|
||||
false, // notify admin
|
||||
$errors,
|
||||
$params['send_password_by_mail']
|
||||
);
|
||||
|
||||
if (!$user_id)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue