Add UserCake
[matches/MCTX3420.git] / testing / MCTXWeb / public_html / users / models / class.user.php
diff --git a/testing/MCTXWeb/public_html/users/models/class.user.php b/testing/MCTXWeb/public_html/users/models/class.user.php
new file mode 100644 (file)
index 0000000..6158b22
--- /dev/null
@@ -0,0 +1,119 @@
+<?php\r
+/*\r
+UserCake Version: 2.0.2\r
+http://usercake.com\r
+*/\r
+\r
+class loggedInUser {\r
+       public $email = NULL;\r
+       public $hash_pw = NULL;\r
+       public $user_id = NULL;\r
+       \r
+       //Simple function to update the last sign in of a user\r
+       public function updateLastSignIn()\r
+       {\r
+               global $mysqli,$db_table_prefix;\r
+               $time = time();\r
+               $stmt = $mysqli->prepare("UPDATE ".$db_table_prefix."users\r
+                       SET\r
+                       last_sign_in_stamp = ?\r
+                       WHERE\r
+                       id = ?");\r
+               $stmt->bind_param("ii", $time, $this->user_id);\r
+               $stmt->execute();\r
+               $stmt->close(); \r
+       }\r
+       \r
+       //Return the timestamp when the user registered\r
+       public function signupTimeStamp()\r
+       {\r
+               global $mysqli,$db_table_prefix;\r
+               \r
+               $stmt = $mysqli->prepare("SELECT sign_up_stamp\r
+                       FROM ".$db_table_prefix."users\r
+                       WHERE id = ?");\r
+               $stmt->bind_param("i", $this->user_id);\r
+               $stmt->execute();\r
+               $stmt->bind_result($timestamp);\r
+               $stmt->fetch();\r
+               $stmt->close();\r
+               return ($timestamp);\r
+       }\r
+       \r
+       //Update a users password\r
+       public function updatePassword($pass)\r
+       {\r
+               global $mysqli,$db_table_prefix;\r
+               $secure_pass = generateHash($pass);\r
+               $this->hash_pw = $secure_pass;\r
+               $stmt = $mysqli->prepare("UPDATE ".$db_table_prefix."users\r
+                       SET\r
+                       password = ? \r
+                       WHERE\r
+                       id = ?");\r
+               $stmt->bind_param("si", $secure_pass, $this->user_id);\r
+               $stmt->execute();\r
+               $stmt->close(); \r
+       }\r
+       \r
+       //Update a users email\r
+       public function updateEmail($email)\r
+       {\r
+               global $mysqli,$db_table_prefix;\r
+               $this->email = $email;\r
+               $stmt = $mysqli->prepare("UPDATE ".$db_table_prefix."users\r
+                       SET \r
+                       email = ?\r
+                       WHERE\r
+                       id = ?");\r
+               $stmt->bind_param("si", $email, $this->user_id);\r
+               $stmt->execute();\r
+               $stmt->close(); \r
+       }\r
+       \r
+       //Is a user has a permission\r
+       public function checkPermission($permission)\r
+       {\r
+               global $mysqli,$db_table_prefix,$master_account;\r
+               \r
+               //Grant access if master user\r
+               \r
+               $stmt = $mysqli->prepare("SELECT id \r
+                       FROM ".$db_table_prefix."user_permission_matches\r
+                       WHERE user_id = ?\r
+                       AND permission_id = ?\r
+                       LIMIT 1\r
+                       ");\r
+               $access = 0;\r
+               foreach($permission as $check){\r
+                       if ($access == 0){\r
+                               $stmt->bind_param("ii", $this->user_id, $check);\r
+                               $stmt->execute();\r
+                               $stmt->store_result();\r
+                               if ($stmt->num_rows > 0){\r
+                                       $access = 1;\r
+                               }\r
+                       }\r
+               }\r
+               if ($access == 1)\r
+               {\r
+                       return true;\r
+               }\r
+               if ($this->user_id == $master_account){\r
+                       return true;    \r
+               }\r
+               else\r
+               {\r
+                       return false;   \r
+               }\r
+               $stmt->close();\r
+       }\r
+       \r
+       //Logout\r
+       public function userLogOut()\r
+       {\r
+               destroySession("userCakeUser");\r
+       }       \r
+}\r
+\r
+?>
\ No newline at end of file

UCC git Repository :: git.ucc.asn.au