$user = $response_value->scalarval(); } } } else { if ($userId = $userlib->get_user_by_cookie($_COOKIE["$user_cookie_site"])) { $userInfo = $userlib->get_userid_info($userId); $user = $userInfo['login']; } } if (isset($user) && $user) { $_SESSION["$user_cookie_site"] = $user; } } // if the auth method is 'web site', look for the username in $_SERVER if (($prefs['auth_method'] == 'ws') and (isset($_SERVER['REMOTE_USER']))) { if ($userlib->user_exists($_SERVER['REMOTE_USER'])) { $user = $_SERVER['REMOTE_USER']; $_SESSION["$user_cookie_site"] = $user; } elseif ($userlib->user_exists(str_replace("\\\\", "\\", $_SERVER['REMOTE_USER']))) { // Check for the domain\username with just one backslash $user = str_replace("\\\\", "\\", $_SERVER['REMOTE_USER']); $_SESSION["$user_cookie_site"] = $user; } elseif ($userlib->user_exists(substr($_SERVER['REMOTE_USER'], strpos($_SERVER['REMOTE_USER'], "\\") + 2))) { // Check for the username without the domain name $user = substr($_SERVER['REMOTE_USER'], strpos($_SERVER['REMOTE_USER'], "\\") + 2); $_SESSION["$user_cookie_site"] = $user; } elseif ($prefs['auth_ws_create_tiki'] == 'y') { $user = $_SERVER['REMOTE_USER']; if ($userlib->add_user($_SERVER['REMOTE_USER'], '', '')) { $user = $_SERVER['REMOTE_USER']; $_SESSION["$user_cookie_site"] = $user;
/** * Show user info popup * * @param $input JitFilter (username) * @return array */ function action_info($input) { global $prefs, $user; $tikilib = TikiLib::lib('tiki'); $sociallib = TikiLib::lib('social'); $result = array('fullname' => '', 'gender' => '', 'starHtml' => '', 'country' => '', 'distance' => '', 'email' => '', 'lastSeen' => '', 'avatarHtml' => '', 'error' => '', 'shared_groups' => ''); if ($prefs['feature_community_mouseover'] == 'y' && $this->lib->get_user_preference($user, 'show_mouseover_user_info', 'y') == 'y' || $prefs['feature_friends'] == 'y') { $other_user = $input->username->email(); $result['other_user'] = $other_user; if ($this->lib->user_exists($other_user) && ($tikilib->get_user_preference($other_user, 'user_information', 'public') === 'public' || $user == $other_user || $prefs['feature_friends'] == 'y')) { $info = $this->lib->get_user_info($other_user); $result['add_friend_button'] = ''; $result['friendship'] = array(); if ($prefs['feature_friends'] === 'y' && $user) { $friendship = array(); if ($prefs['social_network_type'] === 'friend') { $friend = $this->isFriend($sociallib->listFriends($user), $other_user); if ($friend) { $friendship[] = array('type' => 'friend', 'label' => tra('Friend'), 'remove' => tra('Remove Friend')); } else { $result['add_friend_button'] = tra('Add Friend'); } } else { $follower = $this->isFriend($sociallib->listFollowers($user), $other_user); $following = $this->isFriend($sociallib->listFollowers($other_user), $user); if ($follower) { $friendship[] = array('type' => 'follower', 'label' => tra('Following you')); if ($prefs['social_network_type'] === 'follow_approval') { $friendship[count($friendship) - 1]['remove'] = tra('Remove Follower'); } } if ($following) { $friendship[] = array('type' => 'following', 'label' => tra('You are following'), 'remove' => tra('Stop Following')); } else { $result['add_friend_button'] = tra('Follow'); } } $incoming = $this->isFriend($sociallib->listIncomingRequests($user), $other_user); if ($incoming) { $friendship[] = array('type' => 'incoming', 'label' => tra('Awaiting your approval'), 'remove' => tra('Refuse Request'), 'add' => tra('Accept & Add')); if ($prefs['social_network_type'] === 'follow_approval') { $friendship[count($friendship) - 1]['approve'] = tra('Accept Request'); } $result['add_friend_button'] = ''; } $outgoing = $this->isFriend($sociallib->listOutgoingRequests($user), $other_user); if ($outgoing) { $friendship[] = array('type' => 'outgoing', 'label' => tra('Waiting for approval'), 'remove' => tra('Cancel Request')); $result['add_friend_button'] = ''; } $result['friendship'] = $friendship; if ($user === $other_user) { $result['add_friend_button'] = ''; // can't befriend yourself } } if ($prefs['feature_community_mouseover_name'] == 'y') { $result['fullname'] = $this->lib->clean_user($other_user); } else { $result['fullname'] = $other_user; } if ($prefs['feature_community_mouseover_gender'] == 'y' && $prefs['feature_community_gender'] == 'y') { $result['gender'] = $this->lib->get_user_preference($other_user, 'gender'); if ($result['gender'] == tr('Hidden')) { $result['gender'] = ''; } } if ($prefs['feature_score'] == 'y') { $info['score'] = TikiLib::lib('score')->get_user_score($other_user); if ($prefs['feature_community_mouseover_score'] == 'y' && !empty($info['score']) && $other_user !== 'admin' && $other_user !== 'system' && $other_user !== 'Anonymous') { $result['starHtml'] = $tikilib->get_star($info['score']); } else { $result['starHtml'] = ''; } } if ($prefs['feature_community_mouseover_country'] == 'y') { $result['country'] = $tikilib->get_user_preference($other_user, 'country', ''); if ($result['country'] == tr('Other')) { $result['country'] = ''; } } if ($prefs['feature_community_mouseover_distance'] == 'y') { $distance = TikiLib::lib('userprefs')->get_userdistance($other_user, $user); if ($distance) { $result['distance'] = $distance . ' ' . tra('km'); } } if ($prefs['feature_community_mouseover_email'] == 'y') { $email_isPublic = $tikilib->get_user_preference($other_user, 'email is public'); if ($email_isPublic != 'n') { $result['email'] = TikiMail::scrambleEmail($info['email'], $email_isPublic); //} elseif ($friend) { // $result['email'] = $info['email']; // should friends see each other's emails whatever the settings? I doubt it (jb) } } if ($prefs['feature_community_mouseover_lastlogin'] == 'y') { $result['lastSeen'] = $info['currentLogin'] ? $info['currentLogin'] : null; } if ($prefs['feature_community_mouseover_picture'] == 'y') { $result['avatarHtml'] = $tikilib->get_user_avatar($other_user); } if ($user !== $other_user) { // should have a new pref? $theirGroups = TikiLib::lib('user')->get_user_groups($other_user); $myGroups = TikiLib::lib('user')->get_user_groups($user); $choiceGroups = TikiLib::lib('user')->get_groups_userchoice(); $sharedGroups = array_intersect($theirGroups, $myGroups, $choiceGroups); $result['shared_groups'] = implode(', ', $sharedGroups); } } } else { $result['error'] = tra("You cannot see this user's data."); if ($user) { $result['error'] .= '<br>' . tra('You need to set "Show my information on mouseover".') . '<br>' . '<a href="tiki-user_preferences.php?cookietab=2">' . tra('Click here') . '</a>'; } else { $result['error'] .= '<br>' . tra('You need to log in.'); } } return $result; }