aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormistic100 <mistic@piwigo.org>2013-10-24 13:01:25 +0000
committermistic100 <mistic@piwigo.org>2013-10-24 13:01:25 +0000
commit2d2a2e2813b3f709ad907aad77e0af24e276103a (patch)
tree242c204ec43140cf541cc3ca378606f2a77ab9b9
parentd6211432ec2144b877e16c36c1f8ea202bb8daae (diff)
bug 2988: register_user() must returns new user id
git-svn-id: http://piwigo.org/svn/trunk@25116 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--admin/user_list.php14
-rw-r--r--include/functions_user.inc.php53
-rw-r--r--include/user.inc.php3
-rw-r--r--register.php11
4 files changed, 45 insertions, 36 deletions
diff --git a/admin/user_list.php b/admin/user_list.php
index 2062fad4f..dd43b0d62 100644
--- a/admin/user_list.php
+++ b/admin/user_list.php
@@ -204,8 +204,11 @@ if ($conf['double_password_type_in_admin'] == true)
}
else
{
- $page['errors'] = register_user(
- $_POST['login'], $_POST['password'], $_POST['email'], false);
+ register_user($_POST['login'],
+ $_POST['password'],
+ $_POST['email'],
+ false,
+ $page['errors']);
if (count($page['errors']) == 0)
{
@@ -218,8 +221,11 @@ else if ($conf['double_password_type_in_admin'] == false)
{
if (isset($_POST['submit_add']))
{
- $page['errors'] = register_user(
- $_POST['login'], $_POST['password'], $_POST['email'], false);
+ register_user($_POST['login'],
+ $_POST['password'],
+ $_POST['email'],
+ false,
+ $page['errors']);
if (count($page['errors']) == 0)
{
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php
index 6dc04b7b6..d48f4362d 100644
--- a/include/functions_user.inc.php
+++ b/include/functions_user.inc.php
@@ -119,8 +119,18 @@ function search_case_username($username)
else
return $users_found[0];
}
+
+/**
+ * create a new user
+ * @param string $login
+ * @param string $password
+ * @param string $mail_adress
+ * @param bool $with_notifications
+ * @param &array $errors
+ * @return int|bool
+ */
function register_user($login, $password, $mail_address,
- $with_notification = true, $errors = array())
+ $with_notification = true, &$errors = array())
{
global $conf;
@@ -171,41 +181,32 @@ function register_user($login, $password, $mail_address,
// if no error until here, registration of the user
if (count($errors) == 0)
{
- // what will be the inserted id ?
- $query = '
-SELECT MAX('.$conf['user_fields']['id'].') + 1
- FROM '.USERS_TABLE.'
-;';
- list($next_id) = pwg_db_fetch_row(pwg_query($query));
-
$insert =
array(
- $conf['user_fields']['id'] => $next_id,
$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();
// Assign by default groups
- {
- $query = '
+ $query = '
SELECT id
FROM '.GROUPS_TABLE.'
WHERE is_default = \''.boolean_to_string(true).'\'
ORDER BY id ASC
;';
- $result = pwg_query($query);
+ $result = pwg_query($query);
- $inserts = array();
- while ($row = pwg_db_fetch_assoc($result))
- {
- $inserts[] = array(
- 'user_id' => $next_id,
- 'group_id' => $row['id']
- );
- }
+ $inserts = array();
+ while ($row = pwg_db_fetch_assoc($result))
+ {
+ $inserts[] = array(
+ 'user_id' => $user_id,
+ 'group_id' => $row['id']
+ );
}
if (count($inserts) != 0)
@@ -219,7 +220,7 @@ SELECT id
if ( !get_browser_language($override['language']) )
$override=null;
}
- create_user_infos($next_id, $override);
+ create_user_infos($user_id, $override);
if ($with_notification and $conf['email_admin_on_new_user'])
{
@@ -244,14 +245,18 @@ SELECT id
trigger_action('register_user',
array(
- 'id'=>$next_id,
+ 'id'=>$user_id,
'username'=>$login,
'email'=>$mail_address,
)
);
+
+ return $user_id;
+ }
+ else
+ {
+ return false;
}
-
- return $errors;
}
function build_user( $user_id, $use_cache )
diff --git a/include/user.inc.php b/include/user.inc.php
index 60117e776..9c8fc9680 100644
--- a/include/user.inc.php
+++ b/include/user.inc.php
@@ -60,8 +60,7 @@ if ($conf['apache_authentication'])
{
if (!($user['id'] = get_userid($remote_user)))
{
- register_user($remote_user, '', '', false);
- $user['id'] = get_userid($remote_user);
+ $user['id'] = register_user($remote_user, '', '', false);
}
}
}
diff --git a/register.php b/register.php
index 02a1a1800..2fce11d52 100644
--- a/register.php
+++ b/register.php
@@ -52,12 +52,11 @@ if (isset($_POST['submit']))
$page['errors'][] = l10n('please enter your password again');
}
- $page['errors'] =
- register_user($_POST['login'],
- $_POST['password'],
- $_POST['mail_address'],
- true,
- $page['errors']);
+ register_user($_POST['login'],
+ $_POST['password'],
+ $_POST['mail_address'],
+ true,
+ $page['errors']);
if (count($page['errors']) == 0)
{