Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#5218 closed defect (fixed)

Support updating lobby terms

Reported by: elexis Owned by: elexis
Priority: Must Have Milestone: Alpha 23
Component: Multiplayer lobby Keywords:
Cc: Patch: Phab:D1568

Description

The currently released 0 A.D. client doesn't support updating of lobby terms of use / service, specifically getting user consent after a change is intended.

Change History (5)

comment:1 by elexis, 6 years ago

Patch: Phab:D1568

comment:2 by elexis, 6 years ago

Owner: set to elexis
Resolution: fixed
Status: newclosed

In 21847:

Rewrite the prelobby pages and add the Terms of Service, Terms of Use and the agreement checkbox to the login page.
Ensure lobby players cannot join without acceptance of the terms in case they change, fixes #5218, as agreed in last staff meeting.

Separate lobby entrance, lobby login and lobby register GUI page.
Since rP14098 they were squashed into a single GUI page;

Adding lots of hardcode to set the visibility of GUI objects;
Reinventing a GUI page manager in JS;
Unintentionally persisting data between pages;
Requiring lots of errorprone case distinctions which are unneeded once relevant GUI objects and code is loaded exclusively.

Add the remember-password checkbox from rP21311 / D822 to the registration page too.

Revert the revert of rP17581 in rP17584 and continue to prefer objects with separate functions per C++ GUI message type,
reducing the nesting of conditionals per function and reveal codeflow by making input and output variables explicit.

Fix oversight in rP20064 by moving the registrationrate string from rP19205 from the "disconnect" to the "error" case.

Differential Revision: https://code.wildfiregames.com/D1568
Few comments by: Vladislav, Imarok, gallaecio

comment:3 by elexis, 6 years ago

In 21850:

Persist the lobby Terms Of Use and Terms Of Service checkbox if the logged in user and the accepted versions of the pages didn't change since last login, refs #5218.

This way the user is only forced to read the Terms again that changed or if the user logged in from a different machine.
Use md5sum since it is sufficiently resistant against collisions and doesn't freeze the window for 2 seconds like EncryptPassword / SHA256 does, refs #4399.
Use 0 instead of empty string in default.cfg, refs #3990.

Differential Revision: https://code.wildfiregames.com/D1575
Partial review by: Vladislav

comment:4 by elexis, 6 years ago

In 21872:

Fix missing alias in rP21850 / D1575, refs #5218, taken from D1590.

comment:5 by elexis, 6 years ago

In 21887:

Refactor lobby terms and conditions UI from rP21847 / D1568 to a new terms dialog UI and reuse that for mod.io and the UserReporter, refs #5257, #5218.

Reuse all existing strings, use a FileExists hack for mod.io until the new strings are committed.
Rename prelobby/common/terms/terms.js to termslobby.js for easier distinction from common/terms.js.

Based on patch by: bb
Differential Revision: https://code.wildfiregames.com/D1602
refs https://code.wildfiregames.com/D1601
refs https://github.com/bb-bb/0ad/tree/terms
refs https://github.com/elexis1/0ad/tree/terms

Note: See TracTickets for help on using tickets.