[ Index ]
 

Code source de CMS made simple 1.0.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/classes/ -> class.useroperations.inc.php (source)

   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  ?>


Généré le : Tue Apr 3 18:50:37 2007 par Balluche grâce à PHPXref 0.7