} elseif ('blocked' != $role && array_key_exists('blocked', $user->capabilities)) { bb_fix_password($user->ID); } } foreach ($profile_admin_keys as $key => $label) { if (${$key} != '' || isset($user->{$key})) { bb_update_usermeta($user->ID, $key, ${$key}); } } foreach ($assignable_caps as $cap => $label) { if (!($already = array_key_exists($cap, $user->capabilities)) && ${$cap}) { $user_obj->add_cap($cap); } elseif (!${$cap} && $already) { $user_obj->remove_cap($cap); } } } if (bb_current_user_can('change_user_password', $user->ID) && !empty($_POST['pass1'])) { $_POST['pass1'] = addslashes($_POST['pass1']); bb_update_user_password($user->ID, $_POST['pass1']); if (bb_get_current_user_info('ID') == $user->ID) { bb_clear_auth_cookie(); bb_set_auth_cookie($user->ID); } } do_action('profile_edited', $user->ID); nxt_redirect(add_query_arg('updated', 'true', get_user_profile_link($user->ID))); exit; } } bb_load_template('profile-edit.php', array('profile_info_keys', 'profile_admin_keys', 'assignable_caps', 'user_email', 'bb_roles', 'errors', 'self'));
function nxt_set_auth_cookie($user_id, $remember = false, $secure = '') { bb_log_deprecated('function', __FUNCTION__, 'bb_set_auth_cookie'); bb_set_auth_cookie($user_id, $remember, $secure); }
function bb_login($login, $password, $remember = false) { $user = bb_check_login($login, $password); if ($user && !is_wp_error($user)) { bb_set_auth_cookie($user->ID, $remember); do_action('bb_user_login', (int) $user->ID); } return $user; }
function bb_li_connect() { global $wp_users_object, $li_attr; //li authorization if (!$_SESSION['oauth']['linkedin']['authorized'] === TRUE) { try_li_connect(); } $me = get_li_profile(); if (!$me) { bb_die("Linkedin Connect failed"); exit; } $li_id = trim($me->{$li_attr}['id']); //bb_die($li_id); if (!$li_id) { bb_die("LinkedIn Connect failed, no user id found."); exit; } // Check if the user has already connected before $user_id = li_get_userid_by_linkedin_id($li_id); if (!$user_id) { // User did not exist yet, lets create the local account // First order of business is to find a unused usable account name for ($i = 1;; $i++) { $user_login = strtolower(sanitize_user(li_get_user_displayname($me), true)); $user_login = str_replace(' ', '_', $user_login); $user_login = str_replace('__', '_', $user_login); if (strlen($user_login) < 2) { $user_login = "******"; } if (strlen($user_login) > 50 - strlen($i)) { $user_login = substr($user_login, 0, 50 - strlen($i)); } if ($i > 1) { $user_login .= $i; } // A very rare potential race condition exists here, if two users with the same name // happen to register at the same time. One of them would fail, and have to retry. if (bb_get_user($user_login, array('by' => 'login')) === false) { break; } } $user_nicename = $user_login; $user_email = $user_login . "@none.local"; $user_url = trim($me->{$li_attr}['public-profile-url']); $user_url = $user_url ? bb_fix_link($user_url) : ''; $user_status = 0; $user_pass = bb_generate_password(); // User may have given permission to use his/her real email. Lets use it if so. /*if (isset($me['email']) && $me['email'] != '' && is_email($me['email'])) { $user_email = trim($me['email']); if (bb_get_user($user_email, array ('by' => 'email')) !== false) { // Uh oh. A user with this email already exists. This does not work out for us. bb_die("Error: an user account with the email address '$user_email' already exists."); } }*/ $user = $wp_users_object->new_user(compact('user_login', 'user_email', 'user_url', 'user_nicename', 'user_status', 'user_pass')); if (!$user || is_wp_error($user)) { bb_die("Creating new user failed"); exit; } $user_id = $user['ID']; //bb_die($user_id); bb_update_usermeta($user_id, $bbdb->prefix . 'capabilities', array('member' => true)); bb_update_usermeta($user_id, 'linkedin_id', $li_id); bb_update_usermeta($user_id, 'prompt_email', '1'); // will prompt user for email until set false. 1=true 0=false bb_update_usermeta($user_id, 'li_avatar', trim($me->{$li_attr}['picture-url'])); // user avatar bb_update_user($user_id, $user_email, $user_url, li_get_user_displayname($me)); bb_update_usermeta($user_id, 'first_name', trim($me->{$li_attr}['first-name'])); bb_update_usermeta($user_id, 'last_name', trim($me->{$li_attr}['last-name'])); bb_update_usermeta($user_id, 'occ', trim($me->{$li_attr}['headline'])); bb_update_usermeta($user_id, 'interest', trim($me->{$li_attr}['industry'])); do_action('bb_new_user', $user_id, $user_pass); do_action('register_user', $user_id); } else { bb_update_usermeta($user_id, 'prompt_email', '1'); bb_update_usermeta($user_id, 'li_avatar', trim($me->{$li_attr}['picture-url'])); if (!bb_get_option('li_allow_useredit')) { // enforce first name, last name and display name if the users are not allowed to change them bb_update_user($user_id, bb_get_user_email($user_id), get_user_link($user_id), li_get_user_displayname($me)); bb_update_usermeta($user_id, 'first_name', trim($me->{$li_attr}['first-name'])); bb_update_usermeta($user_id, 'last_name', trim($me->{$li_attr}['last-name'])); bb_update_usermeta($user_id, 'occ', trim($me->{$li_attr}['headline'])); bb_update_usermeta($user_id, 'interest', trim($me->{$li_attr}['industry'])); } } bb_set_auth_cookie($user_id, true); do_action('bb_user_login', $user_id); $redirect_url = $_REQUEST['li_bb_connect']; if (strpos($redirect_url, bb_get_option('uri')) !== 0) { $redirect_url = bb_get_option('uri'); } bb_safe_redirect($redirect_url); exit; }