Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Members report export as CSV #2737

Open
2 tasks
gabydisarli opened this issue Sep 9, 2024 · 12 comments
Open
2 tasks

Members report export as CSV #2737

gabydisarli opened this issue Sep 9, 2024 · 12 comments

Comments

@gabydisarli
Copy link
Contributor

gabydisarli commented Sep 9, 2024

Issue description

Org model admins will have the functionality to download a CSV report of their members. Match the data that is exposed to them in the current table. That data is:

Column Header Contents
Email Member's email address
Organization Admin Boolean whether they are an admin for the organization
Invited by Email address of the User that invited them. [email protected] if it was done by an Analyst or CISA user
Invitation date Date they were invited (in our database this is called "created at")
Last Active Last active date (YYYY-MM-DD) Or "Invited" if they've not yet accepted the invitation.
Domain requests Whether they can make domain requests. Tentatively, I think the options as we currently understand would be: None, Viewer, Viewer Requester
Member management Whether the member can manage other members in the organization. Tentatively, I think the options as we currently understand would be : None, Viewer, Manager
Domain management Boolean: Whether the member is assigned to manage any domains
Number of domains Integer value of the number of domains they're assigned to manage
Domains quote-enclosed; comma-separated list of all domains the member manages

Acceptance criteria

  • Org Admins can export member data for all members in their organization
  • The export has member data with columns in the csv that match above data

Additional context

Implementation note: Add a created_at to the portfolio invitation model and pull for the 'Invitation date' column.

Links to other issues

@katypies
Copy link
Contributor

@gabydisarli

Took a look through the different pages and what information we're planning to show within the application. Here are my thoughts based on my review of that, plus your suggestion around the invitation date:

ID
A unique identifier for the member - this might be the Django user id/key, or some kind of hash of it? Suggesting inclusion of this since the email address isn't unique and the same email address could appear multiple times in the member list which can be confusing. Should not be the Login.gov UUID since I expect we don't want to expose that.

Email
Member's email address

Organization Admin
Boolean whether they are an admin for the organization

Invited by
Email address of the User that invited them. [email protected] if it was done by an Analyst or CISA user

Invitation date
Date they were invited (do we maintain this date once the invite is accepted?)

Last Active
Last active date

Domain requests
Whether they can make domain requests. Tentatively, I think the options as we currently understand would be:

  • None
  • Viewer
  • Requester
  • Viewer Requester

Domain Management
Boolean: Whether the member is assigned to manage any domains

Member Management
Whether the member can manage other members in the organization. Tentatively, I think the options as we currently understand would be :

  • None
  • Viewer
  • Manager

Number of domains
Integer value of the number of domains they're assigned to manage

Domains
quote-enclosed; comma-separated list of all domains the member manages

@gabydisarli
Copy link
Contributor Author

@katypies thanks! One thing I'd adjust:

  • For domain requests, there's 3 options possible for basic members and 2 for admins. Basic members can get No access, View all requests, or View all plus create requests. Admins don't have a "No access" option. I'd suggest taking out the "Requester" option

@katypies
Copy link
Contributor

Thanks @gabydisarli ! I updated the ticket with that info, including your suggestion. Let me know if anything doesn't look right in there or if we should tweak any of it.

@katypies
Copy link
Contributor

Refinement:

  1. Do we store the invitation date, and if so, is it maintained after the invite is accepted? If not, should we adjust this field?
  2. Need to discuss ID field and possible options for that

@h-m-f-t
Copy link
Member

h-m-f-t commented Sep 23, 2024

  1. See @rachidatecs's comment below. We can get the "created at" date.
  2. Striking the ID field for now.

@rachidatecs
Copy link
Contributor

Implementation note: Add a created_at to the portfolio invitation model and pull for the 'Invitation date' column.

@abroddrick
Copy link
Contributor

Updated the content with the implementation note mentioned above (thanks @rachidatecs ), Is there any reason this still has refinement @katypies ? Maybe more discussions on it?

@katypies
Copy link
Contributor

@abroddrick - the comment from @rachidatecs might address the open question, but I want to be sure that the A/Cs are clear on what the invitation date is, and how it's being tracked because we talked about a few options.

@abroddrick
Copy link
Contributor

abroddrick commented Oct 8, 2024

Added refinement for these questions:

  1. For invited by and invitation date, this will include either domain invitation creation or a UserDomainRole is made for them, correct? (Context: if you add someone to a domain who is an existing user, no invitation is made they just get a UserDomainRole). If we are including when a user domain roles is added, we do not see track who initiated a UserDomainRole to be created on our side, so all UserDomainRole creations would show [email protected]. This might be confusing to a user.
  2. For number of domains and the domain list, this should include ones the user is invited to and does not manage correct?
  3. CC: @gabydisarli

@gabydisarli
Copy link
Contributor Author

Apologies, I missed these tags.

I'll leave this up to product to decide, but from my perspective, I am thinking of this report through the eyes of an admin, and I think the most valuable data point would be when the member was first invited to the organization. Whether that was through a domain invitation or through an admin invitation, it doesn't matter in this report.

@katypies
Copy link
Contributor

For number of domains and the domain list, this should include ones the user is invited to and does not manage correct?

Yes, but with the following caveat (just to be clear):

  • If they're already a member of the portfolio, and have been added to a domain, they should just be added, not invited, to the domain, so there aren't any invited/not yet managing domains to show for folks who are active.

@h-m-f-t
Copy link
Member

h-m-f-t commented Oct 24, 2024

Removing refinement and calling it ready based on these last comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🎯 Ready
Development

No branches or pull requests

5 participants