diff --git a/services/identity/src/client_service.rs b/services/identity/src/client_service.rs --- a/services/identity/src/client_service.rs +++ b/services/identity/src/client_service.rs @@ -721,15 +721,6 @@ let platform_metadata = get_platform_metadata(&request)?; let message = request.into_inner(); - if message.user_id == AUTHORITATIVE_KEYSERVER_OWNER_USER_ID { - error!( - errorType = error_types::GRPC_SERVICES_LOG, - "Authoritative keyserver owner called RestoreUser RPC!" - ); - return Err(tonic::Status::failed_precondition( - tonic_status_messages::USE_V1_FLOW, - )); - } info!( "Attempting to restore user: {}", redact_sensitive_data(&message.user_id) diff --git a/services/identity/src/database/device_list.rs b/services/identity/src/database/device_list.rs --- a/services/identity/src/database/device_list.rs +++ b/services/identity/src/database/device_list.rs @@ -1382,8 +1382,8 @@ let allow_device_list_overwrite = singleton_device_list.last_primary_signature.is_some(); - if (!device_ids.is_empty() && !allow_device_list_overwrite) - || !devices_data.is_empty() + if (!device_ids.is_empty() || !devices_data.is_empty()) + && !allow_device_list_overwrite { warn!( "Tried creating singleton device list for already existing user diff --git a/services/identity/src/device_list.rs b/services/identity/src/device_list.rs --- a/services/identity/src/device_list.rs +++ b/services/identity/src/device_list.rs @@ -289,7 +289,11 @@ // verify keyserver device ID and device list length if let Some(keyserver_device_id) = expected_keyserver_device_id { if device_list.devices.len() != 2 { - debug!("Invalid device list length"); + debug!( + expected = 2, + actual = device_list.devices.len(), + "Invalid device list length" + ); return Err(Status::invalid_argument(INVALID_DEVICE_LIST)); } @@ -303,7 +307,11 @@ return Err(Status::invalid_argument(INVALID_DEVICE_LIST)); } } else if device_list.devices.len() != 1 { - debug!("Invalid device list length"); + debug!( + expected = 1, + actual = device_list.devices.len(), + "Invalid device list length" + ); return Err(Status::invalid_argument(INVALID_DEVICE_LIST)); } Ok(()) diff --git a/services/identity/src/grpc_services/authenticated.rs b/services/identity/src/grpc_services/authenticated.rs --- a/services/identity/src/grpc_services/authenticated.rs +++ b/services/identity/src/grpc_services/authenticated.rs @@ -2,7 +2,6 @@ use crate::comm_service::{backup, blob, tunnelbroker}; use crate::config::CONFIG; -use crate::constants::staff::AUTHORITATIVE_KEYSERVER_OWNER_USER_ID; use crate::database::{DeviceListRow, DeviceListUpdate, PlatformDetails}; use crate::device_list::validation::DeviceListValidator; use crate::device_list::SignedDeviceList; @@ -39,7 +38,7 @@ UploadOneTimeKeysRequest, UserDevicesPlatformDetails, UserIdentitiesRequest, UserIdentitiesResponse, }; -use super::protos::unauth::{DeviceType, Empty}; +use super::protos::unauth::Empty; #[derive(derive_more::Constructor)] pub struct AuthenticatedService { @@ -545,11 +544,6 @@ ) .await?; - if user_id == AUTHORITATIVE_KEYSERVER_OWNER_USER_ID { - self.log_out_authoritative_keyserver_owner().await?; - return Ok(Response::new(Empty {})); - } - // Get and verify singleton device list let parsed_device_list: SignedDeviceList = message.signed_device_list.parse()?; @@ -1281,43 +1275,6 @@ Ok(blob_client) } - /// for authoritatative keyserver owner, instead of primary device logout, - /// we should remove all devices but keyserver, remove backup - /// and create an unsigned device list update, effectively downgrading - /// the user back to v1 flows - async fn log_out_authoritative_keyserver_owner( - &self, - ) -> Result<(), tonic::Status> { - let user_id = AUTHORITATIVE_KEYSERVER_OWNER_USER_ID; - info!( - user_id = redact_sensitive_data(user_id), - "Performing authoritative keyserver owner logout." - ); - - let devices = self.db_client.get_current_devices(user_id).await?; - let keyserver_device_id = devices - .iter() - .find(|it| matches!(it.device_type(), DeviceType::Keyserver)) - .map(|keyserver| &keyserver.device_id); - - let new_device_list = if let Some(keyserver_id) = keyserver_device_id { - vec![keyserver_id.to_string()] - } else { - Vec::new() - }; - - let device_list_update = DeviceListUpdate::new_unsigned(new_device_list)?; - let validator = None::; - self - .db_client - .apply_devicelist_update(user_id, device_list_update, validator, true) - .await?; - - backup::delete_backup_user_data(user_id, &self.comm_auth_service).await?; - - Ok(()) - } - async fn get_current_device_list( &self, user_id: &str,