Merge branch 'package'
[speedfreak] / Server / application / models / user.php
index 855ffaf..ec33435 100644 (file)
@@ -17,7 +17,7 @@ class User_Model extends Model {
         * @param string $email Valid email address
         * @return bool Returns True if operation was successfull and exception otherwise
         */
-    public function __construct($username='', $password='', $email=''){
+    public function __construct($username='', $password='', $email='', $description=''){
         
        // load database library into $this->db
         parent::__construct();
@@ -36,7 +36,7 @@ class User_Model extends Model {
             elseif ($this->user_exists($username, $email))
                 throw new Exception('User already exists (login or email matched)');
                 
-            if ($this->register($username, $password, $email)->valid())
+            if ($this->register($username, $password, $email, $description)->valid())
                 return true;
             else
                 return false;
@@ -52,14 +52,13 @@ class User_Model extends Model {
      * @param string $email Valid email address
      * @return bool Returns True if operation was successfull and exception otherwise
      */
-    private function register($username, $password, $email){
+    private function register($username, $password, $email, $description){
        // hash password
         $password = $this->hash($password);
         
         // @todo I can't seem to get query working when password binding has '' around it like others
         if ($this->user_exists($username, $email)==false)
-          return $this->db->query("INSERT into users SET username = '?', password = ?, email = '?'",
-                  $username, $password, $email);
+          return $this->db->query("INSERT into users SET username='".apiler::e($username)."', password='".apiler::e($password)."', description='".apiler::e($description)."', last_activity=NOW(), email='".apiler::e($email)."'");
         else
             return false;
     }
@@ -82,13 +81,50 @@ class User_Model extends Model {
      * @return bool Returns True if user exists and false otherwise
      */
     private function user_exists($username, $email){
-       if ($this->db->query("SELECT id FROM users WHERE username = '?' OR email = '?'",
-                          $username, $email)->count()>0)
+       if ($this->db->query("SELECT id FROM users WHERE username='".apiler::e($username)."' OR email='".apiler::e($email)."'")->count()>0)
               return true;
            else
               return false;          
     }
     
+    
+    public function get_info($username){
+       $result = $this->db->query("SELECT * FROM users WHERE username ='".apiler::e($username)."'");
+               if ($result->count()>0)
+           return $result[0];
+        else
+           return false;
+    }
+    
+    
+    /*
+     * Get user id
+     *
+     * @param string $username Username
+     * @return integer|bool User id if successful or false
+     */
+    public function get_id($username){
+        $result = $this->db->query("SELECT id FROM users WHERE username='".apiler::e($username)."'");
+               if ($result->count()>0)
+           return $result[0]->id;
+        else
+           return false;
+    }
+    
+    /**
+     * List all users found in database
+     * 
+     * @access public
+     * @return boolean|object Returns object containing all users or false
+     */
+    public function list_all_users(){
+        $result = $this->db->query("SELECT * FROM users");
+               if ($result->count()>0)
+           return $result;
+        else
+           return false;
+    }
+
     /*
      * Check if supplied credentials are valid
      * 
@@ -100,8 +136,7 @@ class User_Model extends Model {
         // hash password
         $password = $this->hash($password);
         
-        if ($this->db->query("SELECT id FROM users WHERE username = ? AND password = ?",
-                             $username, $password)->count()>0)
+        if ($this->db->query("SELECT id FROM users WHERE username='".apiler::e($username)."' AND password='".apiler::e($password)."'")->count()>0)
             return true;
         else
             return false;