X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fgoogleapps.inc.php;h=68bf04d0482e02c3a1969a2e407da783040d4b85;hb=85ddf64feaef343f5eb818bff53fc3c718428c59;hp=d107e5ecb4fa7b896c51a5037a747a23406aa8c3;hpb=89cb2025f5f2aed0be3994c89ac473aa11535853;p=platal.git diff --git a/include/googleapps.inc.php b/include/googleapps.inc.php index d107e5e..68bf04d 100644 --- a/include/googleapps.inc.php +++ b/include/googleapps.inc.php @@ -1,6 +1,6 @@ activate_mail_redirection) { - require_once('emails.inc.php'); - $storage = new EmailStorage($user, 'googleapps'); - $storage->activate(); + require_once 'emails.inc.php'; + Email::activate_storage($user, 'googleapps'); } // Sends the 'account created' email to the user, with basic documentation. @@ -63,13 +62,12 @@ function post_queue_u_update($job) { } if (isset($parameters['suspended']) && $parameters['suspended'] == false) { - require_once('emails.inc.php'); + require_once 'emails.inc.php'; $account = new GoogleAppsAccount($user); if ($account->active()) { // Re-adds the email redirection (if the user did request it). if ($account->activate_mail_redirection) { - $storage = new EmailStorage($user, 'googleapps'); - $storage->activate(); + Email::activate_storage($user, 'googleapps'); } // Sends an email to the account owner. @@ -107,6 +105,9 @@ class GoogleAppsAccount public $r_last_webmail; public $reporting_date; + // Nicknames (aliases) registered for that user, lazily loaded. + public $nicknames; + // Pending requests in the gappsd job queue (cf. top note). public $pending_create; public $pending_delete; @@ -121,7 +122,7 @@ class GoogleAppsAccount // Constructs the account object, by retrieving all informations from the // GApps account table, from GApps job queue, and from plat/al validation queue. - public function __construct(User &$user) + public function __construct(User $user) { $this->user = &$user; if (!$this->user || !$this->user->login()) { @@ -190,7 +191,6 @@ class GoogleAppsAccount // validation queue. private function load_pending_validations() { - require_once('validations.inc.php'); $this->pending_validation_unsuspend = Validate::get_typed_requests_count($this->user->id(), 'gapps-unsuspend'); } @@ -260,6 +260,21 @@ class GoogleAppsAccount return $this->g_status == 'disabled'; } + // Loads and returns the list of nicknames for the user. + public function nicknames() + { + if ($this->nicknames == null) { + $res = XDB::query( + "SELECT g_nickname + FROM gapps_nicknames + WHERE g_account_name = {?} + ORDER BY g_nickname", + $this->g_account_name); + $this->nicknames = $res->fetchColumn(); + } + return $this->nicknames; + } + // Changes the GoogleApps password. public function set_password($password) { @@ -323,7 +338,6 @@ class GoogleAppsAccount } if (!$this->pending_update_suspension && !$this->pending_validation_unsuspend) { - require_once('validations.inc.php'); $unsuspend = new GoogleAppsUnsuspendReq($this->user); $unsuspend->submit(); $this->pending_validation_unsuspend = true; @@ -339,17 +353,7 @@ class GoogleAppsAccount if (!$this->pending_update_suspension) { if ($this->sync_password) { - $res = XDB::query( - "SELECT password - FROM accounts - WHERE uid = {?}", $this->user->id()); - $password = ($res->numRows() > 0 ? $res->fetchOneCell() : false); - } else { - $password = false; - } - - if ($password) { - $this->create_queue_job('u_update', array('suspended' => false, 'password' => $password)); + $this->create_queue_job('u_update', array('suspended' => false, 'password' => $this->user->password())); } else { $this->create_queue_job('u_update', array('suspended' => false)); } @@ -368,13 +372,12 @@ class GoogleAppsAccount if (!$this->pending_create) { // Retrieves information on the new account. - // TODO: retreive first_name and last_name from the profile. - if (!$user->hasProfile()) { - $prenom = $user->displayName(); - $nom = $user->fullName(); + if (!$this->user->hasProfile()) { + $prenom = $this->user->displayName(); + $nom = $this->user->fullName(); } else { - $prenom = $user->profile()->firstName(); - $nom = $user->profile()->lastName(); + $prenom = $this->user->profile()->firstName(); + $nom = $this->user->profile()->lastName(); } // Adds an 'unprovisioned' entry in the gapps_accounts table.