function user_signup($p_username, $p_email)
{
    # Check to see if signup is allowed
    if (OFF == config_get('allow_signup')) {
        return false;
    }
    if (empty($p_username) || empty($p_email)) {
        return false;
    }
    $t_password = create_random_password($p_email);
    if (false === user_create($p_username, $t_password, $p_email)) {
        return false;
    }
    email_signup($p_username, $t_password, $p_email);
    return true;
}
示例#2
0
/**
 * Create a user.
 * returns false if error, the generated cookie string if valid
 *
 * @param string  $p_username     A valid username.
 * @param string  $p_password     The password to set for the user.
 * @param string  $p_email        The Email Address of the user.
 * @param integer $p_access_level The global access level for the user.
 * @param boolean $p_protected    Whether the account is protected from modifications (default false).
 * @param boolean $p_enabled      Whether the account is enabled.
 * @param string  $p_realname     The realname of the user.
 * @param string  $p_admin_name   The name of the administrator creating the account.
 * @return string Cookie String
 */
function user_create($p_username, $p_password, $p_email = '', $p_access_level = null, $p_protected = false, $p_enabled = true, $p_realname = '', $p_admin_name = '')
{
    if (null === $p_access_level) {
        $p_access_level = config_get('default_new_account_access_level');
    }
    $t_password = auth_process_plain_password($p_password);
    $c_enabled = (bool) $p_enabled;
    user_ensure_name_valid($p_username);
    user_ensure_name_unique($p_username);
    user_ensure_realname_unique($p_username, $p_realname);
    email_ensure_valid($p_email);
    $t_cookie_string = auth_generate_unique_cookie_string();
    $t_query = 'INSERT INTO {user}
				    ( username, email, password, date_created, last_visit,
				     enabled, access_level, login_count, cookie_string, realname )
				  VALUES
				    ( ' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ',
				     ' . db_param() . ',' . db_param() . ',' . db_param() . ',' . db_param() . ', ' . db_param() . ')';
    db_query($t_query, array($p_username, $p_email, $t_password, db_now(), db_now(), $c_enabled, (int) $p_access_level, 0, $t_cookie_string, $p_realname));
    # Create preferences for the user
    $t_user_id = db_insert_id(db_get_table('user'));
    # Users are added with protected set to FALSE in order to be able to update
    # preferences.  Now set the real value of protected.
    if ($p_protected) {
        user_set_field($t_user_id, 'protected', (bool) $p_protected);
    }
    # Send notification email
    if (!is_blank($p_email)) {
        $t_confirm_hash = auth_generate_confirm_hash($t_user_id);
        email_signup($t_user_id, $t_confirm_hash, $p_admin_name);
    }
    return $t_cookie_string;
}
示例#3
0
function user_create($p_username, $p_password, $p_email = '', $p_access_level = null, $p_protected = false, $p_enabled = true, $p_realname = '')
{
    if (null === $p_access_level) {
        $p_access_level = config_get('default_new_account_access_level');
    }
    $t_password = auth_process_plain_password($p_password);
    $c_username = db_prepare_string($p_username);
    $c_realname = db_prepare_string($p_realname);
    $c_password = db_prepare_string($t_password);
    $c_email = db_prepare_string($p_email);
    $c_access_level = db_prepare_int($p_access_level);
    $c_protected = db_prepare_bool($p_protected);
    $c_enabled = db_prepare_bool($p_enabled);
    user_ensure_name_valid($p_username);
    user_ensure_name_unique($p_username);
    user_ensure_realname_valid($p_realname);
    user_ensure_realname_unique($p_username, $p_realname);
    email_ensure_valid($p_email);
    $t_seed = $p_email . $p_username;
    $t_cookie_string = auth_generate_unique_cookie_string($t_seed);
    $t_user_table = config_get('mantis_user_table');
    $query = "INSERT INTO {$t_user_table}\n\t\t\t\t    ( username, email, password, date_created, last_visit,\n\t\t\t\t     enabled, access_level, login_count, cookie_string, realname )\n\t\t\t\t  VALUES\n\t\t\t\t    ( '{$c_username}', '{$c_email}', '{$c_password}', " . db_now() . "," . db_now() . ",\n\t\t\t\t     {$c_enabled}, {$c_access_level}, 0, '{$t_cookie_string}', '{$c_realname}')";
    db_query($query);
    # Create preferences for the user
    $t_user_id = db_insert_id($t_user_table);
    user_pref_set_default($t_user_id);
    # Users are added with protected set to FALSE in order to be able to update
    # preferences.  Now set the real value of protected.
    if ($c_protected) {
        user_set_field($t_user_id, 'protected', 1);
    }
    # Send notification email
    if (!is_blank($p_email)) {
        $t_confirm_hash = auth_generate_confirm_hash($t_user_id);
        email_signup($t_user_id, $p_password, $t_confirm_hash);
    }
    return $t_cookie_string;
}
示例#4
0
function user_create($p_username, $p_password, $p_email = '', $p_access_level = null, $p_protected = false, $p_enabled = true, $p_realname = '', $p_admin_name = '', $p_role = null, $p_agency = null, $p_unit_department = null)
{
    if (null === $p_access_level) {
        $p_access_level = config_get('default_new_account_access_level');
    }
    #added
    if (null === $p_role) {
        $p_role = config_get('default_new_account_role');
    }
    ##
    #added
    if (null === $p_agency) {
        $p_agency = config_get('default_new_account_agency');
    }
    ##
    #added
    if (null === $p_unit_department) {
        $p_unit_department = config_get('default_new_account_unit_department');
    }
    ##
    $t_password = auth_process_plain_password($p_password);
    $c_access_level = db_prepare_int($p_access_level);
    #added
    $c_role = db_prepare_int($p_role);
    $c_agency = db_prepare_int($p_agency);
    $c_unit_department = db_prepare_int($p_unit_department);
    ##
    $c_protected = db_prepare_bool($p_protected);
    $c_enabled = db_prepare_bool($p_enabled);
    user_ensure_name_valid($p_username);
    user_ensure_name_unique($p_username);
    user_ensure_realname_valid($p_realname);
    user_ensure_realname_unique($p_username, $p_realname);
    email_ensure_valid($p_email);
    $t_seed = $p_email . $p_username;
    $t_cookie_string = auth_generate_unique_cookie_string($t_seed);
    $t_user_table = db_get_table('mantis_user_table');
    #modification effectuée le 10/08/2012##
    ##############################################################################################
    /*$query = "INSERT INTO $t_user_table
    				    ( username, email, password, date_created, last_visit,
    				     enabled, access_level, login_count, cookie_string, realname )
    				  VALUES
    				    ( " . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param()  . ",
    				     " . db_param() . ',' . db_param() . ',' . db_param() . ',' . db_param() . ', ' . db_param() . ')';
    	db_query_bound( $query, Array( $p_username, $p_email, $t_password, db_now(), db_now(), $c_enabled, $c_access_level, 0, $t_cookie_string, $p_realname ) );
    	*/
    $query = "INSERT INTO {$t_user_table}\n\t\t\t\t    ( username, email, password, date_created, last_visit,\n\t\t\t\t     enabled, access_level, login_count, cookie_string, realname, role, agency, unit_department)\n\t\t\t\t  VALUES\n\t\t\t\t    ( " . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ",\n\t\t\t\t     " . db_param() . ',' . db_param() . ',' . db_param() . ',' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ')';
    db_query_bound($query, array($p_username, $p_email, $t_password, db_now(), db_now(), $c_enabled, $c_access_level, 0, $t_cookie_string, $p_realname, $p_role, $p_agency, $p_unit_department));
    ##############################################################################################
    ##end##
    # Create preferences for the user
    $t_user_id = db_insert_id($t_user_table);
    # Users are added with protected set to FALSE in order to be able to update
    # preferences.  Now set the real value of protected.
    if ($c_protected) {
        user_set_field($t_user_id, 'protected', 1);
    }
    # Send notification email
    if (!is_blank($p_email)) {
        $t_confirm_hash = auth_generate_confirm_hash($t_user_id);
        email_signup($t_user_id, $p_password, $t_confirm_hash, $p_admin_name);
    }
    return $t_cookie_string;
}
示例#5
0
function signup_user($p_username, $p_email = false)
{
    global $g_use_ldap_email, $g_mantis_user_table, $g_default_new_account_access_level, $g_mantis_user_pref_table, $g_default_advanced_report, $g_default_advanced_view, $g_default_advanced_update, $g_default_refresh_delay, $g_default_redirect_delay, $g_default_email_on_new, $g_default_email_on_assigned, $g_default_email_on_feedback, $g_default_email_on_resolved, $g_default_email_on_closed, $g_default_email_on_reopened, $g_default_email_on_bugnote, $g_default_email_on_status, $g_default_email_on_priority, $g_default_language;
    if (false == $p_email && ON == $g_use_ldap_email) {
        $p_email = get_user_info("{$p_username}", "email");
    }
    $t_seed = $p_email ? $p_email : $p_username;
    # Create random password
    $t_password = create_random_password($t_seed);
    # Use a default access level
    # create the almost unique string for each user then insert into the table
    $t_cookie_string = create_cookie_string($t_seed);
    $t_password2 = process_plain_password($t_password);
    $query = "INSERT INTO {$g_mantis_user_table}\n\t\t\t\t( id, username, email, password, date_created, last_visit,\n\t\t\t\tenabled, protected, access_level, login_count, cookie_string )\n\t\t\t\tVALUES\n\t\t\t\t( null, '{$p_username}', '{$p_email}', '{$t_password2}', NOW(), NOW(),\n\t\t\t\t1, 0, {$g_default_new_account_access_level}, 0, '{$t_cookie_string}')";
    $result = db_query($query);
    if (!$result) {
        return false;
    }
    # Create preferences for the user
    $t_user_id = db_insert_id();
    $query = "INSERT INTO {$g_mantis_user_pref_table}\n\t\t\t\t(id, user_id, advanced_report, advanced_view, advanced_update,\n\t\t\t\trefresh_delay, redirect_delay,\n\t\t\t\temail_on_new, email_on_assigned,\n\t\t\t\temail_on_feedback, email_on_resolved,\n\t\t\t\temail_on_closed, email_on_reopened,\n\t\t\t\temail_on_bugnote, email_on_status,\n\t\t\t\temail_on_priority, language)\n\t\t\t\tVALUES\n\t\t\t\t(null, '{$t_user_id}', '{$g_default_advanced_report}',\n\t\t\t\t'{$g_default_advanced_view}', '{$g_default_advanced_update}',\n\t\t\t\t'{$g_default_refresh_delay}', '{$g_default_redirect_delay}',\n\t\t\t\t'{$g_default_email_on_new}', '{$g_default_email_on_assigned}',\n\t\t\t\t'{$g_default_email_on_feedback}', '{$g_default_email_on_resolved}',\n\t\t\t\t'{$g_default_email_on_closed}', '{$g_default_email_on_reopened}',\n\t\t\t\t'{$g_default_email_on_bugnote}', '{$g_default_email_on_status}',\n\t\t\t\t'{$g_default_email_on_priority}', '{$g_default_language}')";
    $result = db_query($query);
    if (!$result) {
        return false;
    }
    # Send notification email
    if ($p_email) {
        email_signup($t_user_id, $t_password);
    }
    return $t_cookie_string;
}