define('USER_FLAG_S_SOCC', 0x900); // done
define('USER_FLAG_S_BABY', 0xa00); // done
define('USER_FLAG_S_MOP', 0xb00); // done
+define('USER_FLAG_S_BABBO', 0xc00); // done
+define('USER_FLAG_S_RENNA', 0xd00); // done
+define('USER_FLAG_S_PUPAZ', 0xe00); // done
+define('USER_FLAG_S_VISCH', 0xf00); // done
define('USER_FLAG_S_ALL', 0xf00); // done
define('USER_FLAG_TY_ALL', 0xff0000); // done
define('USER_FLAG_TY_NORM', 0x010000); // done
define('USER_FLAG_TY_SUPER', 0x020000); // done
+define('USER_FLAG_TY_CERT', 0x040000); // done
// ... other usefull status ...
define('USER_FLAG_TY_SUSPEND', 0x400000); // done
define('USER_FLAG_TY_DISABLE', 0x800000); // done
var $table_pos; // idx on the table
var $table_token;// token that identify a game on a table
var $flags; // Bitfield with: AUTHENTICATE: 0x02
+ var $rec; // field with user db record or FALSE
var $the_end; // Flag to change the end of the session
var $chat_lst; // Last chat line
function User() {
}
- function create(&$room, $idx, $name, $sess, $stat = "", $subst = "", $table = -1, $ip="0.0.0.0") {
+ static function create(&$room, $idx, $name, $sess, $stat = "", $subst = "", $table = -1, $ip="0.0.0.0") {
if (($thiz = new User()) == FALSE)
return (FALSE);
$thiz->exitislock = TRUE;
$thiz->flags = 0x00;
-
+ $thiz->rec = FALSE;
+
$thiz->chattime = array_fill(0, CHAT_N, 0);
$thiz->chat_cur = 0;
$thiz->chat_lst = "";
$this->exitislock = $from->exitislock;
$this->flags = $from->flags;
+ $this->rec = $from->rec;
$this->chattime = array();
for ($i = 0 ; $i < CHAT_N ; $i++)
}
- function myclone($from)
+ static function myclone($from)
{
if (($thiz = new User()) == FALSE)
return (FALSE);
return ($thiz);
}
- function spawn($from, $table, $table_pos)
+ static function spawn($from, $table, $table_pos)
{
if (($thiz = new User()) == FALSE)
return (FALSE);
$thiz->the_end = $from->the_end;
$thiz->flags = $from->flags;
+ $thiz->rec = $from->rec;
$thiz->chattime = array_fill(0, CHAT_N, 0);
$thiz->chat_cur = 0;
return ($thiz);
}
+ function flags_set($flags, $mask)
+ {
+ $flags_old = $this->flags & (~$mask);
+ $this->flags = ($flags_old | ($flags & $mask));
+ }
+
+ function store_set()
+ {
+ if (($bdb = BriskDB::create()) == FALSE) {
+ return FALSE;
+ }
+ return ($bdb->user_prefs_update($this->code, ($this->flags & (USER_FLAG_TY_ALL | USER_FLAG_MAP_AUTH)),
+ $this->rec->supp_comp));
+ }
+
function rd_data_set($curtime, $transp, $enc, $stat, $subst, $step, $from)
{
$this->rd_endtime = $curtime + RD_ENDTIME_DELTA;
function reset() {
$curtime = time();
- log_legal($curtime, 'xxx', $this, "STAT:LOGOUT", '');
+ log_legal($curtime, $this->ip, $this, "STAT:LOGOUT", '');
$tmp_sess = $this->sess;
$this->sess = "";
return ($ret);
} // function maincheck (...
- public static function stream_fini($init_string, $is_unrecoverable)
+ public static function stream_fini($transp, $init_string, $is_unrecoverable)
{
printf("xXx user::stream_fini\n");
// FIXME: dynamic "Transport_" type
- $tans_class = "Transport_iframe";
- $body = $tans_class::fini($init_string, self::base_get(), static::blocking_error($is_unrecoverable));
+ $trans_class = Transport::gettype($transp);
+ $body = $trans_class::fini($init_string, self::base_get(), static::blocking_error($is_unrecoverable));
// ELSE IF XHR THEN:
// return (static::blocking_error($is_unrecoverable));
$curtime = time();
printf("CLASS: [%s] base: [%s]\n", get_class($this), self::base_get());
-
- // (webservers_exceeded() || stristr($HTTP_USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; rv:5.0)") || stristr($HTTP_USER_AGENT, "MSIE") || stristr($HTTP_USER_AGENT, "CHROME") ? TRUE : FALSE);
log_load("index_rd_ifra_init.php");
return $c::BASE;
}
+function is_supp_custom()
+{
+ if ($this->rec != FALSE) {
+ if ($this->flags & USER_FLAG_TY_SUPER) {
+ return (TRUE);
+ }
+ /*
+ if ($this->rec->last_dona > 1356994800) {
+ return (TRUE);
+ }
+ */
+ }
+ return (FALSE);
+}
+
} // end class User