[ Index ] |
|
Code source de CMS made simple 1.0.5 |
1 <?php 2 #CMS - CMS Made Simple 3 #(c)2004 by Ted Kulp (tedkulp@users.sf.net) 4 #This project's homepage is: http://cmsmadesimple.org 5 # 6 #This program is free software; you can redistribute it and/or modify 7 #it under the terms of the GNU General Public License as published by 8 #the Free Software Foundation; either version 2 of the License, or 9 #(at your option) any later version. 10 # 11 #This program is distributed in the hope that it will be useful, 12 #BUT withOUT ANY WARRANTY; without even the implied warranty of 13 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 #GNU General Public License for more details. 15 #You should have received a copy of the GNU General Public License 16 #along with this program; if not, write to the Free Software 17 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 # 19 #$Id: class.user.inc.php 2961 2006-06-25 04:49:31Z wishy $ 20 21 /** 22 * Class for doing user related functions. Maybe of the User object functions 23 * are just wrappers around these. 24 * 25 * @since 0.6.1 26 * @package CMS 27 */ 28 29 require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'class.user.inc.php'); 30 31 class UserOperations 32 { 33 /** 34 * Gets a list of all users 35 * 36 * @returns array An array of User objects 37 * @since 0.6.1 38 */ 39 function &LoadUsers() 40 { 41 global $gCms; 42 $db = &$gCms->GetDb(); 43 44 $result = array(); 45 46 $query = "SELECT user_id, username, password, first_name, last_name, email, active, admin_access FROM ".cms_db_prefix()."users ORDER BY username"; 47 $dbresult = $db->Execute($query); 48 49 while ($dbresult && $row = $dbresult->FetchRow()) 50 { 51 $oneuser =& new User(); 52 $oneuser->id = $row['user_id']; 53 $oneuser->username = $row['username']; 54 $oneuser->firstname = $row['first_name']; 55 $oneuser->lastname = $row['last_name']; 56 $oneuser->email = $row['email']; 57 $oneuser->password = $row['password']; 58 $oneuser->active = $row['active']; 59 $oneuser->adminaccess = $row['admin_access']; 60 $result[] =& $oneuser; 61 } 62 63 return $result; 64 } 65 66 67 /** 68 * Gets a list of all users in a given group 69 * 70 * @param mixed $groupid Group for the loaded users 71 * @returns array An array of User objects 72 */ 73 function &LoadUsersInGroup($groupid) 74 { 75 global $gCms; 76 $db = &$gCms->GetDb(); 77 $result = array(); 78 79 $query = "SELECT u.user_id, u.username, u.password, u.first_name, u.last_name, u.email, u.active, u.admin_access FROM ".cms_db_prefix()."users u, ".cms_db_prefix()."groups g, ".cms_db_prefix()."user_groups cg where cg.user_id = u.user_id and cg.group_id = g.group_id and g.group_id =? ORDER BY username"; 80 $dbresult = $db->Execute($query, array($groupid)); 81 82 while ($dbresult && $row = $dbresult->FetchRow()) 83 { 84 $oneuser =& new User(); 85 $oneuser->id = $row['user_id']; 86 $oneuser->username = $row['username']; 87 $oneuser->firstname = $row['first_name']; 88 $oneuser->lastname = $row['last_name']; 89 $oneuser->email = $row['email']; 90 $oneuser->password = $row['password']; 91 $oneuser->active = $row['active']; 92 $oneuser->adminaccess = $row['admin_access']; 93 $result[] =& $oneuser; 94 } 95 96 return $result; 97 } 98 99 /** 100 * Loads a user by username. 101 * 102 * @param mixed $username Username to load 103 * @param mixed $password Password to check against 104 * @param mixed $activeonly Only load the user if they are active 105 * @param mixed $adminaccessonly Only load the user if they have admin access 106 * 107 * @returns mixed If successful, the filled User object. If it fails, it returns false. 108 * @since 0.6.1 109 */ 110 function &LoadUserByUsername($username, $password = '', $activeonly = true, $adminaccessonly = false) 111 { 112 $result = false; 113 114 global $gCms; 115 $db = &$gCms->GetDb(); 116 117 $params = array(); 118 119 $query = "SELECT user_id FROM ".cms_db_prefix()."users WHERE username = ?"; 120 $params[] = $username; 121 122 if ($password != '') 123 { 124 $query .= " AND password = ?"; 125 $params[] = md5($password); 126 } 127 128 if ($activeonly == true) 129 { 130 $query .= " AND active = 1"; 131 } 132 133 if ($adminaccessonly == true) 134 { 135 $query .= " AND admin_access = 1"; 136 } 137 138 $dbresult = $db->Execute($query, $params); 139 140 if ($dbresult && $dbresult->RecordCount() > 0) 141 { 142 $row = $dbresult->FetchRow(); 143 $id = $row['user_id']; 144 $result =& UserOperations::LoadUserByID($id); 145 } 146 147 return $result; 148 } 149 150 /** 151 * Loads a user by user id. 152 * 153 * @param mixed $id User id to load 154 * 155 * @returns mixed If successful, the filled User object. If it fails, it returns false. 156 * @since 0.6.1 157 */ 158 function &LoadUserByID($id) 159 { 160 $result = false; 161 162 global $gCms; 163 $db = &$gCms->GetDb(); 164 165 $query = "SELECT username, password, active, first_name, last_name, admin_access, email FROM ".cms_db_prefix()."users WHERE user_id = ?"; 166 $dbresult = $db->Execute($query, array($id)); 167 168 while ($dbresult && $row = $dbresult->FetchRow()) 169 { 170 $oneuser =& new User(); 171 $oneuser->id = $id; 172 $oneuser->username = $row['username']; 173 $oneuser->password = $row['password']; 174 $oneuser->firstname = $row['first_name']; 175 $oneuser->lastname = $row['last_name']; 176 $oneuser->email = $row['email']; 177 $oneuser->adminaccess = $row['admin_access']; 178 $oneuser->active = $row['active']; 179 $result =& $oneuser; 180 } 181 182 return $result; 183 } 184 185 /** 186 * Saves a new user to the database. 187 * 188 * @param mixed $usre User object to save 189 * 190 * @returns mixed The new user id. If it fails, it returns -1. 191 * @since 0.6.1 192 */ 193 function InsertUser($user) 194 { 195 $result = -1; 196 197 global $gCms; 198 $db = &$gCms->GetDb(); 199 200 $time = $db->DBTimeStamp(time()); 201 $new_user_id = $db->GenID(cms_db_prefix()."users_seq"); 202 $query = "INSERT INTO ".cms_db_prefix()."users (user_id, username, password, active, first_name, last_name, email, admin_access, create_date, modified_date) VALUES (?,?,?,?,?,?,?,?,".$time.",".$time.")"; 203 #$dbresult = $db->Execute($query, array($new_user_id, $user->username, $user->password, $user->active, $user->firstname, $user->lastname, $user->email, $user->adminaccess)); 204 $dbresult = $db->Execute($query, array($new_user_id, $user->username, $user->password, $user->active, $user->firstname, $user->lastname, $user->email, 1)); //Force admin access on 205 if ($dbresult !== false) 206 { 207 $result = $new_user_id; 208 } 209 210 return $result; 211 } 212 213 /** 214 * Updates an existing user in the database. 215 * 216 * @param mixed $user User object to save 217 * 218 * @returns mixed If successful, true. If it fails, false. 219 * @since 0.6.1 220 */ 221 function UpdateUser($user) 222 { 223 $result = false; 224 225 global $gCms; 226 $db = &$gCms->GetDb(); 227 228 $time = $db->DBTimeStamp(time()); 229 $query = "UPDATE ".cms_db_prefix()."users SET username = ?, password = ?, active = ?, modified_date = ".$time.", first_name = ?, last_name = ?, email = ?, admin_access = ? WHERE user_id = ?"; 230 #$dbresult = $db->Execute($query, array($user->username, $user->password, $user->active, $user->firstname, $user->lastname, $user->email, $user->adminaccess, $user->id)); 231 $dbresult = $db->Execute($query, array($user->username, $user->password, $user->active, $user->firstname, $user->lastname, $user->email, 1, $user->id)); 232 if ($dbresult !== false) 233 { 234 $result = true; 235 } 236 237 return $result; 238 } 239 240 /** 241 * Deletes an existing user from the database. 242 * 243 * @param mixed $id Id of the user to delete 244 * 245 * @returns mixed If successful, true. If it fails, false. 246 * @since 0.6.1 247 */ 248 function DeleteUserByID($id) 249 { 250 $result = false; 251 252 global $gCms; 253 $db = &$gCms->GetDb(); 254 255 $query = "DELETE FROM ".cms_db_prefix()."additional_users where user_id = ?"; 256 $db->Execute($query, array($id)); 257 258 $query = "DELETE FROM ".cms_db_prefix()."users where user_id = ?"; 259 $dbresult = $db->Execute($query, array($id)); 260 261 $query = "DELETE FROM ".cms_db_prefix()."userprefs where user_id = ?"; 262 $dbresult = $db->Execute($query, array($id)); 263 264 if ($dbresult !== false) 265 { 266 $result = true; 267 } 268 269 return $result; 270 } 271 272 /** 273 * Show the number of pages the given user's id owns. 274 * 275 * @param mixed $id Id of the user to count 276 * 277 * @returns mixed Number of pages they own. 0 if any problems. 278 * @since 0.6.1 279 */ 280 function CountPageOwnershipByID($id) 281 { 282 $result = 0; 283 284 global $gCms; 285 $db = &$gCms->GetDb(); 286 287 $query = "SELECT count(*) AS count FROM ".cms_db_prefix()."content WHERE owner_id = ?"; 288 $dbresult = $db->Execute($query, array($id)); 289 290 if ($dbresult && $dbresult->RecordCount() > 0) 291 { 292 $row = $dbresult->FetchRow(); 293 if (isset($row["count"])) 294 { 295 $result = $row["count"]; 296 } 297 } 298 299 return $result; 300 } 301 302 function GenerateDropdown($currentuserid='', $name='ownerid') 303 { 304 $result = ''; 305 306 $allusers = UserOperations::LoadUsers(); 307 308 if (count($allusers) > 0) 309 { 310 $result .= '<select name="'.$name.'">'; 311 foreach ($allusers as $oneuser) 312 { 313 $result .= '<option value="'.$oneuser->id.'"'; 314 if ($oneuser->id == $currentuserid) 315 { 316 $result .= ' selected="selected"'; 317 } 318 $result .= '>'.$oneuser->username.'</option>'; 319 } 320 $result .= '</select>'; 321 } 322 323 return $result; 324 } 325 } 326 327 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Tue Apr 3 18:50:37 2007 | par Balluche grâce à PHPXref 0.7 |