Remove OpenMRS dependency - users


Responsible team memberPierre Dane
Current Team Member
StatusFLAG
Targeted release Date?
Scoping Complete Date

2020-02-05


Jira Issue RVL-818 - Getting issue details... STATUS
LOEXXL
Priority6

Status

#

Step

Status

1Responsible prepares rough business analysis/reqs doc
2Get CHAI review
3Get Akros Review
4Get Ona feedback


5Responsible - 1 iteration for feedback


6Ona sign off
7Ona tech spec scoping
8Ona LOE 
9Ona scheduling

Requirements

  • OpenMRS user and role management should be replicated in OpenSRP and the OpenMRS dependency removed. Required functions:
    • Create user
    • Archive user
    • Edit user
    • Allow user to reset forgotten password
    • Assign roles to a user
    • Create role (TBD)
    • Archive role (TBD)
    • Edit role (TBD)
  • Role-based permissions will need to be enabled in the API in order to restrict user management operations to administrators (and to users for self-management)
  • Existing OpenMRS roles include the following - these will need to be rationalized:
    • Administrator
    • Anonymous
    • Authenticated
    • OpenSRP - Get All Events
    • Provider
    • System Developer
  • A hard-coded list of roles could be implemented for MVP (Todo: Validate)
  • Assumption: The main code changes will be around the OauthAuthenticationProvider and will require a facade to a new service mimicking the DrishtiAuthenticationProvider and replacing the OpenMRSUserService with an OpenSRPUserService
  • There should be a UI accessible through the WebUI for managing users (upsert) and roles (assignment to users)
  • The functionality should only be available to users with the relevant roles

Tasks

  • Create OpenSRP data schema for users and roles
  • Build OpenSRPUser Service
  • Replace OpenMRSUserService with OpenSRPUserService
  • Test that OuthAuthenticationProvider functions as before 
  • Add RBAC to the WebUI - High LOE dependency. SHould be scoped and estimated separately 
  • Create  WebUI screens for user management
  • Assumption: Not all users will be providers, but all providers will be users 


Mock-Ups


Existing Views




Test Case

#

Step

Pass / Fail

Comment

1




2




3




4




5




6




7




8




Additional tester comments: