Example #1
0
def handler(req):
    req.content_type = 'text/html'
    cookies = Cookie.get_cookies(req)
    brand('header', req)
    brand('middle', req)
    session_id = cookies['myemsl_session'].value
    #FIXME rename myemsl.eus_auth
    sql = "delete from myemsl.eus_auth where session_id=%(sid)s"
    try:
        cnx = myemsldb_connect(myemsl_schema_versions=['1.0'])
        cursor = cnx.cursor()
        cursor.execute(sql, {'sid': session_id})
        cnx.commit()
        req.write("You have successfully logged out.")
    except Exception, e:
        logger.warning("Unknown exception %s", e)
        req.write("Unknown issue during logout")
Example #2
0
def personinfo(user, person_id, dtype, writer):
	type = None
	person_id = int(person_id)
	sql = """
	select first_name, last_name, email_address, lower(network_id) from eus.users where person_id=%(person_id)s
	"""
	sys.stderr.write("SQL: %s\n" %(sql))
	cnx = myemsldb_connect(myemsl_schema_versions=['1.0'])
	cursor = cnx.cursor()
	cursor.execute(sql, {'person_id':person_id})
	rows = cursor.fetchall()
	for row in rows:
		if dtype:
			writer.write("<?xml version=\"1.0\"?>\n<myemsl>\n")
			writer.write("   <personid>%s</personid>\n" %(person_id))
			writer.write("   <firstname>%s</firstname>\n" %(xstr(row[0])))
			writer.write("   <lastname>%s</lastname>\n" %(xstr(row[1])))
			writer.write("   <emailaddress>%s</emailaddress>\n" %(row[2]))
			writer.write("   <networkid>%s</networkid>\n" %(xstr(row[3])))
			writer.write("</myemsl>\n")
		else:
       			brand('header', writer)
       			brand('middle', writer)
			writer.write("<table id=\"myemsl_personinfo_table\">\n")
			writer.write("<tr><td>Person ID</td><td>%s</dt></tr>\n" %(person_id))
			writer.write("<tr><td>First Name</td><td>%s</dt></tr>\n" %(xstr(row[0])))
			writer.write("<tr><td>Last Name</td><td>%s</dt></tr>\n" %(xstr(row[1])))
			writer.write("<tr><td>Email Address</td><td>%s</td></tr>\n" %(row[2]))
			writer.write("<tr><td>Network ID</td><td>%s</td></tr>\n" %(xstr(row[3])))
			writer.write("</table>\n")
       			brand('footer', writer)
	return 0
Example #3
0
def error(type, message, writer):
	if type:
		writer.write("<?xml version=\"1.0\"?><myemsl><error message=\"%s\"/></myemsl>\n" %(message))
	else:
		brand('header', writer)
		brand('middle', writer)
		writer.write("%s" %(message))
		brand('footer', writer)
Example #4
0
def handler(req):
	req.content_type = "text/html"
        brand('header', req)
	location = "https://%s%s" %(req.hostname, req.subprocess_env['REQUEST_URI'])
	req.write("<meta http-equiv=\"refresh\" content=\"0;url=%s\">" %(location))
        brand('middle', req)
	req.write("To login, you must go <a href=\"%s\">here.</a>" %(location))
        brand('footer', req)
	return apache.DONE
def error(type, message, writer):
    if type:
        writer.write(
            "<?xml version=\"1.0\"?><myemsl><error message=\"%s\"/></myemsl>\n"
            % (message))
    else:
        brand('header', writer)
        brand('middle', writer)
        writer.write("%s" % (message))
        brand('footer', writer)
def handler(req):
    req.content_type = "text/html"
    brand('header', req)
    location = "https://%s%s" % (req.hostname,
                                 req.subprocess_env['REQUEST_URI'])
    req.write("<meta http-equiv=\"refresh\" content=\"0;url=%s\">" %
              (location))
    brand('middle', req)
    req.write("To login, you must go <a href=\"%s\">here.</a>" % (location))
    brand('footer', req)
    return apache.DONE
Example #7
0
def error(dtype, message, writer):
    """
    This is a generic error helper function to output error messages in the appropriate form.
    """
    if dtype == 'text/xml':
        writer.write("<?xml version=\"1.0\"?><myemsl><error message=\"%s\"/></myemsl>\n" %(message))
    elif dtype == 'text/html':
        brand('header', writer)
        brand('middle', writer)
        writer.write("%s" %(message))
        brand('footer', writer)
    elif dtype == 'application/json':
        writer.write("{'error':'"+message+"'}")
    else:
        writer.write(message)
