pablovarela / terraform-provider-slack

A Terraform Provider for Slack resources
GNU General Public License v3.0
49 stars 32 forks source link

Enable Deactivated User Search by Email #252

Open mw-root opened 1 month ago

mw-root commented 1 month ago

Description

This PR implements the bug described in #251.

GetUserByEmailContext is very fast but does not find deactivated users.

I've added a new func called searchByEmail that mirrors searchByName.

It is not used by default because it is quite slow when polling many users. Instead it is only called if GetUserByEmailContext fails with users_not_found and include_deactivated is true.

Example

Default Functionality

data "slack_user" "test" {
  email = "deactivated.user@domain.com"
}
╷
│ Error: not found deactivated.user@domain.com: users_not_found
│
│   with data.slack_user.test,
│   on main.tf line 1, in data "slack_user" "test":
│    1: data "slack_user" "test" {
│

Include Deactivated

data "slack_user" "test" {
  email               = "deactivated.user@domain.com"
  include_deactivated = true
}
output "slack_user" {
  value = data.slack_user.test
}
Changes to Outputs:
  + slack_user = {
      + email               = "deactivated.user@domain.com"
      + id                  = "UXXXXXXXX"
      + include_deactivated = true
      + name                = "deactivated.user"
    }