|
3 | 3 | // SPDX-License-Identifier: AGPL-3.0-only
|
4 | 4 | // Please see LICENSE in the repository root for full details.
|
5 | 5 |
|
6 |
| -#![expect( |
7 |
| - clippy::overly_complex_bool_expr, |
8 |
| - reason = "This is temporary, to remove a few safe guards" |
9 |
| -)] |
10 |
| - |
11 | 6 | //! # Migration
|
12 | 7 | //!
|
13 | 8 | //! This module provides the high-level logic for performing the Synapse-to-MAS
|
@@ -311,13 +306,16 @@ async fn migrate_threepids(
|
311 | 306 | } = threepid_res.into_synapse("reading threepid")?;
|
312 | 307 | let created_at: DateTime<Utc> = added_at.into();
|
313 | 308 |
|
314 |
| - let username = synapse_user_id |
| 309 | + let Ok(username) = synapse_user_id |
315 | 310 | .extract_localpart(&state.server_name)
|
316 |
| - .into_extract_localpart(synapse_user_id.clone())? |
317 |
| - .to_owned(); |
| 311 | + .into_extract_localpart(synapse_user_id.clone()) |
| 312 | + .map(str::to_owned) |
| 313 | + else { |
| 314 | + // HACK matrix.org |
| 315 | + continue; |
| 316 | + }; |
318 | 317 | let Some(user_infos) = state.users.get(username.as_str()).copied() else {
|
319 |
| - if true || is_likely_appservice(&username) { |
320 |
| - // HACK can we do anything better |
| 318 | + if is_likely_appservice(&username) { |
321 | 319 | continue;
|
322 | 320 | }
|
323 | 321 | return Err(Error::MissingUserFromDependentTable {
|
@@ -402,8 +400,7 @@ async fn migrate_external_ids(
|
402 | 400 | .into_extract_localpart(synapse_user_id.clone())?
|
403 | 401 | .to_owned();
|
404 | 402 | let Some(user_infos) = state.users.get(username.as_str()).copied() else {
|
405 |
| - if true || is_likely_appservice(&username) { |
406 |
| - // HACK can we do anything better |
| 403 | + if is_likely_appservice(&username) { |
407 | 404 | continue;
|
408 | 405 | }
|
409 | 406 | return Err(Error::MissingUserFromDependentTable {
|
@@ -489,8 +486,7 @@ async fn migrate_devices(
|
489 | 486 | .into_extract_localpart(synapse_user_id.clone())?
|
490 | 487 | .to_owned();
|
491 | 488 | let Some(user_infos) = state.users.get(username.as_str()).copied() else {
|
492 |
| - if true || is_likely_appservice(&username) { |
493 |
| - // HACK can we do anything better |
| 489 | + if is_likely_appservice(&username) { |
494 | 490 | continue;
|
495 | 491 | }
|
496 | 492 | return Err(Error::MissingUserFromDependentTable {
|
@@ -593,8 +589,7 @@ async fn migrate_unrefreshable_access_tokens(
|
593 | 589 | .into_extract_localpart(synapse_user_id.clone())?
|
594 | 590 | .to_owned();
|
595 | 591 | let Some(user_infos) = state.users.get(username.as_str()).copied() else {
|
596 |
| - if true || is_likely_appservice(&username) { |
597 |
| - // HACK can we do anything better |
| 592 | + if is_likely_appservice(&username) { |
598 | 593 | continue;
|
599 | 594 | }
|
600 | 595 | return Err(Error::MissingUserFromDependentTable {
|
@@ -715,8 +710,7 @@ async fn migrate_refreshable_token_pairs(
|
715 | 710 | .into_extract_localpart(synapse_user_id.clone())?
|
716 | 711 | .to_owned();
|
717 | 712 | let Some(user_infos) = state.users.get(username.as_str()).copied() else {
|
718 |
| - if true || is_likely_appservice(&username) { |
719 |
| - // HACK can we do anything better |
| 713 | + if is_likely_appservice(&username) { |
720 | 714 | continue;
|
721 | 715 | }
|
722 | 716 | return Err(Error::MissingUserFromDependentTable {
|
@@ -832,5 +826,9 @@ fn transform_user(
|
832 | 826 | // e.g. read application service registration files.
|
833 | 827 | #[inline]
|
834 | 828 | fn is_likely_appservice(localpart: &str) -> bool {
|
| 829 | + // HACK(matrix.org): These are the namespaces we use on matrix.org |
835 | 830 | localpart.starts_with('_')
|
| 831 | + || localpart.starts_with("freenode_") |
| 832 | + || localpart.starts_with("slack_") |
| 833 | + || localpart.starts_with("torn_") |
836 | 834 | }
|
0 commit comments