def error(dtype, message, writer):
    """
    This is a generic error helper function to output error messages in the appropriate form.
    """
    if dtype == 'text/xml':
        writer.write(
            "<?xml version=\"1.0\"?><myemsl><error message=\"%s\"/></myemsl>\n"
            % (message))
    elif dtype == 'text/html':
        brand('header', writer)
        brand('middle', writer)
        writer.write("%s" % (message))
        brand('footer', writer)
    elif dtype == 'application/json':
        writer.write("{'error':'" + message + "'}")
    else:
        writer.write(message)
Example #9
0
def personinfo(user, person_id, dtype, writer):
    type = None
    person_id = int(person_id)
    sql = """
	select first_name, last_name, email_address, lower(network_id) from eus.users where person_id=%(person_id)s
	"""
    sys.stderr.write("SQL: %s\n" % (sql))
    cnx = myemsldb_connect(myemsl_schema_versions=['1.0'])
    cursor = cnx.cursor()
    cursor.execute(sql, {'person_id': person_id})
    rows = cursor.fetchall()
    for row in rows:
        if dtype:
            writer.write("<?xml version=\"1.0\"?>\n<myemsl>\n")
            writer.write("   <personid>%s</personid>\n" % (person_id))
            writer.write("   <firstname>%s</firstname>\n" % (xstr(row[0])))
            writer.write("   <lastname>%s</lastname>\n" % (xstr(row[1])))
            writer.write("   <emailaddress>%s</emailaddress>\n" % (row[2]))
            writer.write("   <networkid>%s</networkid>\n" % (xstr(row[3])))
            writer.write("</myemsl>\n")
        else:
            brand('header', writer)
            brand('middle', writer)
            writer.write("<table id=\"myemsl_personinfo_table\">\n")
            writer.write("<tr><td>Person ID</td><td>%s</dt></tr>\n" %
                         (person_id))
            writer.write("<tr><td>First Name</td><td>%s</dt></tr>\n" %
                         (xstr(row[0])))
            writer.write("<tr><td>Last Name</td><td>%s</dt></tr>\n" %
                         (xstr(row[1])))
            writer.write("<tr><td>Email Address</td><td>%s</td></tr>\n" %
                         (row[2]))
            writer.write("<tr><td>Network ID</td><td>%s</td></tr>\n" %
                         (xstr(row[3])))
            writer.write("</table>\n")
            brand('footer', writer)
    return 0
