Пример #1
0
    def _build_user_dict(self, result_dict):
        """
        Creates a dictionary to append to the user results list, with
        arrangement based on configuration.
        """
        user = {}

        # Add 'firstname' and 'lastname' (if present)
        if self.config.get("dir_fname_source") not in (None, ""):
            user["firstname"] = result_dict.get(self.config["dir_fname_source"], [" "])[0]
        if self.config.get("dir_lname_source") not in (None, ""):
            user["lastname"] = result_dict.get(self.config["dir_lname_source"], [" "])[0]

        # Add 'email'
        if self.config.get("dir_email_source") not in (None, ""):
            user["email"] = result_dict[self.config["dir_email_source"]][0]
            user["username"] = result_dict[self.config["dir_username_source"]][0]
        else:
            user["email"] = result_dict[self.config["dir_username_source"]][0]

        # Add 'enabled'
        enabled_attrs_dict = {
            k: result_dict[k][0] if k in result_dict else "" for k in vendor.enabled_attrs(self.config)
        }
        user["enabled"] = vendor.check_enabled(self.config, enabled_attrs_dict)

        # Add 'uniqueid'
        guid_source = self.config.get("dir_guid_source", None)
        result_guid = result_dict.get(guid_source, None)
        if guid_source and result_guid:
            user["uniqueid"] = vendor.fix_guid(self.config, result_guid[0])

        return user
Пример #2
0
    def _create_attrlist(self):
        """
        Creates an LDAP search attribute list based on our configuration.
        """
        attrlist = [self.config["dir_username_source"].encode("utf-8"), self.config["dir_guid_source"].encode("utf-8")]

        def append_if_present(attr):
            attr_source = self.config.get(attr)
            if attr_source:
                attrlist.append(attr_source.encode("utf-8"))

        append_if_present("dir_fname_source")
        append_if_present("dir_lname_source")
        append_if_present("dir_email_source")

        attrlist.extend(vendor.enabled_attrs(self.config))
        return attrlist