bcgov / entity

ServiceBC Registry Team working on Legal Entities
Apache License 2.0
23 stars 58 forks source link

Auth needs to redirect to Create / Coops after login #2333

Closed severinbeauvais closed 4 years ago

severinbeauvais commented 4 years ago

Title: Redirect back to app after login


Description:

In order to satisfy the above user statement, we need:

  1. the Create Business app to redirect to a login page (and provide a Return URL) if there is no Keycloak token (being implemented in #2391)

  2. the Cooperatives app to redirect to a login page (and provide a Return URL) if there is no Keycloak token (being implemented in #2433)

  3. IF the user was redirected from Create Business... a. AND the user has multiple draft incorporations they could resume, THEN auth to provide a dashboard for the user to select one, and then set the NR# and redirect back to Create Business app b. AND the user has a single draft incorporation they could resume, THEN auth to just set the NR# and redirect back to Create Business app (this is initially optional and ultimately nice to have <<< @forgeuxGH5 and PO/BAs to clarify this)

  4. IF the user was redirected from Cooperatives... a. AND the user has multiple businesses they could manage, THEN auth to provide a dashboard for the user to select one, and then set the Business ID and redirect back to Cooperatives app (exists already) b. AND the user has a business they could manage, THEN auth to just set the Business ID and redirect back to Cooperatives app (this is initially optional and ultimately nice to have <<< @forgeuxGH5 and PO/BAs to clarify this)

As an alternative (or enhancement) to the above, we could add support for URL parameters (ie, NR# / Business ID) so that the current business is saved as part of the bookmark. (However, this could be confusing to users. @forgeuxGH5 to clarify this.) If this functionality is desired, separate tickets should be created for that.

NOTE: Currently the Create Business app redirects to the auth URL if there is no Keycloak token. This may need to be updated if we need to pass along a Return URL (for post-login redirection) and possibly also to save and pass along a business ID (or some other ID needed). OBSOLETE

NOTE: We may decide that any unauthenticated access to the Create Business URL should simply redirect to a high level BC-ROS page where the user can decide what to do, without directly redirecting back to the Create Business URL, since it might not make sense to go straight to this URL -- @forgeuxGH5 and @jeznorth can give us their input on this. In any case, we need a user flow to get to the Create Business app. OBSOLETE

Acceptance Criteria

Dependencies? (If so, link dependency in the ticket, make it visible in a team´s backlog)

Validation Rules? (If yes, list here)


DoR for User Story:

Definition of Ready:

  1. [ ] Does User Story have full flow of business rules, happy and alternate paths, etc.?
  2. [ ] Requirements & expected behavior included in the User Story?
  3. [ ] Are the dependencies known/ understood?
  4. [ ] Dev team accepts user experience artifacts
  5. [ ] If there are validation rules, are they defined (UI, Data, Role-Action)?
  6. [ ] Does this User Story needs stakeholder approval?
  7. [ ] Is this user story small enough to be completed in a Sprint?
  8. [ ] What do we possible have to do re Change Management? - a) GCPE, …?

Definition of Done: 1) [ ] Check Requirements against completed tasks 2) [ ] Completed stories verified in Dev and Test 3) [ ] Confirm Test cases built and succeeding 4) [ ] No regression test failures 5) [ ] Test coverage acceptable by Product Owner??? 6) [ ] Ticket merged to master or story branch 7) [ ] Developer to list Config changes/ Update documents and designs 8) [ ] Design / Solution accepted by Product Owner 9) [ ] UX Approved 10) [ ] Can be demoed in Sprint Review 11) [ ] Release ticket is created and this US is linked to it

severinbeauvais commented 4 years ago

@sumesh When do you think this should be implemented -- Sprint 21? OBSOLETE

sumesh-aot commented 4 years ago

For Sprint 21 tickets are already prioritized, so I am not sure whether we would be able to prioritize this. OBSOLETE

If I understood correctly, it's 2 requirements:

1) If the user directly enters create business url and is not logged in, then create business UI needs a mechanism to add redirect url when the user is redirected to the auth application for authentication. For create-ui it should be fine to do this, but for maintenance we would need some mechanism to identify the business as part of route.

2) A mechanism within landing page (auth application) to navigate to create business app. This will be an UX decision.

cc: @sutherlanda

severinbeauvais commented 4 years ago

1) If the user directly enters create business url and is not logged in, then create business UI needs a mechanism to add redirect url when the user is redirected to the auth application for authentication. For create-ui it should be fine to do this, but for maintenance we would need some mechanism to identify the business as part of route.

I just chatted to Scott about this.

For the Create Business app, certain data needs to be in context (eg, namex result) and the user may need to be logged in, so it sounds like browsing to the Create Business URL without the required data should redirect to the "Start a Business Home" (names request) page. (That page can, in turn, redirect to login if needed.) @LJTrent FYI!

For the Maintenance app (ie, the current cooperatives app), if the required data (KC token, business ID) is not available then we should redirect to the auth/login page (as existing), which can redirect to the Manage Businesses page (as existing), where the user can select the business they want (as existing). One improvement to this is to skip the Manage Businesses page if the user has only 1 business (@forgeuxGH5 to follow up on this). This will handle the 78% of users who have only 1 business. The other 22% will need to select a business every time they go to the bookmark. If we want to improve this (ie, by letting them go straight to a particular business) then we will need to save the business ID as part of the bookmarked URL and then pass that along to the login page so it can redirect back accordingly. I have not heard whether this is a requirement ... @forgeuxGH5, please create a ticket if needed.

LJTrent commented 4 years ago

@severinbeauvais I think there needs to be a quick meeting to decide what is meant by Crrate a New Business. My last understanding is that when the user to start the create a new business workflow from LEAR, they will enter the approved NR # and that would need to be validated against Names in the same way that COLIN current validates against namesp. if that is true, then the user would Navigate to Create a New Business (a new url for LEAR), they would not login and be presented a screen to enter their approved NR number. The approved NR number would be able to provide a number of important attributes (entity type, submission_date, request_type, contact/client info). UX/Ui will need to decide what they want to pull forward and how it will be used. I think this warrants a quick meeting.

severinbeauvais commented 4 years ago

I have refined the requirements in this ticket.

severinbeauvais commented 4 years ago

With the new signin common component embedded in each app that obtains a domain-wide Keycoak token (aka SSO), redirects to perform login are obsolete.

A mechanism to select a Business ID or Name Request ID when none is provided is still required -- this will be handled by the respective apps redirecting to the Business Registry Home Page or Manage Businesses dashboard, where the user can select the desired business or name request to work on.

So basically, THIS ticket is obsolete. @Kaineatthelab FYI and please close.