Skip to content
Snippets Groups Projects
  • David Robertson's avatar
    f7b034a2
    Consistently exclude from user_directory (#10960) · f7b034a2
    David Robertson authored
    * Introduce `should_include_local_users_in_dir`
    
    We exclude three kinds of local users from the user_directory tables. At
    present we don't consistently exclude all three in the same places. This
    commit introduces a new function to gather those exclusion conditions
    together. Because we have to handle local and remote users in different
    ways, I've made that function only consider the case of remote users.
    It's the caller's responsibility to make the local versus remote
    distinction clear and correct.
    
    A test fixup is required. The test now hits a path which makes db
    queries against the users table. The expected rows were missing, because
    we were using a dummy user that hadn't actually been registered.
    
    We also add new test cases to covert the exclusion logic.
    
    ----
    
    By my reading this makes these changes:
    
    * When an app service user registers or changes their profile, they will
      _not_ be added to the user directory. (Previously only support and
      deactivated users were excluded). This is consistent with the logic that
      rebuilds the user directory. See also [the discussion
      here](https://github.com/matrix-org/synapse/pull/10914#discussion_r716859548
    
    ).
    * When rebuilding the directory, exclude support and disabled users from
      room sharing tables. Previously only appservice users were excluded.
    * Exclude all three categories of local users when rebuilding the
      directory. Previously `_populate_user_directory_process_users` didn't do
      any exclusion.
    
    Co-authored-by: default avatarRichard van der Hoff <1389908+richvdh@users.noreply.github.com>
    f7b034a2
    History
    Consistently exclude from user_directory (#10960)
    David Robertson authored
    * Introduce `should_include_local_users_in_dir`
    
    We exclude three kinds of local users from the user_directory tables. At
    present we don't consistently exclude all three in the same places. This
    commit introduces a new function to gather those exclusion conditions
    together. Because we have to handle local and remote users in different
    ways, I've made that function only consider the case of remote users.
    It's the caller's responsibility to make the local versus remote
    distinction clear and correct.
    
    A test fixup is required. The test now hits a path which makes db
    queries against the users table. The expected rows were missing, because
    we were using a dummy user that hadn't actually been registered.
    
    We also add new test cases to covert the exclusion logic.
    
    ----
    
    By my reading this makes these changes:
    
    * When an app service user registers or changes their profile, they will
      _not_ be added to the user directory. (Previously only support and
      deactivated users were excluded). This is consistent with the logic that
      rebuilds the user directory. See also [the discussion
      here](https://github.com/matrix-org/synapse/pull/10914#discussion_r716859548
    
    ).
    * When rebuilding the directory, exclude support and disabled users from
      room sharing tables. Previously only appservice users were excluded.
    * Exclude all three categories of local users when rebuilding the
      directory. Previously `_populate_user_directory_process_users` didn't do
      any exclusion.
    
    Co-authored-by: default avatarRichard van der Hoff <1389908+richvdh@users.noreply.github.com>