[[BackLinksMenu]] [[TicketQuery(summary=s2s-login-functionality, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == The user should have the opportunity to: * Login * Logout * Register * Change his account data * Preview his data * Recover forgotten password The goal of this task is to provide this functionality. == Task requirements == * provide * Login page * Two text fields for password and email * Back button * Logout functionality * User account data page * ability to change/add/remove screen name * ability to add additional emails * ability to change password (may require additional page) * ability to add/remove avatar image * editable additional info * notification for personal data publicity (label) * should provide a way to manage visibility for user data * link to preview data page * User details preview: Shows user info as the others sees it. * Should show avatar, screen name, emails(depends on user input), description * Register page: Should contain text input controls for all properties that the user can give input on * email - required * password - required * repeat password - required * upload image control - with description of size limitation * screen name * description * Forgotten password page * Conformation page that show massage to the user that the new password is sent to the mail == Task result == * Code == Implementation idea == * Use existing visual language and extend it to fit the requirements == Related == == How to demo == * Go to server page * Register new user * logout and login again * Change some personal data * request password change = Design = == User name == Change the register and login pages to ask for e-mail instead of userName and use it as the unique identifier of the user. This should be achieved by generating the unique part of the users ref from its e-mail information. The email could be transformed to a string that contains only symbols allowed in ResourceRefs and then it could be used as part of the location to the user. == Password == For now we could keep the password in plain text and on login compare the provided password with the original one. In future it is better to generate a hash code by the pass and keep only it in the database. == Screen name == The user will be allowed to set the name that is presented to the other for him/her. This is done in the screen name field. If it is not set the user is referred to by its e-mail address. == Web UI == This task is basically implementation of jspx files and HttpRequesHandlers for their logic. The present design of the WebUI and WebApp modules is good and should be kept and just extended to supprot new functionality. * Login page * Two text fields for password and email * Back button * Forgot password page: Sends the user mail with his password, after the * Label that describes expected user behavior and what will happen after send button is clicked. * Text field for users mail * Send button * Notification page * Template page that is shown for few seconds with message inside it. Announcing errors or success. * Registration page * Two columns with text fields for: e-mail, password, confirm password, screen name, description * [OPTIONAL] Upload control for avatar (image) * Labels that point the mandatory fields * Labels to point any restrictions (image size etc.) * Error messages appear on top of the page. Error types could be the following: * Wrong mail * Short password (insecure) * Wrong password conformation * Unable to upload image * Edit profile page * Basically same as the registration form, with few differences. First of all the mail text field is replaced with label. Second instead of "password" and "confirm password" fields we now have - "password", "new password", "confirm new password". Additional link to profile view is added. * My profile page: Displays users info * Same as registration page, but instead of input controls we now have labels and image = Implementation = ^(Describe and link the implementation results here (from the wiki or the repository).)^ = Testing = ^(Place the testing results here.)^ = Comments = ^(Write comments for this or later revisions here.)