===== Sparse documentation about Brisk. ===== ==== Form Workflow ==== - div on page User cleanup: spush::garbage_manager() if (user->the_end) close opened socket brisk->users_cleanup() to reset all users with the_end set ==== brisk/table/user relationships ==== === points management === read from db: * continue a match * calculate placings * calculate explain write to db: * finish a game === in the room === // when standup bri->user[user_idx] = user user->idx = user_idx user->idx_orig = user_idx // when sitdown table->player[player_idx] = user_idx user->table_pos = player_idx === in the game === bin5->user[user_idx] = user table->player[player_idx] = user_idx user->table_pos = player_idx Many things aren't documented at all, but I start with authentication workflow. ==== MODIFY USERS TABLE ==== === PHP CODE === web/Obj/dbase_base.phh function LoginDBItem -> args & body function LoginDBItemFromRecord -> args & body === SQL CODE === sql/sql.d/nnn-name-patch.sql AUTHENTICATION WORKFLOW --- CLI ------------ index.php: onsubmit="return j_login_manager(this);" -> sync xhr(index_wr.php?mesg=getchallenge&cli_name=) --- SRV ------------ GET index_wr.php send the string: "1|" --- CLI ------------ POST index.php with passid_private field equal to calcMD5(tokens[1]+calcMD5(form.elements['passid'].value)) add_user -> validate_name, login_verify ===== Game Lifecycle ===== -> bin5/index_wr.php + argz[0] == 'logout' - bri->table_wakeup($user) - set users subst to "shutdowner" and "shutdowned" - save this: "gst.st_loc++; the_end=true; window.onbeforeunload = null; \ window.onunload = null; document.location.assign("../index.php");" in user->comm var for client xhr - set $bri->the_end = TRUE -> index.php (after verify session value: ~L250) - garbage_manager(TRUE) - align many status var with briskin5 user values - room_join_wakeup() ==== Chunk flow ==== $ret = $user->maincheck($old_stat, $old_subst, $old_step, $this->rd_stat, $this->rd_subst, $this->rd_step, $splashdate, $table_idx, $table_token)) $user->rd_transp->chunk($this->rd_scristp++, $ret); ===== New users workflow ===== UserA UserB Admin ------------------------------------------------------------------------- guarante UserB | v Save on mail table, email to UserB (Disabled, MAILED) ------------------------------------------------------------------------- Receive email to check address | v Click on link | v Check on mail table, update user status, delete mail rec (Disabled, TOBECHK) ------------------------------------------------------------------------- admin panel accept user | v send email with password, update user status (Normal, NONE) ------------------------------------------------------------------------- Receive email with password -------------------------------------------------------------------------