Add name variants and binets in Profile
[platal.git] / classes / user.php
index d048e5a..d6555af 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2009 Polytechnique.org                              *
+ *  Copyright (C) 2003-2010 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -24,11 +24,18 @@ class User extends PlUser
     private $_profile_fetched = false;
     private $_profile = null;
 
+    // Additional fields (non core)
+    protected $promo = null;
+
     // Implementation of the login to uid method.
     protected function getLogin($login)
     {
         global $globals;
 
+        if (!$login) {
+            throw new UserNotFoundException();
+        }
+
         if ($login instanceof User) {
             $machin->id();
         }
@@ -145,7 +152,7 @@ class User extends PlUser
         $joins = '';
         $fields = array();
         if ($globals->asso('id')) {
-            $joins .= XDB::format("LEFT JOIN groupex.membres AS gpm ON (gpm.uid = a.uid AND gpm.asso_id = {?})\n", $globals->asso('id'));
+            $joins .= XDB::format("LEFT JOIN group_members AS gpm ON (gpm.uid = a.uid AND gpm.asso_id = {?})\n", $globals->asso('id'));
             $fields[] = 'gpm.perms AS group_perms';
             $fields[] = 'gpm.comm AS group_comm';
         }
@@ -464,6 +471,19 @@ class User extends PlUser
         return isset($this->contacts[$user->id()]);
     }
 
+    // Groupes X
+    private $groups = null;
+    public function groups()
+    {
+        if (is_null($this->groups)) {
+            $this->groups = XDB::fetchAllAssoc('asso_id', 'SELECT  asso_id, perms, comm
+                                                             FROM  #groupex#.membres
+                                                            WHERE  uid = {?}',
+                                                $this->id());
+        }
+        return $this->groups;
+    }
+
     // Return permission flags for a given permission level.
     public static function makePerms($perms, $is_admin)
     {
@@ -479,7 +499,7 @@ class User extends PlUser
     public static function _default_user_callback($login, $results)
     {
         $result_count = count($results);
-        if ($result_count == 0 || !S::has_perms()) {
+        if ($result_count == 0 || !S::admin()) {
             Platal::page()->trigError("Il n'y a pas d'utilisateur avec l'identifiant : $login");
         } else {
             Platal::page()->trigError("Il y a $result_count utilisateurs avec cet identifiant : " . join(', ', $results));