Example #1
0
    def is_plugin_blacklisted_for_contenttype(self, plugin, parameters, data):

        blacklisted = False

        # is there a content type yet?
        if 'content_type_ss' in data:
            content_types = data['content_type_ss']
        elif 'content_type_ss' in parameters:
            content_types = parameters['content_type_ss']
        else:
            content_types = None

        if not isinstance(content_types, list):
            content_types = [content_types]

        # if content type check the plugins' blacklists
        if content_types:

            for content_type in content_types:

                # directory where the plugins' blacklist are
                blacklistdir = '/etc/opensemanticsearch/blacklist/' + plugin + '/'

                filename = blacklistdir + 'blacklist-contenttype'
                if os.path.isfile(filename):
                    if filter_blacklist.is_in_list(filename=filename,
                                                   value=content_type):
                        blacklisted = True

                if not blacklisted:
                    filename = blacklistdir + 'blacklist-contenttype-prefix'
                    if os.path.isfile(filename):
                        if filter_blacklist.is_in_list(filename=filename,
                                                       value=content_type,
                                                       match="prefix"):
                            blacklisted = True

                if not blacklisted:
                    filename = blacklistdir + 'blacklist-contenttype-suffix'
                    if os.path.isfile(filename):
                        if filter_blacklist.is_in_list(filename=filename,
                                                       value=content_type,
                                                       match="suffix"):
                            blacklisted = True

                if not blacklisted:
                    filename = blacklistdir + 'blacklist-contenttype-regex'
                    if os.path.isfile(filename):
                        if filter_blacklist.is_in_list(filename=filename,
                                                       value=content_type,
                                                       match="regex"):
                            blacklisted = True

                # check whitelists for plugin, if blacklisted but should not
                if blacklisted:
                    filename = blacklistdir + 'whitelist-contenttype'
                    if os.path.isfile(filename):
                        if filter_blacklist.is_in_list(filename=filename,
                                                       value=content_type):
                            blacklisted = False

                if blacklisted:
                    filename = blacklistdir + 'whitelist-contenttype-prefix'
                    if os.path.isfile(filename):
                        if filter_blacklist.is_in_list(filename=filename,
                                                       value=content_type,
                                                       match="prefix"):
                            blacklisted = False

                if blacklisted:
                    filename = blacklistdir + 'whitelist-contenttype-suffix'
                    if os.path.isfile(filename):
                        if filter_blacklist.is_in_list(filename=filename,
                                                       value=content_type,
                                                       match="suffix"):
                            blacklisted = False

                if blacklisted:
                    filename = blacklistdir + 'whitelist-contenttype-regex'
                    if os.path.isfile(filename):
                        if filter_blacklist.is_in_list(filename=filename,
                                                       value=content_type,
                                                       match="regex"):
                            blacklisted = False

        return blacklisted
	def is_plugin_blacklisted_for_contenttype(self, plugin, parameters, data):

		blacklisted = False

		# is there a content type yet?
		if 'content_type_ss' in data:
			content_types = data['content_type_ss']
		elif 'content_type_ss' in parameters:
			content_types = parameters['content_type_ss']
		else:
			content_types = None

		# if content type check the plugins' blacklists
		if content_types:
			
			if not isinstance(content_types, list):
				content_types = [content_types]
			
			for content_type in content_types:
	
				# directory where the plugins' blacklist are
				blacklistdir = '/etc/opensemanticsearch/blacklist/' + plugin + '/'
	
	
				filename = blacklistdir + 'blacklist-contenttype'
				if os.path.isfile(filename):
					if filter_blacklist.is_in_list(filename=filename, value=content_type):
						blacklisted = True
	
				if not blacklisted:
					filename = blacklistdir + 'blacklist-contenttype-prefix'
					if os.path.isfile(filename):
						if filter_blacklist.is_in_list(filename=filename, value=content_type, match="prefix"):
							blacklisted = True
				
				if not blacklisted:
					filename = blacklistdir + 'blacklist-contenttype-suffix'
					if os.path.isfile(filename):
						if filter_blacklist.is_in_list(filename=filename, value=content_type, match="suffix"):
							blacklisted = True
		
				if not blacklisted:
					filename = blacklistdir + 'blacklist-contenttype-regex'
					if os.path.isfile(filename):
						if filter_blacklist.is_in_list(filename=filename, value=content_type, match="regex"):
							blacklisted = True
	
	
				# check whitelists for plugin, if blacklisted but should not
				if blacklisted:
					filename = blacklistdir + 'whitelist-contenttype'
					if os.path.isfile(filename):
						if filter_blacklist.is_in_list(filename=filename, value=content_type):
							blacklisted = False
				
				if blacklisted:
					filename=blacklistdir + 'whitelist-contenttype-prefix'
					if os.path.isfile(filename):
						if filter_blacklist.is_in_list(filename=filename, value=content_type, match="prefix"):
							blacklisted = False
			
				if blacklisted:
					filename=blacklistdir + 'whitelist-contenttype-suffix'
					if os.path.isfile(filename):
						if filter_blacklist.is_in_list(filename=filename, value=content_type, match="suffix"):
							blacklisted = False
		
				if blacklisted:
					filename=blacklistdir + 'whitelist-contenttype-regex'
					if os.path.isfile(filename):
						if filter_blacklist.is_in_list(filename=filename, value=content_type, match="regex"):
							blacklisted = False
	

		return blacklisted