<?php
/***************************************************************************
- * Copyright (C) 2003-2008 Polytechnique.org *
+ * Copyright (C) 2003-2009 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
* By convention, null means the information hasn't been fetched yet, and
* false means the information is not available.
*/
+
+ // user_id is internal user ID (potentially numeric), whereas hruid is a
+ // "human readable" unique ID
protected $user_id = null;
protected $hruid = null;
// <display name> !"), 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
return $this->full_name;
}
- public function promo()
- {
- return $this->promo;
- }
+ abstract public function password();
// Fallback value is GENDER_MALE.
public function isFemale()
public function __get($name)
{
- if (isset($this->$name)) {
+ if (property_exists($this, $name)) {
return $this->$name;
}
public function __isset($name)
{
- return isset($this->$name) || isset($this->data[$name]);
+ return property_exists($this, $name) || isset($this->data[$name]);
}
/**
$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.
}
}
+ 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)
{
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
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;
}
}