Helpdesk346 > HelpDesk346 / Classes / User.php

Questions? Need Help? Want to share? » PHP Forum
Script Name:
Helpdesk346

Download:
helpdesk346.zip

Category:
Customer Support

Archive Content:

HelpDesk346

HelpDesk346 > Classes

HelpDesk346 > Classes > Subclasses

HelpDesk346 > Classes

HelpDesk346

HelpDesk346 > Enduser > Includes

HelpDesk346 > Enduser

HelpDesk346

HelpDesk346 > Images

HelpDesk346 > Includes

HelpDesk346 > Includes > Createproblem

HelpDesk346 > Includes

HelpDesk346 > Includes > UserManage

HelpDesk346

HelpDesk346 > Install

HelpDesk346 > Kb

HelpDesk346 > Kb > Images

HelpDesk346 > Kb > Includes

HelpDesk346 > Kb

HelpDesk346

HelpDesk346 > Settings

HelpDesk346

HelpDesk346 > Sniff

HelpDesk346

HelpDesk346 > TicketLookup

HelpDesk346 > Upgrade

HelpDesk346 > Upgrade > Files

HelpDesk346 > Upgrade

HelpDesk346

User.php:


<?php
    
//Revised by Jason Farrell
    //Revised on July 23,  2005
    //Revision Number 2
    
    //Rev 2: Functionality added to allow User class to facilitate all interaction of Interface to Database for User information

    
class User
    
{
        var 
$id;
        var 
$user;
        var 
$pass;
        var 
$FirstName;
        var 
$LastName;
        var 
$ComputerName;
        var 
$HelpDeskAddress '';
        var 
$securityLevel;
        var 
$email_addr;
        var 
$phoneNumber;
        var 
$phoneExt;
        
        function 
User($id false)
        {
            
$this->id $id;
            if (
$id) {
                
$this->fetch();    
            }
        }
        
        function 
fetch()
        {
            
$q "select * from " DB_PREFIX "accounts where id = $this->id LIMIT 1";
            
$s mysql_query($q) or die(mysql_error());
            
$r mysql_fetch_assoc($s);
            
            
$this->user $r['User'];
            
$this->pass $r['Pass'];
            
$this->FirstName $r['FirstName'];
            
$this->LastName $r['LastName'];
            
$this->ComputerName $r['ComputerName'];
            
$this->HelpDeskAddress $r['HelpDeskAddress'];
            
$this->securityLevel $r['securityLevel'];
            
$this->email_addr $r['email_addr'];    
            
$this->phoneNumber $r['phoneNumber'];
            
$this->phoneExt $r['phoneExt'];
        }
        
        function 
get($name,  $callback null)
        {
            switch (
$name)
            {
                case 
'phoneNumber':
                    
$val preg_replace('/[^\d]/',  '',  $this->$name); break;
                default: 
$val $this->$name; break;
            }
            
            if (
is_null($callback))
                return 
$val;
            else 
                return 
$callback($val);    
        }
        
        function 
set($name,  $value,  $applier null)
        {
            switch (
$name)
            {
                case 
'phoneNumber'$value $this->parseDigits($value); break;
                case 
'phoneExt'$value $this->phoneExt; break;
                default: break;
            }
            
            if (
is_null($applier)) {
                
$this->$name $value;
            }
            else {
                
$this->$name $applier($value);
            }
        }
        
        
/*
            We use the applicator model for our set function so that we can pull the escaping out of commit and keep it clean
            make sure you validate all the data you set,  this prevents SQL injection errors - the two best ways are as follows:
                Strings:    mysql_real_escape_string
                Integers:    intval
        */
        
function commit()
        {
            if (
$this->id) {
                
//update
                
$cmd  "update " DB_PREFIX "accounts set ";
                
$cmd .= "email_addr = '$this->email_addr',  ";
                
$cmd .= "FirstName = '$this->FirstName',  ";
                
$cmd .= "LastName = '$this->LastName',  ";
                
$cmd .= "phoneExt = $this->phoneExt,  ";
                
$cmd .= "phoneNumber = $this->phoneNumber,  ";
                
$cmd .= "securityLevel = $this->securityLevel ";
                
$cmd .= "where id = $this->id";
                
                
mysql_query($cmd) or die(mysql_error());
            }
            else {
                
//insert
                
$cmd  "insert into " DB_PREFIX "accounts(email_addr,  FirstName,  LastName,  phoneExt,  phoneNumber,  securityLevel,  pass,  user) ";
                
$cmd .= "values('$this->email_addr',  '$this->FirstName',  '$this->LastName',  '$this->phoneExt',  '$this->phoneNumber',  $this->securityLevel,  '" md5($this->pass) . "',  '$this->user')";
                
                
mysql_query($cmd) or die(mysql_error());
                
$this->id mysql_insert_id();
            }
        }
        
        
//these are meant to be private functions
        
function parseDigits($value)
        {
            return 
preg_replace('/[^\d]/',  '',  $value);
        }
        
        function 
delete()
        {
            
$cmd "delete from " DB_PREFIX "accounts where id = $this->id";
            
mysql_query($cmd) or die(mysql_error());
            
            
$cmd "update " DB_PREFIX "data set regUser = 0 where regUser = $this->id";
            
mysql_query($cmd) or die(mysql_error());
        }
        
        function 
passwd($pass)    //begin phasing this function out
        
{
            
$cmd  "update " DB_PREFIX "accounts set ";
            
$cmd .= "pass = '" md5($pass) . "' ";
            
$cmd .= "where id = $this->id";
            
            
mysql_query($cmd) or die(mysql_error());
        }
        
        function 
promote()
        {
            
$cmd  "update " DB_PREFIX "accounts set ";
            
$cmd .= "securityLevel = securityLevel + 1 ";
            
$cmd .= "where id = $this->id and securityLevel <> " ADMIN_SECURITY_LEVEL;
            
            
mysql_query($cmd) or die(mysql_error());
        }
        
        function 
demote()
        {
            
$cmd  "update " DB_PREFIX "accounts set ";
            
$cmd .= "securityLevel = securityLevel - 1 ";
            
$cmd .= "where id = $this->id and securityLevel <> " ENDUSER_SECURITY_LEVEL;
            
            
mysql_query($cmd) or die(mysql_error());
        }
        
        
//custom get functions
        
function getTextSecurityLevel()
        {
            
$array = array(
                
"End User",  "Technician",  "Administrator"
            
);
            
            return 
$array[$this->securityLevel];    
        }
        
        function 
psswd($old,  $new)
        {
            if (
md5($old) != $this->pass) {
                return 
false;
            }
            
            if (empty(
$old)) {
                return 
false;    
            }
            
            
            
$cmd  "update " DB_PREFIX "accounts set ";
            
$cmd .= "pass = '" md5($new) . "' ";
            
$cmd .= "where id = $this->id";
            
            
mysql_query($cmd) or die(mysql_error());
            
$this->pass md5($new);
            return 
true;
        }
    }
?>


Other Customer Support Scripts:

WebMaster Resources Home

©RingsWorld.com