X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fuser.phh;h=1d693d5bbeb0b78343c863fda61298addb3e1c4a;hb=89023025985f8c0b07bb4e4500c787bfe23d999e;hp=ad402b8d28991a4b9ccffeab6288eeac6834e41f;hpb=bddfecf27b05ebf105929f29ef23c26d3b258c3c;p=brisk.git diff --git a/web/Obj/user.phh b/web/Obj/user.phh index ad402b8..1d693d5 100644 --- a/web/Obj/user.phh +++ b/web/Obj/user.phh @@ -209,8 +209,8 @@ class User { $thiz->handpt = -1; $thiz->exitislock = TRUE; + $thiz->flags_db = 0x00; $thiz->flags = 0x00; - $thiz->flags_cur = 0x00; $thiz->rec = FALSE; $thiz->chattime = array_fill(0, CHAT_N, 0); @@ -259,8 +259,8 @@ class User { $this->handpt = $from->handpt; $this->exitislock = $from->exitislock; + $this->flags_db = $from->flags_db; $this->flags = $from->flags; - $this->flags_cur = $from->flags_cur; $this->rec = $from->rec; $this->chattime = array(); @@ -328,8 +328,8 @@ class User { $thiz->exitislock = $from->exitislock; $thiz->the_end = $from->the_end; + $thiz->flags_db = $from->flags_db; $thiz->flags = $from->flags; - $thiz->flags_cur = $from->flags_cur; $thiz->rec = $from->rec; $thiz->chattime = array_fill(0, CHAT_N, 0); @@ -375,20 +375,30 @@ class User { return FALSE; } - function flags_set($flags, $mask) + function flags_db_get($mask) { - $flags_old = $this->flags & (~$mask); - $this->flags = ($flags_old | ($flags & $mask)); + return ($this->flags_db & $mask); + } - return ($flags_old); + function flags_db_set($flags_db, $mask) + { + $flags_db_old = $this->flags_db & (~$mask); + $this->flags_db = ($flags_db_old | ($flags_db & $mask)); + + return ($flags_db_old); } - function flags_cur_set($flags_cur, $mask) + function flags_get($mask) { - $flags_cur_old = $this->flags_cur & (~$mask); - $this->flags_cur = ($flags_cur_old | ($flags_cur & $mask)); + return ($this->flags & $mask); + } - return ($flags_cur_old); + function flags_set($flags, $mask) + { + $flags_old = $this->flags & (~$mask); + $this->flags = ($flags_old | ($flags & $mask)); + + return ($flags_old); } function prefs_store() @@ -396,7 +406,11 @@ class User { if (($bdb = BriskDB::create()) == FALSE) { return FALSE; } - return ($bdb->user_prefs_update($this->code, ($this->flags & (USER_FLAG_TY_ALL | USER_FLAG_MAP_AUTH)), + if ($this->flags_db == $this->flags) + return TRUE; + + $this->flags_db = $this->flags; + return ($bdb->user_prefs_update($this->code, ($this->flags_db & (USER_FLAG_TY_ALL | USER_FLAG_MAP_AUTH)), $this->rec->supp_comp_get())); } @@ -410,10 +424,11 @@ class User { function state_store() { - if (($bdb = BriskDB::create()) == FALSE) { + if (($bdb = BriskDB::create()) == FALSE) { return FALSE; } - return ($bdb->user_state_update($this->code, ($this->flags & (USER_FLAG_TY_ALL | USER_FLAG_MAP_AUTH)), + $this->flags_db = $this->flags; + return ($bdb->user_state_update($this->code, ($this->flags_db & (USER_FLAG_TY_ALL | USER_FLAG_MAP_AUTH)), $this->rec->disa_reas_get())); }