Enterprise user list pages
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Self managed instances have access to a list of users on their system via the /admin/users pages. There is no real equivalent for Organizations on .com. This issue represents the first step in providing these same features to .com Organizations with a read only paginated list of .com Organization members.
An important consideration for this stage of work is to determine how we will keep the self managed and .com code base aligned.
User Ownership Architecture
The architecture of self managed is usually thought of in this way:
graph TD
subgraph Self managed instance
Users[(Users)]
end
In code this is represented very simply as some derivation of User.all. We namespace administration of these users within /admin/users.
The architecture on .com is more complicated because .com is multi-tenanted:
graph TD
subgraph .com instance
Group --- Provider --- Users --- Identities
Group --- Membership --- Users
end
subgraph Tenant IDP
SAML --- samluser
samluser[(Users)] -.- Users
SAML -.- Provider
end
The equivalent to User.all on .com would be Provider.users. The Provider is the creator of the User and provides the authentication link.
When we follow standard Ruby on Rails conventions we end up with a user management URL for a Provider of /providers/123/users.
Note that the group > membership > users complex does not directly represent user's within an Organization. We did initially try this with Group Managed Accounts (GMA) but was abandoned.
First step would be to produce the appropriate architecture like what I proposed with sitting under Provider. Second step would involve some kind of tech debt stage to align with the self managed code. It would not be as clean cut as that, but I want to highlight the effort required and the intention to keep the self managed and .com code aligned here.
It's also worth noting there's an overlap between the work we're doing and the list of billable members.