From: Vincent Zanotti Date: Sun, 10 Aug 2008 22:40:15 +0000 (+0200) Subject: Updates PlUser to add a new (code-factored) bulk retrieval method. X-Git-Tag: core/1.0.0~41 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=40d6b19a2d6233fb1549cfb11693eaba33dd05aa;p=platal.git Updates PlUser to add a new (code-factored) bulk retrieval method. Signed-off-by: Vincent Zanotti --- diff --git a/classes/pluser.php b/classes/pluser.php index 1d639b2..1dd2873 100644 --- a/classes/pluser.php +++ b/classes/pluser.php @@ -239,18 +239,20 @@ abstract class PlUser } /** - * Returns forlife emails corresponding to the @p logins. If @p strict mode - * is disabled, it also includes login for which no forlife was found (but - * still call the callback for them). + * Retrieves User objects corresponding to the @p logins, and eventually + * extracts and returns the @p property. If @p strict mode is disabled, it + * also includes logins for which no forlife was found (but it still calls + * the callback for them). * In all cases, email addresses which are not from the local domains are * kept. * * @param $logins Array of user logins. + * @param $property Property to retrieve from the User objects. * @param $strict Should unvalidated logins be returned as-is or discarded ? * @param $callback Callback to call when a login is unknown to the system. * @return Array of validated user forlife emails. */ - public static function getBulkForlifeEmails($logins, $strict = true, $callback = false) + private static function getBulkUserProperties($logins, $property, $strict, $callback) { if (!is_array($logins)) { if (strlen(trim($logins)) == 0) { @@ -268,7 +270,7 @@ abstract class PlUser } if (($user = User::get($login, $callback))) { - $list[$i] = $user->forlifeEmail(); + $list[$i] = $user->$property(); } else if (!$strict || User::isForeignEmailAddress($login)) { $list[$i] = $login; } @@ -279,6 +281,24 @@ abstract class PlUser } /** + * Returns hruid corresponding to the @p logins. See getBulkUserProperties() + * for details. + */ + public static function getBulkHruid($logins, $callback = false) + { + return self::getBulkUserProperties($logins, 'login', true, $callback); + } + + /** + * Returns forlife emails corresponding to the @p logins. See + * getBulkUserProperties() for details. + */ + public static function getBulkForlifeEmails($logins, $strict = true, $callback = false) + { + return self::getBulkUserProperties($logins, 'forlifeEmail', $strict, $callback); + } + + /** * Predefined callbacks for the user lookup; they are called when a given * login is found not to be associated with any valid user. Silent callback * does nothing; default callback is supposed to display an error message,