def options(self, context, module_options):
        """
        Be carefull, this module cannot read the DACLS recursively. For example, if an object has particular rights because it belongs to a group, the module will not be able to see it directly, you have to check the group rights manually.
        TARGET          The objects that we want to read or backup the DACLs, sepcified by its SamAccountName
        TARGET_DN       The object that we want to read or backup the DACL, specified by its DN (usefull to target the domain itself)
        PRINCIPAL       The trustee that we want to filter on
        ACTION          The action to realise on the DACL (read, backup)
        ACE_TYPE        The type of ACE to read (Allowed or Denied)
        RIGHTS          An interesting right to filter on ('FullControl', 'ResetPassword', 'WriteMembers', 'DCSync')
        RIGHTS_GUID     A right GUID that specify a particular rights to filter on
        """
        self.context = context

        if not module_options:
            context.log.fail("Select an option, example: -M daclread -o TARGET=Administrator ACTION=read")
            exit(1)

        if module_options and "TARGET" in module_options:
            if re.search(r"^(.+)\/([^\/]+)$", module_options["TARGET"]) is not None:
                try:
                    self.target_file = open(module_options["TARGET"], "r")
                    self.target_sAMAccountName = None
                except Exception as e:
                    context.log.fail("The file doesn't exist or cannot be openned.")
            else:
                self.target_sAMAccountName = module_options["TARGET"]
                self.target_file = None
            self.target_DN = None
        self.target_SID = None
        if module_options and "TARGET_DN" in module_options:
            self.target_DN = module_options["TARGET_DN"]
            self.target_sAMAccountName = None
            self.target_file = None

        if module_options and "PRINCIPAL" in module_options:
            self.principal_sAMAccountName = module_options["PRINCIPAL"]
        else:
            self.principal_sAMAccountName = None
        self.principal_sid = None

        if module_options and "ACTION" in module_options:
            self.action = module_options["ACTION"]
        else:
            self.action = "read"
        if module_options and "ACE_TYPE" in module_options:
            self.ace_type = module_options["ACE_TYPE"]
        else:
            self.ace_type = "allowed"
        if module_options and "RIGHTS" in module_options:
            self.rights = module_options["RIGHTS"]
        else:
            self.rights = None
        if module_options and "RIGHTS_GUID" in module_options:
            self.rights_guid = module_options["RIGHTS_GUID"]
        else:
            self.rights_guid = None
        self.filename = None

        Be carefull, this module cannot read the DACLS recursively. For example, if an object has particular rights because it belongs to a group, the module will not be able to see it directly, you have to check the group rights manually.
        TARGET          The objects that we want to read or backup the DACLs, sepcified by its SamAccountName
        TARGET_DN       The object that we want to read or backup the DACL, specified by its DN (usefull to target the domain itself)
        PRINCIPAL       The trustee that we want to filter on
        ACTION          The action to realise on the DACL (read, backup)
        ACE_TYPE        The type of ACE to read (Allowed or Denied)
        RIGHTS          An interesting right to filter on ('FullControl', 'ResetPassword', 'WriteMembers', 'DCSync')
        RIGHTS_GUID     A right GUID that specify a particular rights to filter on
        
cme/modules/daclread.py