X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fpluser.php;h=a87b5acba0139e035079660508000254daeec42f;hb=e1746810b6aeaba3332ff99acdbf7ff3c2e9ada6;hp=86cdf2623fc808e28aa3e86e0398498425c05bbc;hpb=8829b862b5537fcfd85954f5e52d21ea749c0b72;p=platal.git diff --git a/classes/pluser.php b/classes/pluser.php index 86cdf26..a87b5ac 100644 --- a/classes/pluser.php +++ b/classes/pluser.php @@ -1,6 +1,6 @@ !"), while full name is the official full name. protected $display_name = null; protected $full_name = null; - protected $promo = null; // Other important parameters used when sending emails. protected $gender = null; // Acceptable values are GENDER_MALE and GENDER_FEMALE @@ -149,10 +151,7 @@ abstract class PlUser return $this->full_name; } - public function promo() - { - return $this->promo; - } + abstract public function password(); // Fallback value is GENDER_MALE. public function isFemale() @@ -177,7 +176,7 @@ abstract class PlUser public function __get($name) { - if (isset($this->$name)) { + if (property_exists($this, $name)) { return $this->$name; } @@ -190,7 +189,7 @@ abstract class PlUser public function __isset($name) { - return isset($this->$name) || isset($this->data[$name]); + return property_exists($this, $name) || isset($this->data[$name]); } /** @@ -213,6 +212,21 @@ abstract class PlUser $this->data = array_merge($this->data, $values); } + /** + * Adds properties to the object; this method does not allow the caller to + * update core properties (id, ...). + * + * @param $values An associative array of non-core properties. + */ + public function addProperties(array $values) + { + foreach ($values as $key => $value) { + if (!property_exists($this, $key)) { + $this->data[$key] = $value; + } + } + } + /** * Build the permissions flags for the user. @@ -256,6 +270,11 @@ abstract class PlUser } } + public static function getWithUID($uid, $callback = false) + { + return User::getWithValues(null, array('user_id' => $uid), $callback); + } + // Same as above, but using the silent callback as default. public static function getSilent($login) { @@ -267,6 +286,11 @@ abstract class PlUser return User::getWithValues($login, $values, array('User', '_silent_user_callback')); } + public static function getSilentWithUID($uid) + { + return User::getWithValues(null, array('user_id' => $uid), array('User', '_silent_user_callback')); + } + /** * Retrieves User objects corresponding to the @p logins, and eventually * extracts and returns the @p property. If @p strict mode is disabled, it @@ -300,7 +324,7 @@ abstract class PlUser if (($user = User::get($login, $callback))) { $list[$i] = $user->$property(); - } else if (!$strict || User::isForeignEmailAddress($login)) { + } else if (!$strict || (User::isForeignEmailAddress($login) && isvalid_email($login))) { $list[$i] = $login; } }