+ }
+
+ static function from_user($user)
+ {
+ $thiz = new Client_prefs();
+ $thiz->user_load($user);
+
+ return ($thiz);
+ }
+
+ static function from_json($json)
+ {
+ $thiz = new Client_prefs();
+ if ($thiz->json_load($json) == FALSE) {
+ return (FALSE);
+ }
+
+ return ($thiz);
+ }
+
+ function user_load($user)
+ {
+ fprintf(STDERR, "QQ %s: %x\n", __FUNCTION__, $user->flags);
+ $this->listen = ($user->flags & USER_FLAG_MAP_AUTH) >> 2;
+
+ fprintf(STDERR, "QQ %s: LISTEN: %d\n", __FUNCTION__, $this->listen);
+ }
+
+ function json_load($json_s)
+ {
+ if (gettype($json_s) == "string") {
+ if (($json = json_decode($json_s)) == FALSE)
+ return FALSE;
+ }
+ else {
+ $json = $json_s;
+ }
+ $this->listen = $json->listen;
+
+ return TRUE;
+ }
+
+ function store($user, $is_save)
+ {
+ // save into DB
+ fprintf(STDERR, "QQ %s::%s PRE: %x\n", __CLASS__, __FUNCTION__,
+ $user->flags & (~USER_FLAG_S_ALL & ~USER_FLAG_AUTH));
+ $user->flags_set(($this->listen << 2), USER_FLAG_MAP_AUTH);
+ fprintf(STDERR, "QQ %s::%s %x\n", __CLASS__, __FUNCTION__,
+ $user->flags);
+ if ($is_save)
+ $user->store_set();