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")
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
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
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
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)
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
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
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
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