Add UserCake
[matches/MCTX3420.git] / testing / MCTXWeb / public_html / users / models / class.user.php
1 <?php\r
2 /*\r
3 UserCake Version: 2.0.2\r
4 http://usercake.com\r
5 */\r
6 \r
7 class loggedInUser {\r
8         public $email = NULL;\r
9         public $hash_pw = NULL;\r
10         public $user_id = NULL;\r
11         \r
12         //Simple function to update the last sign in of a user\r
13         public function updateLastSignIn()\r
14         {\r
15                 global $mysqli,$db_table_prefix;\r
16                 $time = time();\r
17                 $stmt = $mysqli->prepare("UPDATE ".$db_table_prefix."users\r
18                         SET\r
19                         last_sign_in_stamp = ?\r
20                         WHERE\r
21                         id = ?");\r
22                 $stmt->bind_param("ii", $time, $this->user_id);\r
23                 $stmt->execute();\r
24                 $stmt->close(); \r
25         }\r
26         \r
27         //Return the timestamp when the user registered\r
28         public function signupTimeStamp()\r
29         {\r
30                 global $mysqli,$db_table_prefix;\r
31                 \r
32                 $stmt = $mysqli->prepare("SELECT sign_up_stamp\r
33                         FROM ".$db_table_prefix."users\r
34                         WHERE id = ?");\r
35                 $stmt->bind_param("i", $this->user_id);\r
36                 $stmt->execute();\r
37                 $stmt->bind_result($timestamp);\r
38                 $stmt->fetch();\r
39                 $stmt->close();\r
40                 return ($timestamp);\r
41         }\r
42         \r
43         //Update a users password\r
44         public function updatePassword($pass)\r
45         {\r
46                 global $mysqli,$db_table_prefix;\r
47                 $secure_pass = generateHash($pass);\r
48                 $this->hash_pw = $secure_pass;\r
49                 $stmt = $mysqli->prepare("UPDATE ".$db_table_prefix."users\r
50                         SET\r
51                         password = ? \r
52                         WHERE\r
53                         id = ?");\r
54                 $stmt->bind_param("si", $secure_pass, $this->user_id);\r
55                 $stmt->execute();\r
56                 $stmt->close(); \r
57         }\r
58         \r
59         //Update a users email\r
60         public function updateEmail($email)\r
61         {\r
62                 global $mysqli,$db_table_prefix;\r
63                 $this->email = $email;\r
64                 $stmt = $mysqli->prepare("UPDATE ".$db_table_prefix."users\r
65                         SET \r
66                         email = ?\r
67                         WHERE\r
68                         id = ?");\r
69                 $stmt->bind_param("si", $email, $this->user_id);\r
70                 $stmt->execute();\r
71                 $stmt->close(); \r
72         }\r
73         \r
74         //Is a user has a permission\r
75         public function checkPermission($permission)\r
76         {\r
77                 global $mysqli,$db_table_prefix,$master_account;\r
78                 \r
79                 //Grant access if master user\r
80                 \r
81                 $stmt = $mysqli->prepare("SELECT id \r
82                         FROM ".$db_table_prefix."user_permission_matches\r
83                         WHERE user_id = ?\r
84                         AND permission_id = ?\r
85                         LIMIT 1\r
86                         ");\r
87                 $access = 0;\r
88                 foreach($permission as $check){\r
89                         if ($access == 0){\r
90                                 $stmt->bind_param("ii", $this->user_id, $check);\r
91                                 $stmt->execute();\r
92                                 $stmt->store_result();\r
93                                 if ($stmt->num_rows > 0){\r
94                                         $access = 1;\r
95                                 }\r
96                         }\r
97                 }\r
98                 if ($access == 1)\r
99                 {\r
100                         return true;\r
101                 }\r
102                 if ($this->user_id == $master_account){\r
103                         return true;    \r
104                 }\r
105                 else\r
106                 {\r
107                         return false;   \r
108                 }\r
109                 $stmt->close();\r
110         }\r
111         \r
112         //Logout\r
113         public function userLogOut()\r
114         {\r
115                 destroySession("userCakeUser");\r
116         }       \r
117 }\r
118 \r
119 ?>

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