Example #1
0
 public function update($id, $params)
 {
     $auth = $this->auth;
     $data = array();
     $status = Response::STATUS_BAD_REQUEST;
     unset($params['user_id']);
     list($user_id, $profile_id) = fn_update_user($id, $params, $auth, false, false);
     if ($user_id) {
         $status = Response::STATUS_OK;
         $data = array('user_id' => $user_id, 'profile_id' => $profile_id);
     }
     return array('status' => $status, 'data' => $data);
 }
Example #2
0
     }
     if (!isset($user_data['password1'])) {
         $user_data['password1'] = '';
     }
     $notify_user = true;
     if (isset($_REQUEST['page']) && $_REQUEST['page'] == 'cart') {
         $notify_user = false;
         if ($user_data['copy_address']) {
             $profile_fields = fn_get_profile_fields('O');
             fn_fill_address($user_data, $profile_fields);
         }
     }
     if (isset($user_data['fields']) && is_array($user_data['fields'])) {
         $user_data['fields'] = array_filter($user_data['fields'], 'fn_twg_filter_profile_fields');
     }
     $result = fn_update_user($user_data['user_id'], $user_data, $_SESSION['auth'], !$user_data['copy_address'], $notify_user);
     if (!$result) {
         if (!fn_twg_set_internal_errors($response, 'ERROR_FAIL_CREATE_USER')) {
             $response->addError('ERROR_FAIL_CREATE_USER', __('twgadmin_fail_create_user'));
         }
         $response->returnResponse();
     }
     if ($_SESSION['auth']['user_id'] == 0 && version_compare(PRODUCT_VERSION, '4.3.1', '>=')) {
         list($user_id, $profile_id) = $result;
         fn_login_user($user_id);
     }
     $_SESSION['cart']['user_data'] = fn_get_user_info($_SESSION['auth']['user_id']);
     $profile = fn_twg_get_user_info($_SESSION['auth']['user_id']);
     $profile = array_merge($profile, array('cart' => fn_twg_api_get_session_cart($_SESSION['cart'], $lang_code)));
     $response->setData($profile);
 } elseif ($meta['object'] == 'cart_profile') {
Example #3
0
         }
         $is_valid_user_data = false;
     } elseif ($_REQUEST['user_data']['password1'] !== $_REQUEST['user_data']['password2']) {
         fn_set_notification('W', __('warning'), __('error_validator_password', array('[field2]' => __('password'), '[field]' => __('confirm_password'))));
         $is_valid_user_data = false;
     }
     if (!$is_valid_user_data) {
         return array(CONTROLLER_STATUS_REDIRECT, 'profiles.add');
     }
 }
 if ($_REQUEST['user_data']['email'] !== $_REQUEST['user_data']['email2']) {
     fn_set_notification('W', __('warning'), __('error_validator_password', array('[field2]' => __('email'), '[field]' => __('validate_email'))));
     $is_valid_user_data = false;
 }
 fn_restore_processed_user_password($_REQUEST['user_data'], $_POST['user_data']);
 $res = fn_update_user($auth['user_id'], $_REQUEST['user_data'], $auth, !empty($_REQUEST['ship_to_another']), true);
 if ($res) {
     list($user_id, $profile_id) = $res;
     // Cleanup user info stored in cart
     if (!empty($_SESSION['cart']) && !empty($_SESSION['cart']['user_data'])) {
         $_SESSION['cart']['user_data'] = fn_array_merge($_SESSION['cart']['user_data'], $_REQUEST['user_data']);
     }
     // Delete anonymous authentication
     if ($cu_id = fn_get_session_data('cu_id') && !empty($auth['user_id'])) {
         fn_delete_session_data('cu_id');
     }
     Session::regenerateId();
     if (!empty($_REQUEST['return_url'])) {
         return array(CONTROLLER_STATUS_OK, $_REQUEST['return_url']);
     }
 } else {
Example #4
0
                 }
                 $user_data = array();
                 if (!empty($_REQUEST['company_data']['admin_username'])) {
                     $user_data['user_login'] = $_REQUEST['company_data']['admin_username'];
                 } else {
                     $user_data['user_login'] = $_REQUEST['company_data']['email'];
                 }
                 $user_data['user_type'] = 'A';
                 $user_data['password1'] = fn_generate_password();
                 $user_data['password2'] = $user_data['password1'];
                 $user_data['status'] = $_REQUEST['company_data']['status'];
                 $user_data['company_id'] = $company_id;
                 $user_data['email'] = $_REQUEST['company_data']['email'];
                 $user_data['company'] = $_REQUEST['company_data']['company'];
                 // Create new user, avoiding switching to the vendor admin's session ($null in the 3rd argument)
                 fn_update_user(0, $user_data, $null, false, true, true);
             }
             $suffix = ".update?company_id={$company_id}";
         } else {
             $suffix = ".add";
         }
     } else {
         $suffix = ".add";
     }
 }
 //
 // Processing updating of company element
 //
 if ($mode == 'update') {
     if (!empty($_REQUEST['company_data']['company'])) {
         if (!empty($_REQUEST['company_id']) && defined('COMPANY_ID') && COMPANY_ID != $_REQUEST['company_id']) {
Example #5
0
/**
 * Update steps data handler
 *
 * @param  array $cart   Cart
 * @param  array $auth   Auth
 * @param  array $params Params
 * @return array
 */
function fn_checkout_update_steps(&$cart, &$auth, $params)
{
    $redirect_params = array();
    $user_data = !empty($params['user_data']) ? $params['user_data'] : array();
    unset($user_data['user_type']);
    if (!empty($auth['user_id'])) {
        if (isset($user_data['profile_id'])) {
            if (empty($user_data['profile_id'])) {
                $user_data['profile_type'] = 'S';
            }
            $profile_id = $user_data['profile_id'];
        } elseif (!empty($cart['profile_id'])) {
            $profile_id = $cart['profile_id'];
        } else {
            $profile_id = db_get_field("SELECT profile_id FROM ?:user_profiles WHERE user_id = ?i AND profile_type = 'P'", $auth['user_id']);
        }
        $user_data['user_id'] = $auth['user_id'];
        $current_user_data = fn_get_user_info($auth['user_id'], true, $profile_id);
        if ($profile_id != NULL) {
            $cart['profile_id'] = $profile_id;
        }
        $errors = false;
        // Update contact information
        if (($params['update_step'] == 'step_one' || $params['update_step'] == 'step_two') && !empty($user_data['email'])) {
            // Check email
            $email_exists = fn_is_user_exists($auth['user_id'], $user_data);
            if (!empty($email_exists)) {
                fn_set_notification('E', __('error'), __('error_user_exists'));
                $redirect_params['edit_step'] = $params['update_step'];
                $errors = true;
                $params['next_step'] = $params['update_step'];
            }
        }
        // Update billing/shipping information
        if ($params['update_step'] == 'step_two' || $params['update_step'] == 'step_one' && !$errors) {
            if (!empty($user_data)) {
                $user_data = fn_array_merge($current_user_data, $user_data);
                $user_data['user_type'] = !empty($current_user_data['user_type']) ? $current_user_data['user_type'] : AREA;
                $user_data = fn_fill_contact_info_from_address($user_data);
            }
            $user_data = fn_array_merge($current_user_data, $user_data);
            if (empty($params['ship_to_another'])) {
                $profile_fields = fn_get_profile_fields('O');
                fn_fill_address($user_data, $profile_fields);
            }
            // Check if we need to send notification with new email to customer
            $email = db_get_field('SELECT email FROM ?:users WHERE user_id = ?i', $auth['user_id']);
            $send_notification = false;
            if (isset($user_data['email']) && $user_data['email'] != $email) {
                $send_notification = true;
            }
            list($user_id, $profile_id) = fn_update_user($auth['user_id'], $user_data, $auth, !empty($params['ship_to_another']), $send_notification, false);
            $cart['profile_id'] = $profile_id;
        }
        // Add/Update additional fields
        if (!empty($user_data['fields'])) {
            fn_store_profile_fields($user_data, array('U' => $auth['user_id'], 'P' => $profile_id), 'UP');
            // FIXME
        }
    } elseif (Registry::get('settings.Checkout.disable_anonymous_checkout') != 'Y') {
        if (empty($auth['user_id']) && !empty($user_data['email'])) {
            $email_exists = fn_is_user_exists(0, $user_data);
            if (!empty($email_exists)) {
                fn_set_notification('E', __('error'), __('error_user_exists'));
                fn_save_post_data('user_data');
                if (!empty($params['guest_checkout'])) {
                    $redirect_params['edit_step'] = $params['step_two'];
                    $redirect_params['guest_checkout'] = 1;
                }
                return $redirect_params;
            }
        }
        if (isset($user_data['fields'])) {
            $fields = fn_array_merge(isset($cart['user_data']['fields']) ? $cart['user_data']['fields'] : array(), $user_data['fields']);
        }
        if ($params['update_step'] == 'step_two' && !empty($user_data)) {
            $user_data = fn_fill_contact_info_from_address($user_data);
        }
        $cart['user_data'] = fn_array_merge($cart['user_data'], $user_data);
        // Fill shipping info with billing if needed
        if (empty($params['ship_to_another']) && $params['update_step'] == 'step_two') {
            $profile_fields = fn_get_profile_fields('O');
            fn_fill_address($cart['user_data'], $profile_fields);
        }
        if (!empty($cart['user_data']['b_vat_id']) && !empty($cart['user_data']['b_country'])) {
            if (fn_check_vat_id($user_data['b_vat_id'], $cart['user_data']['b_country'])) {
                fn_set_notification('N', __('notice'), __('vat_id_number_is_valid'));
            } else {
                fn_set_notification('E', __('error'), __('vat_id_number_is_not_valid'));
                $cart['user_data']['b_vat_id'] = '';
                return $redirect_params;
            }
        } elseif (isset($user_data['b_vat_id'])) {
            $user_data['b_vat_id'] = '';
        }
    }
    if (!empty($params['next_step'])) {
        $redirect_params['edit_step'] = $params['next_step'];
    }
    if (!empty($params['shipping_ids'])) {
        fn_checkout_update_shipping($cart, $params['shipping_ids']);
    }
    if (!empty($params['payment_id'])) {
        $cart['payment_id'] = (int) $params['payment_id'];
        if (!empty($params['payment_info'])) {
            $cart['extra_payment_info'] = $params['payment_info'];
            if (!empty($cart['extra_payment_info']['card_number'])) {
                $cart['extra_payment_info']['secure_card_number'] = preg_replace('/^(.+?)([0-9]{4})$/i', '***-$2', $cart['extra_payment_info']['card_number']);
            }
        } else {
            unset($cart['extra_payment_info']);
        }
        fn_update_payment_surcharge($cart, $auth);
        fn_save_cart_content($cart, $auth['user_id']);
    }
    if (!empty($params['customer_notes'])) {
        $cart['notes'] = $params['customer_notes'];
    }
    // Recalculate the cart
    $cart['recalculate'] = true;
    if (!empty($params['next_step']) && ($params['next_step'] == 'step_three' || $params['next_step'] == 'step_four')) {
        $cart['calculate_shipping'] = true;
    }
    $shipping_calculation_type = Registry::get('settings.General.estimate_shipping_cost') == 'Y' || !empty($completed_steps['step_two']) ? 'A' : 'S';
    list($cart_products, $product_groups) = fn_calculate_cart_content($cart, $auth, $shipping_calculation_type, true, 'F');
    $shipping_hash = fn_get_shipping_hash($cart['product_groups']);
    if (!empty($_SESSION['shipping_hash']) && $_SESSION['shipping_hash'] != $shipping_hash && $params['next_step'] == 'step_four' && $cart['shipping_required']) {
        if (!empty($cart['chosen_shipping'])) {
            fn_set_notification('W', __('important'), __('text_shipping_rates_changed'));
        }
        $cart['chosen_shipping'] = array();
        $redirect_params['edit_step'] = 'step_three';
        return $redirect_params;
    }
    return $redirect_params;
}
Example #6
0
                     $user_data['email'] = $_REQUEST['company_data']['email'];
                     $user_data['company'] = $_REQUEST['company_data']['company'];
                     $user_data['last_login'] = 0;
                     $user_data['lang_code'] = $_REQUEST['company_data']['lang_code'];
                     $user_data['password_change_timestamp'] = 0;
                     $user_data['is_root'] = 'N';
                     // Copy vendor admin billing and shipping addresses from the company's credentials
                     $user_data['firstname'] = $user_data['b_firstname'] = $user_data['s_firstname'] = !empty($_REQUEST['company_data']['admin_firstname']) ? $_REQUEST['company_data']['admin_firstname'] : '';
                     $user_data['lastname'] = $user_data['b_lastname'] = $user_data['s_lastname'] = !empty($_REQUEST['company_data']['admin_lastname']) ? $_REQUEST['company_data']['admin_lastname'] : '';
                     $user_data['b_address'] = $user_data['s_address'] = $_REQUEST['company_data']['address'];
                     $user_data['b_city'] = $user_data['s_city'] = $_REQUEST['company_data']['city'];
                     $user_data['b_country'] = $user_data['s_country'] = $_REQUEST['company_data']['country'];
                     $user_data['b_state'] = $user_data['s_state'] = $_REQUEST['company_data']['state'];
                     $user_data['b_zipcode'] = $user_data['s_zipcode'] = $_REQUEST['company_data']['zipcode'];
                     // Create new user, avoiding switching to the vendor admin's session ($null as the 3rd argument)
                     list($added_user_id, $null) = fn_update_user(0, $user_data, $null, false, true, true);
                     if ($added_user_id) {
                         $msg = __('new_administrator_account_created') . '<a href="' . fn_url('profiles.update?user_id=' . $added_user_id) . '">' . __('you_can_edit_account_details') . '</a>';
                         fn_set_notification('N', __('notice'), $msg, 'K');
                     }
                 }
             }
         } else {
             fn_save_post_data('company_data', 'update');
         }
     }
 } else {
     $company_id = fn_update_company($_REQUEST['company_data']);
 }
 if (!empty($company_id)) {
     if (fn_allowed_for('ULTIMATE') && !empty($_REQUEST['update'])) {
/**
 * Fucntion changes company status. Allowed statuses are A(ctive) and D(isabled)
 *
 * @param int $company_id
 * @param string $status_to A or D
 * @param string $reason The reason of the change
 * @param string $status_from Previous status
 * @param boolean $skip_query By default false. Update query might be skipped if status is already changed.
 * @return boolean True on success or false on failure
 */
function fn_companies_change_status($company_id, $status_to, $reason = '', &$status_from = '', $skip_query = false, $notify = true)
{
    if (empty($status_from)) {
        $status_from = db_get_field("SELECT status FROM ?:companies WHERE company_id = ?i", $company_id);
    }
    if (!in_array($status_to, array('A', 'P', 'D')) || $status_from == $status_to) {
        return false;
    }
    $result = $skip_query ? true : db_query("UPDATE ?:companies SET status = ?s WHERE company_id = ?i", $status_to, $company_id);
    if (!$result) {
        return false;
    }
    $company_data = fn_get_company_data($company_id);
    $account = $username = '';
    if ($status_from == 'N' && ($status_to == 'A' || $status_to == 'P')) {
        if (Registry::get('settings.Vendors.create_vendor_administrator_account') == 'Y') {
            if (!empty($company_data['request_user_id'])) {
                $password_change_timestamp = db_get_field("SELECT password_change_timestamp FROM ?:users WHERE user_id = ?i", $company_data['request_user_id']);
                $_set = '';
                if (empty($password_change_timestamp)) {
                    $_set = ", password_change_timestamp = 1 ";
                }
                db_query("UPDATE ?:users SET company_id = ?i, user_type = 'V'{$_set} WHERE user_id = ?i", $company_id, $company_data['request_user_id']);
                $username = fn_get_user_name($company_data['request_user_id']);
                $account = 'updated';
                $msg = __('new_administrator_account_created') . '<a href="' . fn_url('profiles.update?user_id=' . $company_data['request_user_id']) . '">' . __('you_can_edit_account_details') . '</a>';
                fn_set_notification('N', __('notice'), $msg, 'K');
            } else {
                $user_data = array();
                if (!empty($company_data['request_account_name'])) {
                    $user_data['user_login'] = $company_data['request_account_name'];
                } else {
                    $user_data['user_login'] = $company_data['email'];
                }
                $request_account_data = unserialize($company_data['request_account_data']);
                $user_data['fields'] = $request_account_data['fields'];
                $user_data['firstname'] = $user_data['b_firstname'] = $user_data['s_firstname'] = $request_account_data['admin_firstname'];
                $user_data['lastname'] = $user_data['b_lastname'] = $user_data['s_lastname'] = $request_account_data['admin_lastname'];
                $user_data['user_type'] = 'V';
                $user_data['password1'] = fn_generate_password();
                $user_data['password2'] = $user_data['password1'];
                $user_data['status'] = 'A';
                $user_data['company_id'] = $company_id;
                $user_data['email'] = $company_data['email'];
                $user_data['company'] = $company_data['company'];
                $user_data['last_login'] = 0;
                $user_data['lang_code'] = $company_data['lang_code'];
                $user_data['password_change_timestamp'] = 0;
                // Copy vendor admin billing and shipping addresses from the company's credentials
                $user_data['b_address'] = $user_data['s_address'] = $company_data['address'];
                $user_data['b_city'] = $user_data['s_city'] = $company_data['city'];
                $user_data['b_country'] = $user_data['s_country'] = $company_data['country'];
                $user_data['b_state'] = $user_data['s_state'] = $company_data['state'];
                $user_data['b_zipcode'] = $user_data['s_zipcode'] = $company_data['zipcode'];
                list($added_user_id, $null) = fn_update_user(0, $user_data, $null, false, false);
                if ($added_user_id) {
                    $msg = __('new_administrator_account_created') . '<a href="' . fn_url('profiles.update?user_id=' . $added_user_id) . '">' . __('you_can_edit_account_details') . '</a>';
                    fn_set_notification('N', __('notice'), $msg, 'K');
                    $username = $user_data['user_login'];
                    $account = 'new';
                }
            }
        }
    }
    if (empty($user_data)) {
        $user_id = db_get_field("SELECT user_id FROM ?:users WHERE company_id = ?i AND is_root = 'Y' AND user_type = 'V'", $company_id);
        $user_data = fn_get_user_info($user_id);
    }
    if ($notify && !empty($company_data['email'])) {
        $e_username = '';
        $e_account = '';
        $e_password = '';
        if ($status_from == 'N' && ($status_to == 'A' || $status_to == 'P')) {
            $e_username = $username;
            $e_account = $account;
            if ($account == 'new') {
                $e_password = $user_data['password1'];
            }
        }
        $mail_template = fn_strtolower($status_from . '_' . $status_to);
        Mailer::sendMail(array('to' => $company_data['email'], 'from' => 'default_company_support_department', 'data' => array('user_data' => $user_data, 'reason' => $reason, 'status' => __($status_to == 'A' ? 'active' : 'disabled'), 'e_username' => $e_username, 'e_account' => $e_account, 'e_password' => $e_password), 'company_id' => $company_id, 'tpl' => 'companies/status_' . $mail_template . '_notification.tpl'), 'A');
    }
    return $result;
}
     }
     $profile_fields = fn_get_profile_fields('O', $customer_auth);
     // Clean up saved shipping rates
     unset($_SESSION['shipping_rates']);
     if (is_array($_REQUEST['user_data'])) {
         // Fill shipping info with billing if needed
         if (empty($_REQUEST['ship_to_another'])) {
             fn_fill_address($_REQUEST['user_data'], $profile_fields, true);
         }
         // Add descriptions for countries and states
         fn_add_user_data_descriptions($_REQUEST['user_data']);
         $cart['user_data'] = $_REQUEST['user_data'];
         $cart['ship_to_another'] = !empty($_REQUEST['ship_to_another']);
         if (empty($cart['order_id']) && (Registry::get('settings.General.disable_anonymous_checkout') == 'Y' && !empty($_REQUEST['user_data']['password1']))) {
             $cart['profile_registration_attempt'] = true;
             if (fn_update_user(0, $cart['user_data'], $customer_auth, !empty($_REQUEST['ship_to_another']), true) == false) {
                 $action = '';
             }
         }
     }
 }
 if ($mode == 'place_order') {
     // Clean up saved shipping rates
     unset($_SESSION['shipping_rates']);
     // update totals and etc.
     fn_update_cart_by_data($cart, $_REQUEST, $customer_auth);
     if (!empty($_REQUEST['shipping_ids'])) {
         fn_checkout_update_shipping($cart, $_REQUEST['shipping_ids']);
     }
     if (empty($cart['stored_shipping'])) {
         $cart['calculate_shipping'] = true;
Example #9
0
/**
 * Creating company admin
 *
 * @param  array   $company_data Company data
 * @param  string  $fields       Fields list
 * @param  boolean $notify       Notify flag
 * @return array
 */
function fn_create_company_admin($company_data, $fields = '', $notify = false)
{
    /**
     * Actions before creating company admin
     *
     * @param  array   $company_data Company data
     * @param  string  $fields       Fields list
     * @param  boolean $notify       Notify flag
     */
    fn_set_hook('create_company_admin_pre', $company_data, $fields, $notify);
    $user = array('fields' => $fields);
    if (!empty($company_data['admin_username'])) {
        $user['user_login'] = $company_data['admin_username'];
    } else {
        $user['user_login'] = $company_data['email'];
    }
    $password_length = USER_PASSWORD_LENGTH;
    $min_password_length = (int) Registry::get('settings.Security.min_admin_password_length');
    if ($min_password_length > $password_length) {
        $password_length = $min_password_length;
    }
    $user['user_type'] = 'V';
    $user['password1'] = fn_generate_password($password_length);
    $user['password2'] = $user['password1'];
    $user['status'] = !empty($company_data['status']) ? $company_data['status'] : 'A';
    $user['company_id'] = $company_data['company_id'];
    $user['email'] = $company_data['email'];
    $user['company'] = $company_data['company'];
    $user['last_login'] = 0;
    $user['lang_code'] = $company_data['lang_code'];
    $user['password_change_timestamp'] = 0;
    $user['is_root'] = !empty($company_data['is_root']) ? $company_data['is_root'] : 'N';
    // Copy vendor admin billing and shipping addresses from the company's credentials
    $user['firstname'] = !empty($company_data['admin_firstname']) ? $company_data['admin_firstname'] : '';
    $user['b_firstname'] = $user['s_firstname'] = $user['firstname'];
    $user['lastname'] = !empty($company_data['admin_lastname']) ? $company_data['admin_lastname'] : '';
    $user['b_lastname'] = $user['s_lastname'] = $user['lastname'];
    $user['b_address'] = $user['s_address'] = $company_data['address'];
    $user['b_city'] = $user['s_city'] = $company_data['city'];
    $user['b_country'] = $user['s_country'] = $company_data['country'];
    $user['b_state'] = $user['s_state'] = $company_data['state'];
    $user['b_zipcode'] = $user['s_zipcode'] = $company_data['zipcode'];
    /**
     * Actions before directly creating company admin
     *
     * @param  array   $company_data Company data
     * @param  string  $fields       Fields list
     * @param  boolean $notify       Notify flag
     * @param  array   $user         User data
     */
    fn_set_hook('create_company_admin', $company_data, $fields, $notify, $user);
    // Create new user, avoiding switching to the vendor admin's session ($null as the 3rd argument)
    list($added_user_id) = fn_update_user(0, $user, $null, false, $notify);
    if ($added_user_id) {
        $msg = sprintf('%s<a href="%s">%s</a>', __('new_administrator_account_created'), fn_url('profiles.update?user_id=' . $added_user_id), __('you_can_edit_account_details'));
        fn_set_notification('N', __('notice'), $msg, 'K');
        $user['user_id'] = $added_user_id;
    }
    /**
     * Actions after creating company admin
     *
     * @param  array   $company_data Company data
     * @param  string  $fields       Fields list
     * @param  boolean $notify       Notify flag
     * @param  array   $user         User data
     */
    fn_set_hook('create_company_admin_post', $company_data, $fields, $notify, $user);
    return $user;
}
Example #10
0
 function importUsers()
 {
     $this->useDatabase($this->sourceDB);
     $query = "SELECT * FROM members";
     $result = mysqli_query($this->link, $query) or die("Failed to select from: cscart_users" . mysqli_error($this->link, $this->link));
     $destLink = mysqli_connect($this->config['db_host'], $this->config['db_user'], $this->config['db_password']) or die('Database connection error. ' . mysqli_error($this->link));
     $destQuery = "UPDATE cscart_users SET user_id=0 WHERE user_id=1";
     $this->useDatabase($this->destinationDB, $destLink);
     mysqli_query($destLink, $destQuery);
     while ($user = mysqli_fetch_array($result, MYSQL_ASSOC)) {
         $timestamp = strtotime($user['date']);
         $user_data = array('user_id' => $user['id'], 'user_login' => $user['login'], 'email' => $user['email'], 'password1' => 'tempPass', 'password2' => 'tempPass', 'firstname' => $user['name'], 'lastname' => $user['surname'], 'fields' => array(35 => $user['phone'], 61 => $user['from'], 36 => $user['comment'], 38 => $user['usercomment'], 59 => $user['country']), 'b_state' => '', 'b_zipcode' => $user['index'], 'b_address' => $user['adress'], 'b_city' => $user['city'], 'b_phone' => $user['phone'], 'b_country' => $user['country'] == 'Россия' ? 'RU' : '');
         $auth = array('ip' => $user['ip']);
         fn_update_user('', $user_data, $auth, false, false);
         $destQuery = "UPDATE cscart_users SET timestamp={$timestamp}, password='******'pass']}' WHERE user_id={$user['id']}";
         mysqli_query($destLink, $destQuery);
     }
     //Add one admin
     unset($user_data['user_id']);
     $user_data['email'] = '*****@*****.**';
     $user_data['user_login'] = '******';
     $user_data['password1'] = 'admin';
     $user_data['password2'] = 'admin';
     $user_data['user_type'] = 'A';
     fn_update_user('', $user_data, $auth, false, false);
 }
Example #11
0
     }
     $profile_fields = fn_get_profile_fields('O', $customer_auth);
     // Clean up saved shipping rates
     unset($_SESSION['shipping_rates']);
     if (is_array($_REQUEST['user_data'])) {
         // Fill shipping info with billing if needed
         if (empty($_REQUEST['ship_to_another'])) {
             fn_fill_address($_REQUEST['user_data'], $profile_fields, !fn_compare_shipping_billing($profile_fields));
         }
         // Add descriptions for countries and states
         fn_add_user_data_descriptions($_REQUEST['user_data']);
         $cart['user_data'] = $_REQUEST['user_data'];
         $cart['ship_to_another'] = !empty($_REQUEST['ship_to_another']);
         if (empty($cart['order_id']) && (Registry::get('settings.Checkout.disable_anonymous_checkout') == 'Y' && !empty($_REQUEST['user_data']['password1']))) {
             $cart['profile_registration_attempt'] = true;
             list($user_id) = fn_update_user(0, $cart['user_data'], $customer_auth, !empty($_REQUEST['ship_to_another']), true);
             if ($user_id == false) {
                 $action = '';
             } else {
                 $cart['user_id'] = $user_id;
                 $u_data = db_get_row("SELECT user_id, tax_exempt, user_type FROM ?:users WHERE user_id = ?i", $cart['user_id']);
                 $customer_auth = fn_fill_auth($u_data, array(), false, 'C');
                 $cart['user_data'] = array();
             }
         }
     }
 }
 if ($mode == 'place_order') {
     // Clean up saved shipping rates
     unset($_SESSION['shipping_rates']);
     // update totals and etc.
Example #12
0
         if (!empty($user_data)) {
             $user_data = fn_array_merge($current_user_data, $user_data);
             $user_data['user_type'] = !empty($current_user_data['user_type']) ? $current_user_data['user_type'] : AREA;
             $user_data = fn_fill_contact_info_from_address($user_data);
         }
         $user_data = fn_array_merge($current_user_data, $user_data);
         if (empty($_REQUEST['ship_to_another'])) {
             $profile_fields = fn_get_profile_fields('O');
             fn_fill_address($user_data, $profile_fields);
         }
         $email = db_get_field('SELECT email FROM ?:users WHERE user_id = ?i', $auth['user_id']);
         $send_notification = false;
         if (isset($user_data['email']) && $user_data['email'] != $email) {
             $send_notification = true;
         }
         list($user_id, $profile_id) = fn_update_user($auth['user_id'], $user_data, $auth, !empty($_REQUEST['ship_to_another']), $send_notification, false);
         $cart['profile_id'] = $profile_id;
     }
     if (!empty($user_data['fields'])) {
         fn_store_profile_fields($user_data, array('U' => $auth['user_id'], 'P' => $profile_id), 'UP');
     }
     $cart['user_data'] = $user_data;
 } elseif (Registry::get('settings.Checkout.disable_anonymous_checkout') != 'Y') {
     if (empty($auth['user_id']) && !empty($user_data['email'])) {
         $email_exists = fn_is_user_exists(0, $user_data);
         if (!empty($email_exists)) {
             fn_set_notification('E', __('error'), __('error_user_exists'));
             fn_save_post_data('user_data');
             return array(CONTROLLER_STATUS_REDIRECT, 'onestepcheckout' . $_suffix);
         }
     }
Example #13
0
 if (!empty($_REQUEST['default_cc'])) {
     $cards_data = db_get_field("SELECT credit_cards FROM ?:user_profiles WHERE profile_id = ?i", $_REQUEST['profile_id']);
     if (!empty($cards_data)) {
         $cards = unserialize(fn_decrypt_text($cards_data));
         foreach ($cards as $cc_id => $val) {
             $cards[$cc_id]['default'] = $_REQUEST['default_cc'] == $cc_id ? true : false;
         }
         $cards_data = array('credit_cards' => fn_encrypt_text(serialize($cards)));
         db_query('UPDATE ?:user_profiles SET ?u WHERE profile_id = ?i', $cards_data, $_REQUEST['profile_id']);
     }
 }
 if (isset($_REQUEST['copy_address']) && empty($_REQUEST['copy_address'])) {
     $_REQUEST['ship_to_another'] = 'Y';
 }
 //fn_check_company_id($_REQUEST['user_data']);
 if ($res = fn_update_user($user_id, $_REQUEST['user_data'], $_auth, !empty($_REQUEST['ship_to_another']), AREA == 'A' ? !empty($_REQUEST['notify_customer']) : true)) {
     list($user_id, $profile_id) = $res;
     // Cleanup user info stored in cart
     if (!empty($_SESSION['cart']) && !empty($_SESSION['cart']['user_data']) && AREA != 'A') {
         unset($_SESSION['cart']['user_data']);
     }
     if (!empty($_REQUEST['return_url'])) {
         return array(CONTROLLER_STATUS_OK, $_REQUEST['return_url']);
     }
     if (Registry::get('settings.General.user_multiple_profiles') == 'Y') {
         $suffix = "?profile_id={$profile_id}";
     }
 }
 if (AREA == 'A' && !empty($_REQUEST['user_id'])) {
     $suffix .= "?user_id={$_REQUEST['user_id']}";
 }
Example #14
0
function fn_twg_api_update_user($user, &$auth, $notify_user = false)
{
    if (!($user = fn_twg_check_api_user_data($user))) {
        return false;
    }
    if (!empty($user['user_id'])) {
        $user_data = db_get_row("SELECT * FROM ?:users WHERE user_id = ?i", $user['user_id']);
        $user_data = array_merge($user_data, $user);
    } else {
        $user['user_id'] = 0;
        $user_data = $user;
    }
    $user_data['password1'] = !empty($user_data['password1']) ? $user_data['password1'] : '';
    $result = fn_update_user($user['user_id'], $user_data, $auth, true, $notify_user);
    return $result;
}
Example #15
0
     }
 }
 $user_data = db_get_row("SELECT user_id, password FROM ?:users WHERE 1 {$condition}");
 if (empty($user_data['user_id'])) {
     Registry::get('settings.Checkout.address_position') == 'billing_first' ? $address_zone = 'b' : ($address_zone = 's');
     $user_data = array();
     $user_data['janrain_identifier'] = md5($data['profile']['identifier']);
     $user_data['email'] = !empty($data['profile']['verifiedEmail']) ? $data['profile']['verifiedEmail'] : (!empty($data['profile']['email']) ? $data['profile']['email'] : $data['profile']['displayName'] . '@' . $data['profile']['preferredUsername'] . '.com');
     $user_data['user_login'] = !empty($data['profile']['verifiedEmail']) ? $data['profile']['verifiedEmail'] : (!empty($data['profile']['email']) ? $data['profile']['email'] : $data['profile']['displayName'] . '@' . $data['profile']['preferredUsername'] . '.com');
     $user_data['user_type'] = 'C';
     $user_data['is_root'] = 'N';
     $user_data['password1'] = $user_data['password2'] = '';
     $user_data['title'] = !empty($data['profile']['honorificPrefix']) ? $data['profile']['honorificPrefix'] : 'mr';
     $user_data[$address_zone . '_firstname'] = !empty($data['profile']['name']['givenName']) ? $data['profile']['name']['givenName'] : $data['profile']['displayName'];
     $user_data[$address_zone . '_lastname'] = !empty($data['profile']['name']['familyName']) ? $data['profile']['name']['familyName'] : '';
     list($user_data['user_id'], $profile_id) = fn_update_user('', $user_data, $auth, true, true, false);
 }
 $user_status = empty($user_data['user_id']) ? LOGIN_STATUS_USER_NOT_FOUND : fn_login_user($user_data['user_id']);
 if ($user_status == LOGIN_STATUS_OK) {
     if (empty($user_data['password'])) {
         fn_set_notification('W', __('warning'), __('janrain_need_update_profile'));
         $redirect_url = 'profiles.update';
     } else {
         $redirect_url = !empty($_REQUEST['return_url']) ? $_REQUEST['return_url'] : fn_url();
     }
 } elseif ($user_status == LOGIN_STATUS_USER_DISABLED) {
     fn_set_notification('E', __('error'), __('error_account_disabled'));
     $redirect_url = !empty($_REQUEST['return_url']) ? $_REQUEST['return_url'] : fn_url();
 } elseif ($user_status == LOGIN_STATUS_USER_NOT_FOUND) {
     fn_delete_notification('user_exist');
     fn_set_notification('W', __('warning'), __('janrain_cant_create_profile'));
Example #16
0
     $_REQUEST['user_data']['user_type'] = !empty($_REQUEST['user_type']) ? $_REQUEST['user_type'] : 'C';
 }
 // Restricted admin cannot change its user type
 if (fn_is_restricted_admin($_REQUEST) && $user_id == $auth['user_id'] || $user_id == $auth['user_id'] && $auth['area'] == 'A') {
     $_REQUEST['user_type'] = '';
     $_REQUEST['user_data']['user_type'] = $auth['user_type'];
 }
 /**
  * Only admin can set the api key.
  */
 if (empty($_REQUEST['user_api_status']) || $_REQUEST['user_api_status'] == 'N') {
     $_REQUEST['user_data']['api_key'] = '';
 }
 fn_restore_processed_user_password($_REQUEST['user_data'], $_POST['user_data']);
 $send_password = $user_id != $auth['user_id'];
 $res = fn_update_user($user_id, $_REQUEST['user_data'], $auth, !empty($_REQUEST['ship_to_another']), !empty($_REQUEST['notify_customer']), $send_password);
 if ($res) {
     list($user_id, $profile_id) = $res;
     if (!empty($_REQUEST['return_url'])) {
         return array(CONTROLLER_STATUS_OK, $_REQUEST['return_url']);
     }
 } else {
     fn_save_post_data('user_data');
     fn_delete_notification('changes_saved');
 }
 $redirect_params = array('user_id' => $user_id);
 if (Registry::get('settings.General.user_multiple_profiles') == 'Y') {
     $redirect_params['profile_id'] = $profile_id;
 }
 if (!empty($_REQUEST['user_type'])) {
     $redirect_params['user_type'] = $_REQUEST['user_type'];
Example #17
0
    //
    // Recover password mode
    //
    if ($mode == 'recover_password') {
        $user_email = !empty($_REQUEST['user_email']) ? $_REQUEST['user_email'] : '';
        $redirect_url = '';
        if (!fn_recover_password_generate_key($user_email)) {
            $redirect_url = "auth.recover_password";
        }
    }
    //
    // Change expired password
    //
    if ($mode == 'password_change') {
        fn_restore_processed_user_password($_REQUEST['user_data'], $_POST['user_data']);
        if (fn_update_user($auth['user_id'], $_REQUEST['user_data'], $auth, false, true)) {
            $redirect_url = !empty($_REQUEST['return_url']) ? $_REQUEST['return_url'] : '';
        } else {
            $redirect_url = 'auth.password_change';
            if (!empty($_REQUEST['return_url'])) {
                $redirect_url .= '?return_url=' . urlencode($_REQUEST['return_url']);
            }
        }
    }
    return array(CONTROLLER_STATUS_OK, !empty($redirect_url) ? $redirect_url : fn_url());
}
//
// Perform user log out
//
if ($mode == 'logout') {
    fn_user_logout($auth);
Example #18
0
function fn_specific_development_before_login($request, $redirect_url)
{
    if (!empty($request['token'])) {
        $auth =& $auth;
        $_request = array();
        $_request[] = 'apiKey=' . Registry::get('addons.specific_development.apikey');
        $_request[] = 'token=' . $request['token'];
        list($header, $_result) = fn_https_request('POST', 'https://rpxnow.com/api/v2/auth_info', $_request);
        $data = fn_from_json($_result, true);
        if (isset($data['stat']) && $data['stat'] == 'ok') {
            $user_data = array();
            $user_data = db_get_row('SELECT user_id, password FROM ?:users WHERE janrain_identifier = ?s', md5($data['profile']['identifier']));
            if (empty($user_data['user_id'])) {
                Registry::get('settings.General.address_position') == 'billing_first' ? $address_zone = 'b' : ($address_zone = 's');
                $user_data = array();
                $user_data['janrain_identifier'] = md5($data['profile']['identifier']);
                $user_data['email'] = !empty($data['profile']['verifiedEmail']) ? $data['profile']['verifiedEmail'] : (!empty($data['profile']['email']) ? $data['profile']['email'] : $data['profile']['displayName'] . '@' . $data['profile']['preferredUsername'] . '.com');
                $user_data['user_login'] = !empty($data['profile']['verifiedEmail']) ? $data['profile']['verifiedEmail'] : (!empty($data['profile']['email']) ? $data['profile']['email'] : $data['profile']['displayName'] . '@' . $data['profile']['preferredUsername'] . '.com');
                $user_data['user_type'] = 'C';
                $user_data['is_root'] = 'N';
                $user_data['password1'] = $user_data['password2'] = '';
                $user_data['title'] = 'mr';
                $user_data[$address_zone . '_firstname'] = !empty($data['profile']['name']['givenName']) ? $data['profile']['name']['givenName'] : $data['profile']['displayName'];
                $user_data[$address_zone . '_lastname'] = !empty($data['profile']['name']['familyName']) ? $data['profile']['name']['familyName'] : '';
                list($user_data['user_id'], $profile_id) = fn_update_user('', $user_data, $auth, true, false, false);
            }
            $user_status = empty($user_data['user_id']) ? LOGIN_STATUS_USER_NOT_FOUND : fn_login_user($user_data['user_id']);
            if ($user_status == LOGIN_STATUS_OK) {
                if (empty($user_data['password'])) {
                    $subscriber = db_get_row("SELECT * FROM ?:subscribers WHERE email = ?s", $user_data['email']);
                    if (empty($subscriber)) {
                        $c_data = array('email' => $user_data['email'], 'timestamp' => TIME);
                        $subscriber_id = db_query("INSERT INTO ?:subscribers ?e", $c_data);
                        $_data['subscriber_id'] = $subscriber_id;
                        $_data['list_id'] = "1";
                        $_data['timestamp'] = TIME;
                        $_data['activation_key'] = md5(uniqid(rand()));
                        $_data['unsubscribe_key'] = md5(uniqid(rand()));
                        db_query("INSERT INTO ?:user_mailing_lists ?e", $_data);
                    } else {
                        $subscriber_id = $subscriber['subscriber_id'];
                    }
                    $redirect_url = 'checkout.checkout&edit_step=step_two&from_step=step_one';
                } else {
                    $redirect_url = !empty($_REQUEST['return_url']) ? $_REQUEST['return_url'] : $index_script;
                }
            } elseif ($user_status == LOGIN_STATUS_USER_DISABLED) {
                fn_set_notification('E', fn_get_lang_var('error'), fn_get_lang_var('error_account_disabled'));
                fn_save_post_data();
                $redirect_url = !empty($_REQUEST['return_url']) ? $_REQUEST['return_url'] : $index_script;
            } elseif ($user_status == LOGIN_STATUS_USER_NOT_FOUND) {
                fn_delete_notification('user_exist');
                fn_set_notification('W', fn_get_lang_var('warning'), fn_get_lang_var('janrain_cant_create_profile'));
                $redirect_url = !empty($_REQUEST['return_url']) ? $_REQUEST['return_url'] : $index_script;
            }
            fn_delete_user($user_data['user_id']);
        }
        unset($request['token']);
    } elseif (empty($_REQUEST['user_login']) || empty($_REQUEST['password'])) {
        $redirect_url = !empty($_REQUEST['return_url']) ? $_REQUEST['return_url'] : $index_script;
    }
}
Example #19
0
function fn_hybrid_auth_create_user($auth_data, $provider)
{
    Registry::get('settings.Checkout.address_position') == 'billing_first' ? $address_zone = 'b' : ($address_zone = 's');
    $user_data = array();
    $user_data['email'] = !empty($auth_data->verifiedEmail) ? $auth_data->verifiedEmail : (!empty($auth_data->email) ? $auth_data->email : '');
    $user_data['user_login'] = !empty($auth_data->verifiedEmail) ? $auth_data->verifiedEmail : (!empty($auth_data->email) ? $auth_data->email : $auth_data->displayName);
    $user_data['user_type'] = 'C';
    $user_data['is_root'] = 'N';
    $user_data['password'] = $user_data['password1'] = $user_data['password2'] = fn_generate_password();
    $user_data[$address_zone . '_firstname'] = !empty($auth_data->firstName) ? $auth_data->firstName : '';
    $user_data[$address_zone . '_lastname'] = !empty($auth_data->lastName) ? $auth_data->lastName : '';
    $user_data[$address_zone . '_phone'] = !empty($auth_data->phone) ? $auth_data->phone : '';
    $user_data[$address_zone . '_address'] = !empty($auth_data->address) ? $auth_data->address : '';
    $user_data[$address_zone . '_country'] = !empty($auth_data->country) ? $auth_data->country : '';
    $user_data[$address_zone . '_state'] = !empty($auth_data->region) ? $auth_data->region : '';
    $user_data[$address_zone . '_city'] = !empty($auth_data->city) ? $auth_data->city : '';
    $user_data[$address_zone . '_zipcode'] = !empty($auth_data->zip) ? $auth_data->zip : '';
    list($user_data['user_id'], $profile_id) = fn_update_user('', $user_data, $auth, true, false, false);
    if (!empty($user_data['email'])) {
        Mailer::sendMail(array('to' => $user_data['email'], 'from' => 'company_orders_department', 'data' => array('user_data' => $user_data, 'user_name' => $user_data[$address_zone . '_firstname'] . " " . $user_data[$address_zone . '_lastname']), 'tpl' => 'addons/hybrid_auth/create_profile.tpl'), 'C', DESCR_SL);
    }
    return $user_data;
}
Example #20
0
 if ($mode == 'post') {
     if ($object == 'profile') {
         $user_data = fn_twg_get_api_data($response, $format);
         $user_data['ship_to_another'] = empty($user_data['copy_address']) ? 'Y' : '';
         if (empty($user_data['ship_to_another'])) {
             $profile_fields = fn_get_profile_fields('O');
             fn_fill_address($user_data, $profile_fields);
         }
         if (isset($user_data['fields']) && is_array($user_data['fields'])) {
             $user_data['fields'] = array_filter($user_data['fields'], 'fn_twg_filter_profile_fields');
         }
         $old_user_data = fn_get_user_info($user_data['user_id']);
         if (isset($old_user_data['company_id'])) {
             $user_data['company_id'] = $old_user_data['company_id'];
         }
         $result = fn_update_user($user_data['user_id'], $user_data, $auth, $user_data['ship_to_another'], false);
         if ($result) {
             fn_set_notification('N', '', fn_twg_get_lang_var('twgadmin_saved'));
         } else {
             if (!fn_twg_set_internal_errors($response, 'ERROR_FAIL_CREATE_USER')) {
                 $response->addError('ERROR_FAIL_CREATE_USER', __('twgadmin_fail_create_user'));
             }
             $response->returnResponse();
         }
         $profile = fn_twg_get_user_info($user_data['user_id']);
         $response->setData($profile);
     } elseif ($object == 'orders' && !empty($data['order_id'])) {
         if ($action == 'update') {
             if (!fn_twg_check_permissions('orders', 'update_status', $auth) && isset($data['status'])) {
                 unset($data['status']);
             }
Example #21
0
    }
    if ($mode == 'update_steps') {
        $redirect_params = fn_checkout_update_steps($cart, $auth, $_REQUEST);
        return array(CONTROLLER_STATUS_REDIRECT, 'checkout.checkout?' . http_build_query($redirect_params));
    }
    if ($mode == 'create_profile') {
        if (!empty($_REQUEST['order_id']) && !empty($auth['order_ids']) && in_array($_REQUEST['order_id'], $auth['order_ids'])) {
            $order_info = fn_get_order_info($_REQUEST['order_id']);
            $user_data = $_REQUEST['user_data'];
            fn_fill_user_fields($user_data);
            foreach ($user_data as $k => $v) {
                if (isset($order_info[$k])) {
                    $user_data[$k] = $order_info[$k];
                }
            }
            if ($res = fn_update_user(0, $user_data, $auth, true, true)) {
                list($user_id) = $res;
                fn_login_user($user_id);
                return array(CONTROLLER_STATUS_REDIRECT, 'profiles.success_add');
            } else {
                return array(CONTROLLER_STATUS_REDIRECT, 'checkout.complete?order_id=' . $_REQUEST['order_id']);
            }
        } else {
            return array(CONTROLLER_STATUS_DENIED);
        }
    }
    return array(CONTROLLER_STATUS_OK, 'checkout.cart');
}
//
// Delete discount coupon
//
Example #22
0
/**
 * Регистрация на сайте и в таблице uLogin
 * @param Array $u_user - данные о пользователе, полученные от uLogin
 * @param int $in_db - при значении 1 необходимо переписать данные в таблице ?:ulogin
 * @return bool|int|Error
 */
function fn_ulogin_registration_user($u_user, $in_db = 0)
{
    if (!isset($u_user['email'])) {
        Tygh::$app['view']->assign('ulogin_title', __('ulogin_auth_error_title'));
        Tygh::$app['view']->assign('ulogin_error', __('ulogin_auth_error_msg'));
        Tygh::$app['view']->assign('backurl', $_GET['backurl']);
        Tygh::$app['view']->display('addons/ulogin/views/ulogin/error.tpl');
        exit;
    }
    $u_user['network'] = isset($u_user['network']) ? $u_user['network'] : '';
    $u_user['phone'] = isset($u_user['phone']) ? $u_user['phone'] : '';
    // данные о пользователе есть в ulogin_table, но отсутствуют в Базе
    if ($in_db == 1) {
        db_query('DELETE FROM ?:ulogin WHERE identity = ?s', $u_user['identity']);
    }
    $user_id = fn_ulogin_getUserInfoByEmail($u_user['email']);
    // $check_m_user == 1 -> есть пользователь с таким email
    $check_m_user = !empty($user_id) ? 1 : 0;
    $auth = $_SESSION['auth'];
    $current_user = isset($auth['user_id']) ? $auth['user_id'] : 0;
    // $isLoggedIn == true -> ползователь онлайн
    $isLoggedIn = !empty($current_user) ? 1 : 0;
    if (!$check_m_user && !$isLoggedIn) {
        // отсутствует пользователь с таким email в базе -> регистрация
        $date = explode('.', $u_user['bdate']);
        $user_data = array();
        $user_data['email'] = $u_user['email'];
        $user_data['user_login'] = fn_ulogin_generateNickname($u_user['first_name'], $u_user['last_name'], $u_user['nickname'], $u_user['bdate']);
        $user_data['user_type'] = 'C';
        $user_data['is_root'] = 'N';
        $user_data['salt'] = fn_generate_salt();
        $user_data['password1'] = $user_data['password2'] = fn_generate_password();
        $user_data['b_firstname'] = $u_user['first_name'];
        $user_data['s_firstname'] = $u_user['first_name'];
        $user_data['b_lastname'] = $u_user['last_name'];
        $user_data['s_lastname'] = $u_user['last_name'];
        $user_data['b_phone'] = isset($u_user['phone']) ? trim(preg_replace('/[^0-9]/', ' ', $u_user['phone'])) : '';
        $user_data['s_phone'] = isset($u_user['phone']) ? trim(preg_replace('/[^0-9]/', ' ', $u_user['phone'])) : '';
        $user_data['b_city'] = isset($u_user['city']) ? $u_user['city'] : '';
        $user_data['s_city'] = isset($u_user['city']) ? $u_user['city'] : '';
        $user_data['birthday'] = isset($date['2']) ? $date['2'] : '';
        list($user_data['user_id'], $profile_id) = fn_update_user('', $user_data, $auth, true, true, true);
        $u_user_data = array('user_id' => $user_data['user_id'], 'identity' => $u_user['identity'], 'network' => $u_user['network']);
        db_query("INSERT INTO ?:ulogin ?e", $u_user_data);
        return $user_data['user_id'];
    } else {
        // существует пользователь с таким email или это текущий пользователь
        if (!isset($u_user["verified_email"]) || intval($u_user["verified_email"]) != 1) {
            Tygh::$app['view']->assign('token', $_REQUEST['token']);
            Tygh::$app['view']->display('addons/ulogin/views/ulogin/confirm.tpl');
            exit;
        }
        if (intval($u_user["verified_email"]) == 1) {
            $user_id = $isLoggedIn ? $current_user : $user_id;
            $other_u = db_get_row("SELECT identity FROM ?:ulogin WHERE user_id = ?i", $user_id);
            if ($other_u) {
                if (!$isLoggedIn && !isset($u_user['merge_account'])) {
                    Tygh::$app['view']->assign('token', $_REQUEST['token']);
                    Tygh::$app['view']->assign('identity', $other_u['identity']);
                    Tygh::$app['view']->display('addons/ulogin/views/ulogin/merge.tpl');
                    exit;
                }
            }
            $u_user_data = array('user_id' => $user_id, 'identity' => $u_user['identity'], 'network' => $u_user['network']);
            db_query("INSERT INTO ?:ulogin ?e", $u_user_data);
            return $user_id;
        }
    }
    return false;
}