X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fuser.phh;h=51956c8ece15d3c5fd6c96a3853e78bff676e561;hb=17b73d1ef533eccc7ee71961c76b9a33e19d452f;hp=b7409dee2421aac0cb35f1553363888a8f7a21b7;hpb=c09f1a53453d47ff1f7467655e95d109ada76f02;p=brisk.git diff --git a/web/Obj/user.phh b/web/Obj/user.phh index b7409de..51956c8 100644 --- a/web/Obj/user.phh +++ b/web/Obj/user.phh @@ -57,6 +57,7 @@ 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 @@ -120,6 +121,7 @@ class User { 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 @@ -134,7 +136,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); @@ -172,7 +174,8 @@ class User { $thiz->exitislock = TRUE; $thiz->flags = 0x00; - + $thiz->rec = FALSE; + $thiz->chattime = array_fill(0, CHAT_N, 0); $thiz->chat_cur = 0; $thiz->chat_lst = ""; @@ -217,6 +220,7 @@ class User { $this->exitislock = $from->exitislock; $this->flags = $from->flags; + $this->rec = $from->rec; $this->chattime = array(); for ($i = 0 ; $i < CHAT_N ; $i++) @@ -236,7 +240,7 @@ class User { } - function myclone($from) + static function myclone($from) { if (($thiz = new User()) == FALSE) return (FALSE); @@ -246,7 +250,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); @@ -281,6 +285,7 @@ class User { $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; @@ -298,6 +303,21 @@ class User { 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; @@ -742,6 +762,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