Show
Ignore:
Timestamp:
07/26/09 12:25:29 (3 years ago)
Author:
networkfusion
Message:

* Addded New Geocoders Yahoo and Google.
* Geocoder now defaults to google if no country specific
Geocoder is found (in future, this will be made selectable by network)
* Fixed Postcode search on Find Hotspot Map #436
* Added search for user by email closes #417
* Added validation to networkID to stop database errors, closes
#458

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/wifidog-auth/wifidog/classes/User.php

    r1406 r1409  
    173173 
    174174    /** Instantiate a user object 
     175     * @param $usernameOrEmail The username or the email address of the user 
     176     * @param &$errMsg An error message will be appended to this if the username is not empty, but the user doesn't exist. 
     177     * @return a User object, or null if there was an error 
     178     */ 
     179    public static function getUserByUsernameOrEmail($usernameOrEmail, &$errMsg = null) { 
     180        $db = AbstractDb::getObject(); 
     181        $object = null; 
     182 
     183        $usernameOrEmail_str = $db->escapeString($usernameOrEmail); 
     184        $db->execSqlUniqueRes("SELECT user_id FROM users WHERE username ILike '$usernameOrEmail_str' OR email ILike '$usernameOrEmail_str'", $user_info, false); 
     185 
     186        if ($user_info != null) { 
     187            $object = self::getObject($user_info['user_id']); 
     188        } 
     189        else if (!empty($usernameOrEmail)) { 
     190            $errMsg .= sprintf(_("There is no user with username or email %s"),$usernameOrEmail); 
     191        } 
     192        return $object; 
     193    } 
     194  
     195 
     196   /** Instantiate a user object 
    175197     * @param $url The OpenId url 
    176198     * @return a User object, or null if none matched 
     
    813835            $userSelector .= InterfaceElements :: generateInputSubmit($add_button_name, $add_button_value); 
    814836        } else { 
    815             $userSelector = _("Username") . ": " . InterfaceElements :: generateInputText("select_user_" . $user_prefix . "_username"); 
    816         } 
    817         $html = "<div class='user_select_user_ui_container'>".$networkSelector . $userSelector . "</div>\n"; 
     837            $userSelector = _("Search for Username or Email Address") . ": " . InterfaceElements :: generateInputText("select_user_" . $user_prefix . "_username"); 
     838        } 
     839        $html = "<div class='user_select_user_ui_container'>".$networkSelector . "<br>" . $userSelector . "</div>\n"; 
    818840        return $html; 
    819841    } 
     
    831853            if (!empty ($_REQUEST[$name])) { 
    832854                $username = $_REQUEST[$name]; 
    833                 return self :: getUserByUsernameAndOrigin($username, $network, $errMsg); 
     855                return self :: getUserByUsernameOrEmail($username, $errMsg); 
    834856            } else 
    835857            return null; 
     
    865887            $name = "user_" . $this->getId() . "_username"; 
    866888            $content = "<input type='text' name='$name' value='" . htmlentities($this->getUsername()) . "' size=30><br/>\n"; 
    867             $content .= _("Be carefull when changing this: it's the username you use to log in!"); 
     889            $content .= _("Be careful when changing this: it's the username you use to log in!"); 
    868890            $userPreferencesItems[] = InterfaceElements::genSectionItem($content, $title); 
     891 
     892 
     893            /* Email */ 
     894            $title = _("Email"); 
     895            $name = "email_" . $this->getId() . "_email"; 
     896            $content = "<input type='text' name='$name' disabled='disabled' value='" . htmlentities($this->getEmail()) . "' size=30><br/>\n"; 
     897            $content .= _("If you wish to change this address, please Email Support!"); 
     898            $userPreferencesItems[] = InterfaceElements::genSectionItem($content, $title); 
     899 
     900 
    869901 
    870902            /* Change password */