View Single Post
  #4  
Old 11-23-2012, 04:36 PM
Abronsyth's Avatar
Abronsyth Abronsyth is offline
A Headache Embodied
 
Join Date: Aug 2011
Location: NY
Posts: 1,011
Gender: Male
Credits: 111,704
Abronsyth is on a distinguished road
Default

Okay, here's the abstract_usercreator.php:
PHP Code:
<?php

abstract class UserCreator implements Creator{
  
// The abstract factory class UserCreator
  
  
abstract public function create();
  abstract public function 
massproduce();
  
  public static function 
logincheck(){
     global 
$mysidia;
    
     
//Check for cookie
     
if(!$mysidia->cookies->getcookies("mysuid") or !$mysidia->cookies->getcookies("myssession")) return FALSE;
     else{
        
$uid secure($mysidia->cookies->getcookies("mysuid"));
        
$session secure($mysidia->cookies->getcookies("myssession"));

        
//Run login operation
        
$luser $mysidia->db->select("users", array("uid""session"), "uid = '{$uid}'")->fetchObject();
        
$luid=$luser->uid;
        
$lsess=$luser->session;
        
        if(
$uid == $luid and $session == $lsess) return TRUE;
        else{
            if(isset(
$_COOKIE['mysuid'])) setcookie("mysuid"$uidtime() - 10);
            if(isset(
$_COOKIE['myssession'])) setcookie("myssession"$sessiontime() - 10);
            return 
FALSE;
        }
     }
     
// End of login check
  
}
  
  protected function 
getusergroup($userinfo){
     global 
$mysidia;
     
$whereclause = (is_numeric($userinfo))?"uid ='{$userinfo}'":"username ='{$userinfo}'";
     
$usergroup $mysidia->db->select("users", array("usergroup"), $whereclause)->fetchColumn();
     if(empty(
$usergroup)) throw new Exception('Invalid Usergroup, cannot instantiate user object');
     return 
$usergroup;
  }
  
  protected function 
getgroupcategory(){
     global 
$mysidia;
     
$category $mysidia->db->select("groups", array("category"), "uid ='{$uid}'")->fetchColumn();
     if(empty(
$category)) throw new Exception('Invalid Usergroup Category, cannot instantiate user object');
     return 
$category;     
  }
  
  protected function 
getidentity(){
     
$spiderip = array();
     if(
in_array($_SERVER['REMOTE_ADDR'], $spiderip)) $identity "Spider";
     else 
$identity "Guest";
     return 
$identity;
  }
  
}
?>
And here's the class_membercreator.php:
PHP Code:
<?php

class MemberCreator extends UserCreator{
  
// The abstract factory class UserCreator
  
protected $userinfo;
  protected 
$usergroup;
  protected 
$user;
   
  public function 
__construct($userinfo){
     if(empty(
$userinfo)) throw new Exception('User id or Username does not exist...');
     
$this->userinfo $userinfo;
     
$this->usergroup $this->getgroupid();
  }

  public function 
getgroupid(){
     global 
$mysidia;
     
$whereclause $whereclause = (is_numeric($this->userinfo))?"uid ='{$this->userinfo}'":"username ='{$this->userinfo}'";
     
$gid $mysidia->db->select("users", array("usergroup"), $whereclause)->fetchColumn();
     return 
$gid;
  }

  public function 
getgroupcategory(){
     
// This feature will be fully implemented in Mys v1.3.3 or v1.3.4.
     
if($this->usergroup == or $this->usergroup == 2) return "Admin";
     elseif(
$this->usergroup == or $this->usergroup == 6) return "Mod";
     elseif(
$this->usergroup == 3) return "Registered";
     elseif(
$this->usergroup == 5) return "Banned";
     else throw new 
Exception('Cannot recognize usergroup category for this user, he/she may be a guest, a bot, or else...');
  }

  public function 
create(){
     
$category $this->getgroupcategory();
     switch(
$category){
        case 
"Admin":
           
$this->user $this->create_admin();
           break;
        case 
"Mod":
           
$this->user $this->create_mod();
           break;
        case 
"Banned":
           
$this->user $this->create_banned();
           break;           
        default:
           
$this->user $this->create_member();                   
     }
     return 
$this->user;     
  }
  
  public function 
massproduce(){
     return 
FALSE;
  }
    
  private function 
create_admin(){
     return new 
Admin($this->userinfo);
  }
  
  private function 
create_mod(){
     return new 
Mod($this->userinfo);
  }
  
  private function 
create_member(){
     return new 
Member($this->userinfo);
  }
  
  private function 
create_banned(){
     return new 
Banned($this->userinfo);
  }
}
?>
(Sometimes I feel like it's just my job to find as many errors as possible...most of them being my fault for some reason XD)
__________________
My Mods Site (1.3.4, 2020 Mods)