Example #10
0
def iteminfo(user, item_id, dtype, writer):
    type = None
    item_id = int(item_id)
    (code, document) = myemsl.elasticsearch.item_auth(int(user), item_id)
    if code != 200 or document == None:
        if code == 403:
            error(dtype, "Permission Denied.", writer)
        else:
            error(dtype, "Could not find item.", writer)
        return code
    sql = """
	select type from myemsl.items where item_id=%(item_id)s
	"""
    sys.stderr.write("SQL: %s\n" % (sql))
    cnx = myemsldb_connect(myemsl_schema_versions=['1.0'])
    cursor = cnx.cursor()
    cursor.execute(sql, {'item_id': item_id})
    rows = cursor.fetchall()
    for row in rows:
        type = row[0]
    if type == None or type != 'file':
        error(dtype, "Permission Denied", writer)
        return 0
    if type == 'file':
        sql = """
		select name, myemsl.files.verified, aged, submitter, eus.users.first_name, eus.users.last_name, stime, subdir, size from myemsl.files, myemsl.transactions, eus.users where item_id=%(item_id)s and myemsl.transactions.transaction = myemsl.files.transaction and eus.users.person_id = myemsl.transactions.submitter
		"""
        sys.stderr.write("SQL: %s\n" % (sql))
        cnx = myemsldb_connect(myemsl_schema_versions=['1.3'])
        cursor = cnx.cursor()
        cursor.execute(sql, {'item_id': item_id})
        rows = cursor.fetchall()
        for row in rows:
            #FIXME subdirs
            subdir = row[7]
            if subdir:
                path = "%s/%s" % (row[7], row[0])
            else:
                path = row[0]
            path = urllib.quote(path)
            if dtype:
                writer.write("<?xml version=\"1.0\"?>\n<myemsl>\n")
                writer.write("   <itemid>%s</itemid>\n" % (item_id))
                writer.write("   <type>%s</type>\n" % (type))
                writer.write("   <filename>%s</filename>\n" % (row[0]))
                writer.write("   <size>%s</size>\n" % (row[8]))
                writer.write("   <verified>%s</verified>\n" % (row[1]))
                writer.write("   <aged>%s</aged>\n" % (row[2]))
                first = row[4]
                if not first:
                    first = ''
                last = row[5]
                if not last:
                    last = ''
                writer.write(
                    "   <submitter first=\"%s\" last=\"%s\" id=\"%s\"/>\n" %
                    (first, last, row[3]))
                writer.write("   <stime>%s</stime>\n" % (row[6]))
                writer.write("   <checksum>\n")
            else:
                brand('header', writer)
                brand('middle', writer)
                writer.write("<table id=\"myemsl_iteminfo_table\">\n")
                writer.write("<tr><td>Item ID</td><td>%s</dt></tr>\n" %
                             (item_id))
                writer.write("<tr><td>Type</td><td>%s</dt></tr>\n" % (type))
                #FIXME need to point to item server.
                writer.write(
                    "<tr><td>Filename</td><td><a href=\"/myemsl/files-basic/index.php?dir=item/%s/data/&file=%s\">%s</a></dt></tr>\n"
                    % (item_id, path, row[0]))
                writer.write("<tr><td>Size</td><td>%s</td></tr>\n" % (row[8]))
                writer.write("<tr><td>Verified</td><td>%s</td></tr>\n" %
                             (row[1]))
                writer.write("<tr><td>Aged</td><td>%s</td></tr>\n" % (row[2]))
                writer.write("<tr><td>Submitter</td><td>")
                if row[4]:
                    writer.write("%s " % (row[4]))
                if row[5]:
                    writer.write("%s " % (row[5]))
                writer.write("(%s)</td></tr>\n" % (row[3]))
                writer.write("<tr><td>Submit Time</td><td>%s</td></tr>\n" %
                             (row[6]))
            sql = """
			select hashtype, hashsum from myemsl.hashsums where item_id=%(item_id)i
			"""
            cursor2 = cnx.cursor()
            cursor2.execute(sql, {'item_id': item_id})
            srows = cursor2.fetchall()
            for srow in srows:
                if dtype:
                    tag = srow[0].lower()
                    writer.write("      <%s>%s</%s>\n" % (tag, srow[1], tag))
                else:
                    writer.write("<tr><td>%s</td><td>%s</td></tr>\n" %
                                 (srow[0], srow[1]))
            if dtype:
                writer.write("   </checksum>\n")
            else:
                writer.write(
                    "<tr><td id=\"myemsl_iteminfo_qr_label\">QR Code</td><td><img src=\"http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=https%%3A//my.emsl.pnl.gov/myemsl/qrs/item/%s\"></td></tr>\n"
                    % (item_id))
            if dtype:
                writer.write("</myemsl>\n")
            else:
                writer.write("</table>\n")
                brand('footer', writer)
    return 0
Example #11
0
from mod_python import apache
from mod_python import Cookie
from myemsl.dbconnect import myemsldb_connect
from myemsl.brand import brand

from myemsl.logging import getLogger

logger = getLogger(__name__)


#If you get here, you already have a valid session cookie.
def handler(req):
    req.content_type = 'text/html'
    cookies = Cookie.get_cookies(req)
    brand('header', req)
    brand('middle', req)
    session_id = cookies['myemsl_session'].value
    #FIXME rename myemsl.eus_auth
    sql = "delete from myemsl.eus_auth where session_id=%(sid)s"
    try:
        cnx = myemsldb_connect(myemsl_schema_versions=['1.0'])
        cursor = cnx.cursor()
        cursor.execute(sql, {'sid': session_id})
        cnx.commit()
        req.write("You have successfully logged out.")
    except Exception, e:
        logger.warning("Unknown exception %s", e)
        req.write("Unknown issue during logout")
    brand('footer', req)
    return apache.OK
