Skip to content

Creating a new user should always check if handle already exists - Make handle unique?! #993

Open
@q2apro

Description

I used a plugin that generates userhandles and inserts them. It happened, that users simultaneously signed up and the plugin checked if the userhandle does not exist, which was true for both, then used function qa_db_user_create() to create the new user. Hence, the user handle was assigned twice and even the email was there twice!

Starting questions:

  1. Why in qa_users the column handle is not unique?
  2. Why in qa_users the column email is not unique?

Code question:

  1. Should we change the function qa_db_user_create() so it does something like:
	INSERT INTO `^users` 
	(created, loggedin, createip, email, passhash, level, handle, loginip) 
	SELECT NOW(), NOW(), UNHEX($), $, $, #, $, UNHEX($)
	FROM DUAL 
	WHERE NOT EXISTS (
		SELECT 1 
		FROM `qa_users` 
		WHERE email = $
		OR handle = $
	)

// is "0" IF NO ENTRY WAS CREATED
$userid_new = qa_db_last_insert_id();
  1. Should we make handle and email unique and then catch somehow the error that is casted by MySQL with INSERT INTO.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions