nouveau module "models" dans l'environnement
[mtweb] / mw / app / data / modules / sql / mw_data_users.php
index 66783fa..f1171da 100644 (file)
     }
 
     function user_by_id($id){
-      $sgbd = $this->sgbd();
-      $user = array();
-      try{
-        $sql = "SELECT * from #--users WHERE id=".$this->eq($id);
-        $rst = $sgbd->query($sql);
-        if($v_rst = $sgbd->fetch_assoc($rst)) $user = $v_rst;
-        $sgbd->free_result($rst);
-        if(($roles = $this->list_user_roles($user["id"])) !== false) $user["roles"] = $roles;
-        else $user = false;
-      }
-      catch(Exception $e) { $user = false; }
-      return $user;
+      $env = $this->env();
+      $user = $env->get_model("users");
+      if($user->load("id", $id) === false) return false;
+      return $user->get_values();
     }
 
     function user($login){
-      $sgbd = $this->sgbd();
-      $user = array();
-      try{
-        $sql = "SELECT * from #--users WHERE login=".$this->eq($login);
-        $rst = $sgbd->query($sql);
-        if($v_rst = $sgbd->fetch_assoc($rst)) $user = $v_rst;
-        $sgbd->free_result($rst);
-        if($user){
-          if(($roles = $this->list_user_roles($user["id"])) !== false) $user["roles"] = $roles;
-          else $user = false;
-        }
-      }
-      catch(Exception $e) { $user = false; }
-      return $user;
+      $env = $this->env();
+      $user = $env->get_model("users");
+      if($user->load("login", $login) === false) return false;
+      return $user->get_values();
     }
 
     function user_exists($login){
         .", email=".$this->eq($email)
         ." WHERE id=".$this->eq($id);
         $sgbd->query($sql);
-        $sql = "DELETE FROM #--users_roles WHERE id_user=".$this->eq($id);
-        $sgbd->query($sql);
+        if(!$this->clear_user_roles($id)) return false;
         foreach($roles as $id_role){
-          $sql =
-           "INSERT INTO #--users_roles(id_user, id_role) VALUES"
-          ."( ".$this->eq($id)
-          .", ".$this->eq($id_role)
-          .")";
-          $sgbd->query($sql);
+          if(!$this->add_user_role($id, $id_role)) return false;
         }
       }
       catch(Exception $e) { return false; }
       return true;
     }
 
+    function clear_user_roles($id_user){
+      $sgbd = $this->sgbd();
+      try{
+        $sql = "DELETE FROM #--users_roles WHERE id_user=".$this->eq($id_user);
+        $sgbd->query($sql);
+      }
+      catch(Exception $e) { return false; }
+      return true;
+    }
+
+    function add_user_role($id_user, $id_role){
+      $sgbd = $this->sgbd();
+      try{
+        $sql =
+         "INSERT INTO #--users_roles(id_user, id_role) VALUES"
+        ."( ".$this->eq($id_user)
+        .", ".$this->eq($id_role)
+        .")";
+        $sgbd->query($sql);
+      }
+      catch(Exception $e) { return false; }
+      return true;
+    }
+
     function del_user($login){
       if(($user = $this->user($login)) !== false){
         $sgbd = $this->sgbd();