<?php
/***************************************************************************
- * Copyright (C) 2003-2009 Polytechnique.org *
+ * Copyright (C) 2003-2011 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
function post_queue_u_create($job) {
global $globals;
- // Retrieves the user parameters (GoogleApps username and user_id).
+ // Retrieves the user parameters (GoogleApps username and uid).
$parameters = json_decode($job['j_parameters'], true);
$username = isset($parameters['username']) ? $parameters['username'] : null;
if (!($user = User::getSilent($username))) {
}
// Sends the 'account created' email to the user, with basic documentation.
- $res = XDB::query(
- "SELECT FIND_IN_SET('femme', u.flags), prenom
- FROM auth_user_md5 AS u
- WHERE u.user_id = {?}", $user->id());
- list($sexe, $prenom) = $res->fetchOneRow();
-
$mailer = new PlMailer('googleapps/create.mail.tpl');
$mailer->assign('account', $account);
$mailer->assign('email', $user->bestEmail());
$mailer->assign('googleapps_domain', $globals->mailstorage->googleapps_domain);
- $mailer->assign('prenom', $prenom);
- $mailer->assign('sexe', $sexe);
+ $mailer->assign('prenom', $user->displayName());
+ $mailer->assign('sexe', $user->isFemale());
$mailer->send();
}
}
// Sends an email to the account owner.
- $res = XDB::query(
- "SELECT FIND_IN_SET('femme', u.flags), prenom
- FROM auth_user_md5 AS u
- WHERE u.user_id = {?}", $user->id());
- list($sexe, $prenom) = $res->fetchOneRow();
-
$mailer = new PlMailer('googleapps/unsuspend.mail.tpl');
$mailer->assign('account', $account);
$mailer->assign('email', $user->bestEmail());
- $mailer->assign('prenom', $prenom);
- $mailer->assign('sexe', $sexe);
+ $mailer->assign('prenom', $user->displayName());
+ $mailer->assign('sexe', $user->isFemale());
$mailer->send();
}
}
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;
// 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()) {
// 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');
}
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) {
}
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;
if (!$this->pending_update_suspension) {
if ($this->sync_password) {
- $res = XDB::query(
- "SELECT password
- FROM auth_user_md5
- WHERE user_id = {?}", $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));
}
}
// Creates a new Google Apps account with the @p local parameters.
- public function create($password_sync, $password, $redirect_mails) {
+ public function create($password_sync, $password, $redirect_mails)
+ {
if ($this->g_status != NULL) {
return;
}
if (!$this->pending_create) {
// Retrieves information on the new account.
- $res = XDB::query(
- "SELECT nom, nom_usage, prenom
- FROM auth_user_md5
- WHERE user_id = {?}", $this->user->id());
- list($nom, $nom_usage, $prenom) = $res->fetchOneRow();
+ if (!$this->user->hasProfile()) {
+ $prenom = $this->user->displayName();
+ $nom = $this->user->fullName();
+ } else {
+ $prenom = $this->user->profile()->firstName();
+ $nom = $this->user->profile()->lastName();
+ }
// Adds an 'unprovisioned' entry in the gapps_accounts table.
XDB::execute(
$password_sync,
$redirect_mails,
$this->g_account_name,
- $prenom,
- ($nom_usage ? $nom_usage : $nom));
+ $prenom, $nom);
// Adds the creation job in the GApps queue.
$this->create_queue_job(
array(
'username' => $this->g_account_name,
'first_name' => $prenom,
- 'last_name' => ($nom_usage ? $nom_usage : $nom),
+ 'last_name' => $nom,
'password' => $password,
));