<?php
class UserService {
- var $db;
+ var $db;
- function &getInstance(&$db) {
- static $instance;
- if (!isset($instance))
- $instance =& new UserService($db);
- return $instance;
+ function &getInstance(&$db) {
+ static $instance;
+ if (!isset($instance)) {
+ $instance = new UserService($db);
}
-
- var $fields = array(
- 'primary' => 'uId',
- 'username' => 'username',
- 'password' => 'password'
- );
- var $profileurl;
- var $tablename;
- var $sessionkey;
- var $cookiekey;
- var $cookietime = 1209600; // 2 weeks
-
- function UserService(&$db) {
+ return $instance;
+ }
+
+ var $fields = array(
+ 'primary' => 'uId',
+ 'username' => 'username',
+ 'password' => 'password'
+ );
+ var $profileurl;
+ var $tablename;
+ var $sessionkey;
+ var $cookiekey;
+ var $cookietime = 63072000; // 2 years
+
+ function __construct(&$db) {
$this->db =& $db;
$this->tablename = $GLOBALS['tableprefix'] .'users';
$this->sessionkey = $GLOBALS['cookieprefix'] .'-currentuserid';
if(!empty($host)) {
@exec("nslookup -type=$type $host", $output);
while(list($k, $line) = each($output)) {
- if(eregi("^$host", $line)) {
+ if(preg_match("/^$host/i", $line)) { //eregi("^$host", $line)
return true;
}
}
return false;
}
+ function _in_regex_array($value, $array) {
+ foreach ($array as $key => $pattern) {
+ if (preg_match($pattern, $value)) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+ }
+
function _randompassword() {
$password = mt_rand(1, 99999999);
$password = substr(md5($password), mt_rand(0, 19), mt_rand(6, 12));
if (isset($_SESSION[$this->getSessionKey()])) {
return $_SESSION[$this->getSessionKey()];
} else if (isset($_COOKIE[$this->getCookieKey()])) {
- $cook = split(':', $_COOKIE[$this->getCookieKey()]);
+ $cook = explode(':', $_COOKIE[$this->getCookieKey()]); //split(':', $_COOKIE[$this->getCookieKey()]);
//cookie looks like this: 'id:md5(username+password)'
$query = 'SELECT * FROM '. $this->getTableName() .
' WHERE MD5(CONCAT('.$this->getFieldName('username') .
return false;
}
+ function isBlockedEmail($email) {
+ // Check whitelist
+ $whitelist = $GLOBALS['email_whitelist'];
+ if (!is_null($whitelist) && is_array($whitelist)) {
+ if (!$this->_in_regex_array($email, $whitelist)) {
+ // Not in whitelist -> blocked
+ return TRUE;
+ }
+ }
+
+ // Check blacklist
+ $blacklist = $GLOBALS['email_blacklist'];
+ if (!is_null($blacklist) && is_array($blacklist)) {
+ if ($this->_in_regex_array($email, $blacklist)) {
+ // In blacklist -> blocked
+ return TRUE;
+ }
+ }
+
+ // Not blocked
+ return FALSE;
+ }
+
function isReserved($username) {
if (in_array($username, $GLOBALS['reservedusers'])) {
return true;
function isValidEmail($email) {
if (preg_match("/^((?:(?:(?:\w[\.\-\+_]?)*)\w)+)\@((?:(?:(?:\w[\.\-_]?){0,62})\w)+)\.(\w{2,6})$/i", $email) > 0) {
- list($emailUser, $emailDomain) = split("@", $email);
+ list($emailUser, $emailDomain) = explode("@", $email);
// Check if the email domain has a DNS record
if ($this->_checkdns($emailDomain)) {
function getCookieKey() { return $this->cookiekey; }
function setCookieKey($value) { $this->cookiekey = $value; }
}
-?>