Example #12
0
def iteminfo(user, item_id, dtype, writer):
	type = None
	item_id = int(item_id)
	(code, document) = myemsl.elasticsearch.item_auth(int(user), item_id)
	if code != 200 or document == None:
		if code == 403:
			error(dtype, "Permission Denied.", writer)
		else:
			error(dtype, "Could not find item.", writer)
		return code
	sql = """
	select type from myemsl.items where item_id=%(item_id)s
	"""
	sys.stderr.write("SQL: %s\n" %(sql))
	cnx = myemsldb_connect(myemsl_schema_versions=['1.0'])
	cursor = cnx.cursor()
	cursor.execute(sql, {'item_id':item_id})
	rows = cursor.fetchall()
	for row in rows:
		type = row[0]
	if type == None or type != 'file':
		error(dtype, "Permission Denied", writer)
		return 0
	if type == 'file':
		sql = """
		select name, myemsl.files.verified, aged, submitter, eus.users.first_name, eus.users.last_name, stime, subdir, size from myemsl.files, myemsl.transactions, eus.users where item_id=%(item_id)s and myemsl.transactions.transaction = myemsl.files.transaction and eus.users.person_id = myemsl.transactions.submitter
		"""
		sys.stderr.write("SQL: %s\n" %(sql))
		cnx = myemsldb_connect(myemsl_schema_versions=['1.3'])
		cursor = cnx.cursor()
		cursor.execute(sql, {'item_id':item_id})
		rows = cursor.fetchall()
		for row in rows:
#FIXME subdirs
			subdir = row[7]
			if subdir:
				path = "%s/%s" %(row[7], row[0])
			else:
				path = row[0]
			path = urllib.quote(path)
			if dtype:
				writer.write("<?xml version=\"1.0\"?>\n<myemsl>\n")
				writer.write("   <itemid>%s</itemid>\n" %(item_id))
				writer.write("   <type>%s</type>\n" %(type))
				writer.write("   <filename>%s</filename>\n" %(row[0]))
				writer.write("   <size>%s</size>\n" %(row[8]))
				writer.write("   <verified>%s</verified>\n" %(row[1]))
				writer.write("   <aged>%s</aged>\n" %(row[2]))
				first = row[4]
				if not first:
					first = ''
				last = row[5]
				if not last:
					last = ''
				writer.write("   <submitter first=\"%s\" last=\"%s\" id=\"%s\"/>\n" %(first, last, row[3]))
				writer.write("   <stime>%s</stime>\n" %(row[6]))
				writer.write("   <checksum>\n")
			else:
        			brand('header', writer)
        			brand('middle', writer)
				writer.write("<table id=\"myemsl_iteminfo_table\">\n")
				writer.write("<tr><td>Item ID</td><td>%s</dt></tr>\n" %(item_id))
				writer.write("<tr><td>Type</td><td>%s</dt></tr>\n" %(type))
				#FIXME need to point to item server.
				writer.write("<tr><td>Filename</td><td><a href=\"/myemsl/files-basic/index.php?dir=item/%s/data/&file=%s\">%s</a></dt></tr>\n" %(item_id, path, row[0]))
				writer.write("<tr><td>Size</td><td>%s</td></tr>\n" %(row[8]))
				writer.write("<tr><td>Verified</td><td>%s</td></tr>\n" %(row[1]))
				writer.write("<tr><td>Aged</td><td>%s</td></tr>\n" %(row[2]))
				writer.write("<tr><td>Submitter</td><td>")
				if row[4]:
					writer.write("%s " %(row[4]))
				if row[5]:
					writer.write("%s " %(row[5]))
				writer.write("(%s)</td></tr>\n" %(row[3]))
				writer.write("<tr><td>Submit Time</td><td>%s</td></tr>\n" %(row[6]))
			sql = """
			select hashtype, hashsum from myemsl.hashsums where item_id=%(item_id)i
			"""
			cursor2 = cnx.cursor()
			cursor2.execute(sql, {'item_id':item_id})
			srows = cursor2.fetchall()
			for srow in srows:
				if dtype:
					tag = srow[0].lower()
					writer.write("      <%s>%s</%s>\n" %(tag, srow[1], tag))
				else:
					writer.write("<tr><td>%s</td><td>%s</td></tr>\n" %(srow[0], srow[1]))
			if dtype:
				writer.write("   </checksum>\n")
			else:
				writer.write("<tr><td id=\"myemsl_iteminfo_qr_label\">QR Code</td><td><img src=\"http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=https%%3A//my.emsl.pnl.gov/myemsl/qrs/item/%s\"></td></tr>\n" %(item_id))
			if dtype:
				writer.write("</myemsl>\n")
			else:
				writer.write("</table>\n")
       				brand('footer', writer)
	return 0