X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fuser.phh;h=87c93fb1f3a87ede4834e75c8d765a99ff183561;hb=9c32b198f916bdf20fc051b86bba6092b105ca9e;hp=ad63154d2169190492b031ffb6c4d11c9c1e0a76;hpb=c35dd062490b68aa01f887afa3ddf705b3e32372;p=brisk.git diff --git a/web/Obj/user.phh b/web/Obj/user.phh index ad63154..87c93fb 100644 --- a/web/Obj/user.phh +++ b/web/Obj/user.phh @@ -34,25 +34,33 @@ define('USER_FLAG_ISOLAUTH', 0x08); define('USER_FLAG_DBFAILED', 0x10); // user status -define('USER_FLAG_S_NORM', 0x000); // done -define('USER_FLAG_S_PAU', 0x100); // done -define('USER_FLAG_S_OUT', 0x200); // done -define('USER_FLAG_S_DOG', 0x300); // done -define('USER_FLAG_S_EAT', 0x400); // done -define('USER_FLAG_S_WRK', 0x500); // done -define('USER_FLAG_S_SMK', 0x600); // done -define('USER_FLAG_S_EYE', 0x700); // done -define('USER_FLAG_S_RABB', 0x800); // done -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_ALL', 0xf00); // done +define('USER_FLAG_S_NORM', 0x00); // done +define('USER_FLAG_S_PAU', 0x01); // done +define('USER_FLAG_S_OUT', 0x02); // done +define('USER_FLAG_S_DOG', 0x03); // done +define('USER_FLAG_S_EAT', 0x04); // done +define('USER_FLAG_S_WRK', 0x05); // done +define('USER_FLAG_S_SMK', 0x06); // done +define('USER_FLAG_S_EYE', 0x07); // done +define('USER_FLAG_S_RABB', 0x08); // done +define('USER_FLAG_S_SOCC', 0x09); // done +define('USER_FLAG_S_BABY', 0x0a); // done +define('USER_FLAG_S_MOP', 0x0b); // done +define('USER_FLAG_S_BABBO', 0x0c); // done +define('USER_FLAG_S_RENNA', 0x0d); // done +define('USER_FLAG_S_PUPAZ', 0x0e); // done +define('USER_FLAG_S_VISCH', 0x0f); // done + +define('USER_FLAG_S_ALL', 0xff); // done + +/* does is user moderationg brisk ? */ +define('USER_FLAG_MODER', 0x0100); // done /* type of user normal, supporter etc ... */ 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 @@ -115,7 +123,11 @@ class User { var $table_orig; // id of the current table when you aren't in game var $table_pos; // idx on the table var $table_token;// token that identify a game on a table + + var $flags_volat;// Bitfield of volatile flags var $flags; // Bitfield with: AUTHENTICATE: 0x02 + var $flags_vlt; // Volatile flags valid for this session only + 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 @@ -130,7 +142,7 @@ class User { 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); @@ -168,7 +180,9 @@ class User { $thiz->exitislock = TRUE; $thiz->flags = 0x00; - + $thiz->flags_vlt = 0x00; + $thiz->rec = FALSE; + $thiz->chattime = array_fill(0, CHAT_N, 0); $thiz->chat_cur = 0; $thiz->chat_lst = ""; @@ -213,6 +227,8 @@ class User { $this->exitislock = $from->exitislock; $this->flags = $from->flags; + $this->flags_vlt = $from->flags_vlt; + $this->rec = $from->rec; $this->chattime = array(); for ($i = 0 ; $i < CHAT_N ; $i++) @@ -232,7 +248,7 @@ class User { } - function myclone($from) + static function myclone($from) { if (($thiz = new User()) == FALSE) return (FALSE); @@ -242,7 +258,7 @@ class User { return ($thiz); } - function spawn($from, $table, $table_pos) + static function spawn($from, $table, $table_pos) { if (($thiz = new User()) == FALSE) return (FALSE); @@ -277,6 +293,8 @@ class User { $thiz->the_end = $from->the_end; $thiz->flags = $from->flags; + $thiz->flags_vlt = $from->flags_vlt; + $thiz->rec = $from->rec; $thiz->chattime = array_fill(0, CHAT_N, 0); $thiz->chat_cur = 0; @@ -294,6 +312,41 @@ class User { return ($thiz); } + function flags_get($mask) + { + return ($this->flags & $mask); + } + + function flags_set($flags, $mask) + { + $flags_old = $this->flags; + $this->flags = (($flags_old & (~$mask)) | ($flags & $mask)); + + return ($flags_old != $this->flags); + } + + function flags_vlt_get($mask) + { + return ($this->flags_vlt & $mask); + } + + function flags_vlt_set($flags_vlt, $mask) + { + $flags_vlt_old = $this->flags_vlt; + $this->flags_vlt = (($flags_vlt_old & (~$mask)) | ($flags_vlt & $mask)); + + return ($flags_vlt_old != $this->flags_vlt); + } + + 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; @@ -461,7 +514,7 @@ class User { 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 = ""; @@ -564,7 +617,8 @@ class User { $is_super = $this->flags & USER_FLAG_TY_SUPER; $ret .= show_notify_ex(str_replace("\n", " ", $G_splash_content[$G_lang]), ($is_super ? 0 : $G_splash_timeout), - $mlang_indrd[($is_super ? 'btn_btotabsup' : 'btn_backtotab')][$G_lang], + // $mlang_indrd[($is_super ? 'btn_btotabsup' : 'btn_backtotab')][$G_lang], + $mlang_indrd['btn_backtotab'][$G_lang], $G_splash_w, $G_splash_h, true, ($is_super ? 0 : $G_splash_timeout)); $ret .= sprintf('|createCookie("CO_splashdate%d", %d, 24*365, cookiepath);', $G_splash_idx, $curtime); @@ -647,13 +701,13 @@ class User { 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)); @@ -675,8 +729,6 @@ function stream_init($init_string, $enc, &$header_out, &$body, $get, $post, $coo $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"); @@ -740,6 +792,21 @@ static function base_get() 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