Create Empty User as Admin, and force entering info on login For my website, user accounts should only be created by the admin. However, the only fields that should be given by the admin are his full name. All other fields should be supplied by the user himself. For this, I have 2 things I would like to do:

1: Allow the admin to create a new user without supplying required fields.

2: Redirect the user to their profile edit page as long as there are required fields that have not been given.

For 2, I imagine it should be possible with the rules module, although I have not yet tried this. But is there a way to do 1? One thing I have considered is to add a custom page with a simple form to create the user, and to have custom PHP code that will actually create the user. However, I am hoping this is possible without resorting to that.

Edit: The only information I do have are an email, username and full name. All other fields, such as address, profile picture, etc. should be provided by the user themselves.
It's not possible to create a new user without email, username and password. 

The only workaround for this is to create placeholders. E.g. always enter username@example.com in the email field where username is the machine name of the user's full name.

As for creating the user without entering the required fields I think it's best to create a custom form. This form would only contain a textfield Full name.

On submit you dynamically generate the username, email and password (see drupal_clean_css_identifier to easily generate a machine name) and create the user object.

Here's a code example:

$full_name = $form_state['values']['full_name'];
$username = drupal_clean_css_identifier($full_name);
$email = $username . '@example.com';

//This will generate a random password, you could set your own here
$password = user_password(8);

//set up the user fields
$fields = array(
  'name' =&gt; $username,
  'mail' =&gt; $email,
  'pass' =&gt; $password,
  'status' =&gt; 1,
  'init' =&gt; 'email address',
  'roles' =&gt; array(
    DRUPAL_AUTHENTICATED_RID =&gt; 'authenticated user',
  ),
  // If you have custom field 'Full name' do this:
  'field_full_name' =&gt; array(
    LANGUAGE_NONE =&gt; array(
      0 =&gt; array(
        'value' =&gt; $full_name,
      ),
    ),
  ),
);

//the first parameter is left blank so a new user is created
$account = user_save('', $fields);