def get_users()

in ees_microsoft_outlook/microsoft_exchange_server_user.py [0:0]


    def get_users(self):
        """Fetch users from Exchange Active Directory
        Returns:
            response: Fetched response from Exchange Active Directory
        """
        warnings.filterwarnings("ignore")
        try:
            server = Server(
                self.config.get_value("microsoft_exchange.active_directory_server")
            )
            conn = Connection(
                server,
                self.config.get_value("microsoft_exchange.username"),
                self.config.get_value("microsoft_exchange.password"),
                client_strategy=SAFE_SYNC,
                auto_bind=True,
            )

            domain_name_list = self.config.get_value("microsoft_exchange.domain").split(
                "."
            )
            ldap_domain_name_list = ["DC=" + domain for domain in domain_name_list]
            search_query = ",".join(map(str, ldap_domain_name_list))

            status, _, response, _ = conn.search(
                search_query,
                "(&(objectCategory=person)(objectClass=user)(givenName=*))",
                attributes=["mail"],
            )
            if status:
                return response
            else:
                raise Exception(
                    "Error while searching users from Exchange Active Directory."
                )
        except Exception as exception:
            raise Exception(
                f"Error while fetching users from Exchange Active Directory. Error: {exception}"
            )