Skip to content

Migrate non-reactive group/project member state to `provide/inject`

📖 What does this MR do?

Related to #324675 (closed)

This is the first of a series of MRs to migrate non-reactive state that is currently stored in a Vuex store to provide/inject. This specific MR migrates currentUserId, sourceId, and canManageMembers. The rest of the non-reactive state will be migrated in subsequent MRs. Two reasons for this change:

  1. Prepare for moving the group/project members view into one Vue app that uses GlTabs (&5616)
    • Currently the group/project members view is 4 separate Vue apps that use Bootstrap tabs. We would like to migrate to one Vue app that uses GlTabs. To do this we would move to using one Vuex store with modules. The less state there is in the Vuex store the easier this will be.
  2. Performance
    • Avoid adding setters and getters to state that does not need to be reactive.

💻 Local testing

  1. Create a group or project
  2. Navigate to that group or project -> "Members"
  3. Add a member using the form
  4. Change role, expiration date, etc

📷 Screenshots

Still works 🙂

Before After
group-members-before group-members-after

🚦 Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team
Edited by Peter Hegman

Merge request reports