[PR #6383] [MERGED] [PM-28470] Implement revoke from organization #43626

Closed
opened 2026-04-23 22:17:06 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/6383
Author: @aj-rosado
Created: 1/20/2026
Status: Merged
Merged: 1/21/2026
Merged by: @aj-rosado

Base: mainHead: PM-28470/add-revoke-from-organization


📝 Commits (9)

  • bc27d94 Add revokeFromOrganization API endpoint
  • 08de763 Added clearMigration to VaultMigrationManager
  • 200cdf2 Wire navigation from MigrateToMyItems to LeaveOrganization
  • d672bb7 Update LeaveOrganization ViewModel to use RevokeFromOrganization endpoint
  • 6f62cf1 Created new RevokeFromOrganization result and properly named event related with revoke
  • 432b5cb Added SnackbarRelay.LEFT_ORGANIZATION to VaultViewModel
  • 74ef1ef Removed NavigateToVault from LeaveOrganization
  • ee1b6ce improved code readibility
  • 9f3fb96 Added comment explaining navigation

📊 Changes

21 files changed (+174 additions, -61 deletions)

View changed files

📝 app/src/main/kotlin/com/x8bit/bitwarden/data/auth/repository/AuthRepository.kt (+8 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/auth/repository/AuthRepositoryImpl.kt (+9 -0)
app/src/main/kotlin/com/x8bit/bitwarden/data/auth/repository/model/RevokeFromOrganizationResult.kt (+18 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultMigrationManager.kt (+6 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultMigrationManagerImpl.kt (+6 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/vaultunlocked/VaultUnlockedNavigation.kt (+12 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationNavigation.kt (+0 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationScreen.kt (+0 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationViewModel.kt (+22 -24)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsNavigation.kt (+1 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsScreen.kt (+4 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsViewModel.kt (+10 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModel.kt (+1 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultMigrationManagerTest.kt (+20 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationScreenTest.kt (+0 -8)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationViewModelTest.kt (+21 -14)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsScreenTest.kt (+9 -2)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsViewModelTest.kt (+7 -1)
📝 network/src/main/kotlin/com/bitwarden/network/api/AuthenticatedOrganizationApi.kt (+8 -0)
📝 network/src/main/kotlin/com/bitwarden/network/service/OrganizationService.kt (+7 -0)

...and 1 more files

📄 Description

🎟️ Tracking

https://bitwarden.atlassian.net/browse/PM-28470

📔 Objective

Added new Revoke from Organization endpoint, replaced leaveOrganization with RevokeFromOrganization endpoint.
Wired navigation from MigrateToMyItemsViewModel to the LeaveOrganizationViewModel

AuthenticatedOrganizationApi.kt - Added revokeFromOrganization endpoint
OrganizationService.kt - Added service interface method
OrganizationServiceImpl.kt - Added service implementation
AuthRepository.kt - Added revokeFromOrganization interface method
AuthRepositoryImpl.kt - Added repository implementation (no longer has leaveOrganization removed - both exist!)
VaultMigrationManager.kt - Added clearMigrationState() method
VaultMigrationManagerImpl.kt - Implemented clearMigrationState()
LeaveOrganizationViewModel.kt - Calls clearMigrationState() on success
MigrateToMyItemsViewModel.kt - Removed unused OrganizationService dependency
MigrateToMyItemsScreen.kt - Updated callback signature to accept org params
MigrateToMyItemsNavigation.kt - Updated destination signature
VaultUnlockedNavigation.kt - Wired up navigation to LeaveOrganization with params
VaultMigrationManagerTest.kt - Added test for clearMigrationState()
LeaveOrganizationViewModelTest.kt - Added verification for state clearing
MigrateToMyItemsViewModelTest.kt - Fixed event structure tests
MigrateToMyItemsScreenTest.kt - Updated callback signatures

📸 Screenshots

Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team

🦮 Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or ℹ️ (:information_source:) for notes or general info
  • (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • (:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/bitwarden/android/pull/6383 **Author:** [@aj-rosado](https://github.com/aj-rosado) **Created:** 1/20/2026 **Status:** ✅ Merged **Merged:** 1/21/2026 **Merged by:** [@aj-rosado](https://github.com/aj-rosado) **Base:** `main` ← **Head:** `PM-28470/add-revoke-from-organization` --- ### 📝 Commits (9) - [`bc27d94`](https://github.com/bitwarden/android/commit/bc27d941fc9667d5768407bc00cb429732834e45) Add revokeFromOrganization API endpoint - [`08de763`](https://github.com/bitwarden/android/commit/08de763e4e247ab1dabb282f42f590df32482e2e) Added clearMigration to VaultMigrationManager - [`200cdf2`](https://github.com/bitwarden/android/commit/200cdf251e229ae0acb0bbf0e3f0c3b561c71ea4) Wire navigation from MigrateToMyItems to LeaveOrganization - [`d672bb7`](https://github.com/bitwarden/android/commit/d672bb75e7c0d5cd3972b6568d7f30e59e1d5190) Update LeaveOrganization ViewModel to use RevokeFromOrganization endpoint - [`6f62cf1`](https://github.com/bitwarden/android/commit/6f62cf149c28e0ae3863f58254555b047c7c5269) Created new RevokeFromOrganization result and properly named event related with revoke - [`432b5cb`](https://github.com/bitwarden/android/commit/432b5cb7158502f1e2bcf5d8eb6b6137385bdf8e) Added SnackbarRelay.LEFT_ORGANIZATION to VaultViewModel - [`74ef1ef`](https://github.com/bitwarden/android/commit/74ef1efa8961818de36be2b1d526d4725449bd64) Removed NavigateToVault from LeaveOrganization - [`ee1b6ce`](https://github.com/bitwarden/android/commit/ee1b6ce547ae78977f44d2fd98a737ecd760d7cd) improved code readibility - [`9f3fb96`](https://github.com/bitwarden/android/commit/9f3fb9605b85371440695e199840c18457ed6258) Added comment explaining navigation ### 📊 Changes **21 files changed** (+174 additions, -61 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/auth/repository/AuthRepository.kt` (+8 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/auth/repository/AuthRepositoryImpl.kt` (+9 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/data/auth/repository/model/RevokeFromOrganizationResult.kt` (+18 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultMigrationManager.kt` (+6 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultMigrationManagerImpl.kt` (+6 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/vaultunlocked/VaultUnlockedNavigation.kt` (+12 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationNavigation.kt` (+0 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationScreen.kt` (+0 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationViewModel.kt` (+22 -24) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsNavigation.kt` (+1 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsScreen.kt` (+4 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsViewModel.kt` (+10 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModel.kt` (+1 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultMigrationManagerTest.kt` (+20 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationScreenTest.kt` (+0 -8) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/leaveorganization/LeaveOrganizationViewModelTest.kt` (+21 -14) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsScreenTest.kt` (+9 -2) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/migratetomyitems/MigrateToMyItemsViewModelTest.kt` (+7 -1) 📝 `network/src/main/kotlin/com/bitwarden/network/api/AuthenticatedOrganizationApi.kt` (+8 -0) 📝 `network/src/main/kotlin/com/bitwarden/network/service/OrganizationService.kt` (+7 -0) _...and 1 more files_ </details> ### 📄 Description ## 🎟️ Tracking https://bitwarden.atlassian.net/browse/PM-28470 ## 📔 Objective Added new Revoke from Organization endpoint, replaced leaveOrganization with RevokeFromOrganization endpoint. Wired navigation from MigrateToMyItemsViewModel to the LeaveOrganizationViewModel **AuthenticatedOrganizationApi.kt** - Added revokeFromOrganization endpoint **OrganizationService.kt** - Added service interface method **OrganizationServiceImpl.kt** - Added service implementation **AuthRepository.kt** - Added revokeFromOrganization interface method **AuthRepositoryImpl.kt** - Added repository implementation (no longer has leaveOrganization removed - both exist!) **VaultMigrationManager.kt** - Added clearMigrationState() method **VaultMigrationManagerImpl.kt** - Implemented clearMigrationState() **LeaveOrganizationViewModel.kt** - Calls clearMigrationState() on success **MigrateToMyItemsViewModel.kt** - Removed unused OrganizationService dependency **MigrateToMyItemsScreen.kt** - Updated callback signature to accept org params **MigrateToMyItemsNavigation.kt** - Updated destination signature **VaultUnlockedNavigation.kt** - Wired up navigation to LeaveOrganization with params **VaultMigrationManagerTest.kt** - Added test for clearMigrationState() **LeaveOrganizationViewModelTest.kt** - Added verification for state clearing **MigrateToMyItemsViewModelTest.kt** - Fixed event structure tests **MigrateToMyItemsScreenTest.kt** - Updated callback signatures ## 📸 Screenshots <!-- Required for any UI changes; delete if not applicable. Use fixed width images for better display. --> ## ⏰ Reminders before review - Contributor guidelines followed - All formatters and local linters executed and passed - Written new unit and / or integration tests where applicable - Protected functional changes with optionality (feature flags) - Used internationalization (i18n) for all UI strings - CI builds passed - Communicated to DevOps any deployment requirements - Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team ## 🦮 Reviewer guidelines <!-- Suggested interactions but feel free to use (or not) as you desire! --> - 👍 (`:+1:`) or similar for great changes - 📝 (`:memo:`) or ℹ️ (`:information_source:`) for notes or general info - ❓ (`:question:`) for questions - 🤔 (`:thinking:`) or 💭 (`:thought_balloon:`) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion - 🎨 (`:art:`) for suggestions / improvements - ❌ (`:x:`) or ⚠️ (`:warning:`) for more significant problems or concerns needing attention - 🌱 (`:seedling:`) or ♻️ (`:recycle:`) for future improvements or indications of technical debt - ⛏ (`:pick:`) for minor or nitpick changes --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-23 22:17:06 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#43626