Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Task breakdown

Changes in intl-whitelabel-cms

Expand
titleintl-whitelabel-cms
  1. Create email template for blocked user notification

    1. Templates should use the Liquid syntax

  2. Create email template for unblocked user notification

    1. Templates should use the Liquid syntax

Changes in intl-notifications-service

Expand
titleintl-users-service
  1. Create send block notification endpoint

    1. POST /api/v1/email/send-block

    2. Create block TemplateType

    3. Receive SendEmailRequestDto as payload

  2. Create send unblock notification endpoint

    1. POST /api/v1/email/send-unblock

    2. Create unblock TemplateType

    3. Receive SendEmailRequestDto as payload

Changes in intl-users-service

Expand
titleintl-users-service
  1. Create block user endpoint

    1. Endpoint: POST /api/v1/users/block-user/{cognitoId}

    2. Add isBlocked field to user details base interface

    3. Use UpdateService to set is blocked to true

    4. user notification-service to send email

  2. Create unblock user endpoint

    1. Endpoint: POST /api/v1/users/unblock-user/{cognitoId}

    2. Use UpdateService to set is blocked to false

    3. user notification-service to send email

  3. Prevent blocked users from signing in

    1. Create UserBlockedError apollo error

    2. Add isBlocked validation in the listed resolvers:

      • createOTP

      • createLoginOTP

      • signInJWT

      • socialLogin

    3. User not found validation for reference

...

Expand
titleintl-whitelable-graphql
  1. Add isBlocked to userDetails type

Changes in intl-admin-app

Expand
  1. Create block status card on customer page

    1. Update users package

    2. Add isBlocked to user details type in graphql

    3. Add isBlocked to customer query in frontend

    4. Create card to display user status

  2. Create mutation to block the user

    1. Use blockUser exposed in the user package (instantiated insider the user provider)

    2. Create auditLog for the customer blocking

      1. Create new audit action block-user

      2. Example of audit log

    3. Check if the agent has permission to block

      1. TBD: which permission is needed

  3. Implement block user in front end

    1. Create confirmation modal

    2. Check if agent has permission to change customer status

      1. TBD: which permission is needed

    3. Trigger block mutation on confirmation

  4. Create mutation to unblock the user

    1. Use unblockUser exposed in the user package (instantiated insider the user provider)

    2. Create auditLog for the customer unblocking

      1. Create new audit action unblock-user

      2. Example of audit log

    3. Check if the agent has permission to unblock

      1. TBD: which permission is needed

  5. Implement unblock user in front end

    1. Create confirmation modal

    2. Check if agent has permission to change customer status

      1. TBD: which permission is needed

    3. Trigger unblock mutation on confirmation

Changes in intl-whitelable-app

...