#!/usr/bin/env python import psycopg import Settings class InvalidDomain(Exception): """This Exception is thrown if an invalid domain is used.""" def __init__(self, domain): self.domain = domain def __str__(self): return repr("Invalid domain %s" % (self.domain)) def validate_domain(domain): """This function validates whether the given domain is allowed. That means that the domain needs to be registered in the database. If the domain is invalid InvalidDomain is raised.""" cnx = psycopg.connect("user=%(dbuser)s password=%(dbpassword)s dbname=%(dbname)s" % Settings.dbsettings) cr = cnx.cursor() cr.execute("SELECT * FROM domain WHERE domainname=%(name)s" % {'name': psycopg.QuotedString(domain)}) cnx.commit() result = cr.fetchall() if (not result): raise InvalidDomain(domain)