diff options
Diffstat (limited to 'h-source/admin/Application/Models/UsersModel.php')
| -rwxr-xr-x | h-source/admin/Application/Models/UsersModel.php | 223 | 
1 files changed, 0 insertions, 223 deletions
| diff --git a/h-source/admin/Application/Models/UsersModel.php b/h-source/admin/Application/Models/UsersModel.php deleted file mode 100755 index 3f55cfe..0000000 --- a/h-source/admin/Application/Models/UsersModel.php +++ /dev/null @@ -1,223 +0,0 @@ -<?php - -// h-admin, a web software to build a community of people that want to share their hardware information. -// Copyright (C) 2010  Antonio Gallo (h-admin-copyright.txt) -// -// This file is part of h-admin -// -// h-admin is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// h-admin is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with h-admin.  If not, see <http://www.gnu.org/licenses/>. - -if (!defined('EG')) die('Direct access not allowed!'); - -class UsersModel extends Model_Map -{ - -	public static $usersList = array(); -	 -	public function __construct() -	{ -		$this->_tables='regusers,reggroups,regusers_groups'; -		$this->_idFields='id_user,id_group'; -		 -		$this->_where=array( -			'id_group'			=>	'reggroups', -			'id_user'			=>	'regusers', -			'name'				=>	'reggroups', -			'confirmation_token'=>	'regusers', -			'has_confirmed'		=>	'regusers', -			'deleted'			=>	'regusers', -			'forgot_token'		=>	'regusers' -		); -		 -		$this->_popupItemNames = array( -			'has_confirmed'=>'has_confirmed', -			'deleted'=>'deleted', -			'id_group'=>'name', -		); - -		$this->_popupLabels = array( -			'has_confirmed'=>'HAS CONFIRMED?', -			'deleted'=>'DELETED?', -			'id_group'=>'GROUP' -		); -		 -		$this->orderBy = 'regusers.id_user desc'; -		 -		parent::__construct(); -		 -		$this->deleteNotRegistered(); -	} - -	public function deleteNotRegistered() -	{ -		$limit = time() - Account::$confirmTime;  -		$this->db->del('regusers','has_confirmed = 1 and deleted = "no" and creation_time < '.$limit); -	} - -	public function getUser($id_user = 0) -	{ -		$clean['id_user'] = (int)$id_user; -		if (array_key_exists($clean['id_user'],self::$usersList)) -		{ -			return self::$usersList[$clean['id_user']]; -		} -		else -		{ -			$user = $this->db->select('regusers','username,has_confirmed','id_user='.$clean['id_user']); -			if (count($user) > 0) -			{ -				$fuser = (strcmp($user[0]['regusers']['has_confirmed'],0) === 0) ? $user[0]['regusers']['username'] : "__".$user[0]['regusers']['username']; -				self::$usersList[$clean['id_user']] = $fuser; -				return $fuser; -			} -			else -			{ -				return "__"; -			} -		} -	} - -	public function insert() -	{ -		//create the token -		$confirmation_token = md5(randString(20)); -		$this->values['confirmation_token'] = $confirmation_token; -		//has_confirmed flag -		$this->values['has_confirmed'] = 1; -		$this->values['creation_time'] = time(); -		 -		//random ID -		$randomId = md5(randString(5).uniqid(mt_rand(),true)); -		$this->values["temp_field"] = $randomId; -		 -		if (isset($_POST['captcha'])) -		{ -			if ( strcmp($_SESSION['captchaString'],$_POST['captcha']) === 0 ) -			{ -				 -				parent::insert(); -				 -				if ($this->queryResult) -				{ -					$resId = $this->db->select("regusers","id_user","temp_field='$randomId'"); -					$clean['id_user'] = $resId[0]['regusers']['id_user']; -					$this->db->update("regusers",'temp_field',array(''),'id_user='.$clean['id_user']); -					 -					$result = Account::confirm($this->values['username'],$this->values['e_mail'],$clean['id_user'],$confirmation_token); -					 -					if ($result) -					{ -						$_SESSION['status'] = 'sent'; -					} -					else -					{ -						$_SESSION['status'] = 'regerror'; -					} -					 -					$hed = new HeaderObj(DOMAIN_NAME); -					$hed->redirect('users/notice/'.Lang::$current); -				} -			 -			} -			else -			{ -				$this->result = false; -				$this->queryResult = false; -				$this->notice = "<div class='alert'>Wrong captcha code...</div>\n"; -			} -		} -	} - -	public function close($id_user) -	{ -		$clean['id_user'] = (int)$id_user; -		 -		$this->values = array( -			'has_confirmed'	=>	1, -			'deleted'		=>	'yes', -			'e_mail'		=>	'' -		); -		 -		if ($this->update($clean['id_user'])) -		{ -			$_SESSION['status'] = 'deleted'; -			 -			$profile = new ProfileModel(); -			$res = $profile->db->select('profile','id_prof','created_by='.$clean['id_user']); -			 -			if (count($res) > 0) -			{ -				$clean['id_prof'] = (int)$res[0]['profile']['id_prof']; -				$profile->values = array( -					'real_name'		=>	'', -					'where_you_are'	=>	'', -					'birth_date'	=>	'', -					'fav_distro'	=>	'', -					'projects'		=>	'', -					'description'	=>	'' -				); -				$profile->update($clean['id_prof']); -			} -		} -		 -	} - -	public function forgot($username) -	{ -		$clean['username'] = ctype_alnum($username) ? sanitizeAll($username) : ''; -		 -		if (isset($_POST['captcha'])) -		{ -			if ( strcmp($_SESSION['captchaString'],$_POST['captcha']) === 0 ) -			{ -				$res = $this->db->select('regusers','e_mail,id_user','username="'.$clean['username'].'" and has_confirmed = 0 and deleted = "no"'); -				if (count($res) > 0) -				{ -					$e_mail = $res[0]['regusers']['e_mail']; -					$id_user = (int)$res[0]['regusers']['id_user']; -					$forgot_token = md5(randString(20)); -					$forgot_time = time(); -					$updateArray = array($forgot_token, $forgot_time); -					$this->db->update('regusers','forgot_token,forgot_time',$updateArray,'username="'.$clean['username'].'"'); -					 -					$result = Account::sendnew($clean['username'],$e_mail,$id_user,$forgot_token); -					 -					if ($result) -					{ -						$_SESSION['status'] = 'sent_new'; -					} -					else -					{ -						$_SESSION['status'] = 'sent_new_error'; -					} -					 -					$hed = new HeaderObj(DOMAIN_NAME); -					$hed->redirect('users/notice/'.Lang::$current,1); -					 -				} -				else -				{ -					$this->notice = "<div class='alert'>the user does not exist</div>\n"; -				} -			} -			else -			{ -				$this->result = false; -				$this->queryResult = false; -				$this->notice = "<div class='alert'>Wrong captcha code...</div>\n"; -			} -		} -	} - -}
\ No newline at end of file | 
