def verifyUserPass(): db = pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) # could not connect to db if db['status'] != 'success': message= "Can not connect to database,\n" + db['message'] pmt_utils.alertsArea(form,message) displayLogin(form) sys.exit(1) status, details = db_authentication.password_valid(db['result'], crypt_salt=db_name, username=username, password=password) if status != 'success': displayLogin(form,details) sys.exit(1) cvs_web_priv=pmt_utils.hasPriv(db['result'],username,'cvs_web') cvs_export_priv=pmt_utils.hasPriv(db['result'],username,'cvs_export') if cvs_web_priv==0 and cvs_export_priv==0: message='User %s does not have access to CVS' % username displayLogin(form, message) sys.exit() return cvs_web_priv,cvs_export_priv
def doEdit(): status, table_data, db = pageInit("Edit", formJS=1) if status != 'success': message = "Could not connect to the database\n" + status exit(message.table_data, db) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details, table_data, db) sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'ecp', form["key_id"].value) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': message = "Could not retrieve item.\n" + dbResult['message'] exit(message, table_data, db) result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'ecp', result[0]) display_questionnaire(db, table_data, 'edit') pmt_utils.alertsArea(form, "Item data retrieved successfully") del_priv = pmt_utils.hasPriv(db, username, 'del_ecp') list_url = '/%s-cgi-bin/ecp_admin.pyc?performDbQuery=1' % (db_name) help_url = "/%s/html/ecp_intro.html" % db_name editFunctionButtons(form["key_id"].value, list_url, help_url, del_priv) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pmt_utils.textbox(None, 'analyst_signature', table_data['ecp']['analyst_signature']['value'], '40', '40', None, None, 'hidden') pmt_utils.textbox(None, 'swm_analysis_signature', table_data['ecp']['swm_analysis_signature']['value'], '40', '40', None, None, 'hidden') pmt_utils.textbox(None, 'swm_completion_signature', table_data['ecp']['swm_completion_signature']['value'], '40', '40', None, None, 'hidden') pmt_utils.textbox(None, 'gccb_signature', table_data['ecp']['gccb_signature']['value'], '40', '40', None, None, 'hidden') pmt_utils.textbox(None, 'ccb_signature', table_data['ecp']['ccb_signature']['value'], '40', '40', None, None, 'hidden') pmt_utils.textbox(None, 'qa_completion_signature', table_data['ecp']['qa_completion_signature']['value'], '40', '40', None, None, 'hidden') pmt_utils.textbox(None, 'test_completion_signature', table_data['ecp']['test_completion_signature']['value'], '40', '40', None, None, 'hidden') pageEnd(table_data, db)
def query_project_members(performDbQuery=0,onLoad=None,queryFields=None): status,table_data,db=pageInit('Members',formJS=0) if status != 'success': message='Could not connect to database.\n%s' % status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) # Check for user admin privileges if pmt_utils.hasPriv(db, username,'user_admin')!=1: message='User %s does not have user admin privileges.' % username exit(message) queryFields,whereFields=pmt_utils.getQueryWhereFields(form, table_data, 'project_members') if queryFields == None or queryFields == []: queryFields = [] whereFields = None queryFields.append('first_name') queryFields.append('last_name') queryFields.append('phone_number_voice') dbResult,queryStatement=pmt_utils.executeQuery(db, table_data, 'project_members', queryFields, whereFields, 'query', queryItemFunctionsHtml, 'ORDER by last_name', ['id'], None,None, "return execute('query')", ["",""]) if dbResult['status'] != 'success': message="Could not get member data from db.\n%s" % dbResult['message'] exit(message) msg="Last Query Statement: %s\n" % queryStatement msg=msg+"%s project members retrieved from db" % `len(dbResult['result'])` pmt_utils.alertsArea(form,msg) # Add buttons and hidden fields help_url='/%s/html/contactsum.html' % db_name pmt_utils.queryFunctionButtons(1,help_url) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data,db)
def query_spr(performDbQuery=0, onLoad=None, queryFields=None): status,table_data,db=pageInit('Problem Reports',formJS=0) if status != 'success': message="Can not connect to database.\n%s" % status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) queryFields, whereFields = pmt_utils.getQueryWhereFields(form, table_data, 'spr') if queryFields == None or queryFields == []: queryFields = [] whereFields = None queryFields.append('id') queryFields.append('gist') queryFields.append('spr_status') queryFields.append('assigned_to') ignore_fields = ['analyst_signature_function', 'swm_analysis_signature_function', 'swm_completion_signature_function', 'test_completion_signature_function', 'cm_completion_signature_function', 'qa_completion_signature_function'] del_priv=pmt_utils.hasPriv(db, username, 'del_spr') dbResult,queryStatement=pmt_utils.executeQuery(db, table_data, 'spr', queryFields, whereFields, 'query', queryItemFunctionsHtml, 'ORDER by int4(id)', ['id','originator'], None, ignore_fields, "return execute('query')", ["","",del_priv]) if dbResult['status'] != 'success': message="Could not retrieve spr data from db.\n" + dbResult['message'] exit(message) msg="Last Query Statement: %s\n" % queryStatement msg=msg+"%s items retrieved from database." % `len(dbResult['result'])` exit(msg,table_data,db,display_login=0)
def verifyUserPass(db): status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': displayLogin(form, details) #pmt_utils.alertsArea(form, details) sys.exit(1) if pmt_utils.hasPriv(db, username, 'list_docs') != 1: message = 'User %s does not have access to view Data Items' % username displayLogin(form, message) sys.exit(1)
def query_ecp(performDbQuery=0, onLoad=None, queryFields=None): status, table_data, db = pageInit('Change Proposals', formJS=0) if status != 'success': message = "Cannot connect to db.\n%s" % status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) queryFields, whereFields = pmt_utils.getQueryWhereFields( form, table_data, 'ecp') if queryFields == None or queryFields == []: queryFields = [] whereFields = None queryFields.append('id') queryFields.append('change_name') queryFields.append('ecp_status') ignore_fields = [ 'analyst_signature_function', 'swm_analysis_signature_function', 'swm_completion_signature_function', 'ccb_signature_function', 'gccb_signature_function', 'qa_completion_signature_function' ] del_priv = pmt_utils.hasPriv(db, username, 'del_ecp') dbResult, queryStatement = pmt_utils.executeQuery( db, table_data, 'ecp', queryFields, whereFields, 'query', queryItemFunctionsHtml, 'ORDER by int4(id)', ['id', 'originator'], None, ignore_fields, "return execute('query')", ["", "", del_priv]) if dbResult['status'] != 'success': message = "Unable to get ECP data from db.\n" + dbResult['message'] exit(message) message = "Last Query Statement: %s\n" % queryStatement message = message + ` len(dbResult['result']) ` + " items retrieved." exit(message, table_data, db, login_display=0)
def exit(message, table_data=None, db=None, login_display=1): if login_display: pmt_utils.usernamePasswordDisplay() pmt_utils.alertsArea(form, message) if username != None and db != None: create_priv = pmt_utils.hasPriv(db, username, 'create_ecp') else: create_priv = 0 queryFunctionButtons(create_priv, 0, '/%s/html/ecpsum.html' % db_name) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') if table_data != None and db != None: pageEnd(table_data, db) sys.exit()
def exit(message,table_data=None,db=None): pmt_utils.usernamePasswordDisplay(username) pmt_utils.alertsArea(form, message); if username!=None and db!=None: create_priv=pmt_utils.hasPriv(db,username,'user_admin') else: create_priv=0 url='/%s/html/contactsum.html' % db_name pmt_utils.queryFunctionButtons(create_priv, url) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') if table_data!=None and db!=None: pageEnd(table_data,db) sys.exit()
def query_inventory(performDbQuery=0, onLoad=None, queryFields=None): status, table_data, db = pageInit('Inventory', formJS=0) if status != 'success': message = "Can not connect to database.\n%s" % status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) queryFields, whereFields = pmt_utils.getQueryWhereFields( form, table_data, 'inventory') if queryFields == None or queryFields == []: queryFields = [] whereFields = None queryFields.append('quantity') queryFields.append('part_number') queryFields.append('description') queryFields.append('unit_price') ignore_fields = [] del_priv = pmt_utils.hasPriv(db, username, 'del_inv') dbResult, queryStatement = pmt_utils.executeQuery( db, table_data, 'inventory', queryFields, whereFields, 'query', queryItemFunctionsHtml, 'ORDER by int4(id)', ['id'], None, ignore_fields, "return execute('query')", ["", "", del_priv]) if dbResult['status'] != 'success': message = "Could not retrieve inv data from db.\n" + dbResult['message'] exit(message) msg = "Last Query Statement: %s\n" % queryStatement msg = msg + "%s items retrieved from database." % ` len( dbResult['result']) ` exit(msg, table_data, db)
def verifyUserPass(): db = pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) # could not connect to db if db['status'] != 'success': displayLogin("Can not connect to database,\n" + db['message']) sys.exit(1) status, details = db_authentication.password_valid(db['result'], crypt_salt=db_name, username=username, password=password) if status != 'success': displayLogin(details) sys.exit(1) if pmt_utils.hasPriv(db['result'],username,'upload')==0: displayLogin('User %s does not have upload privileges' % username) sys.exit()
def query_pai(performDbQuery=0, onLoad=None, queryFields=None): status, table_data, db = pageInit("Action Items", formJS=0) if status != 'success': message = "Can not connect to database.\n%s" % status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) queryFields, whereFields = pmt_utils.getQueryWhereFields( form, table_data, 'pai') if queryFields == None or queryFields == []: queryFields = [] whereFields = None queryFields.append('id') queryFields.append('gist') queryFields.append('assigned_to') del_priv = pmt_utils.hasPriv(db, username, 'del_pai') dbResult, queryStatement = pmt_utils.executeQuery( db, table_data, 'pai', queryFields, whereFields, 'query', queryItemFunctionsHtml, 'ORDER by int4(id)', ['id', 'originator'], None, None, "return execute('query')", ["", "", del_priv]) if dbResult['status'] != 'success': message = "Could not get pai data from db.\n" + dbResult['message'] exit(message) msg = "Last Query Statement: %s\n" % queryStatement msg = msg + "%s action items retrieved from db" % ` len( dbResult['result']) ` exit(msg, table_data, db, display_login=0)
def doEdit(): status, table_data, db = pageInit('Edit', formJS=1) if status != 'success': message = "Could not connect to the database.\n" + status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'pai', form["key_id"].value) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': message = "Could not retrieve action item to edit.\n" + dbResult[ 'message'] exit(message) result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'pai', result[0]) pmt_utils.display_form(table_data, 'pai', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Action item data retrieved successfully") listing_url = '/%s-cgi-bin/pai_admin.pyc?performDbQuery=1' % (db_name) help_url = '/%s/html/pai_intro.html' % (db_name) del_priv = pmt_utils.hasPriv(db, username, 'del_pai') editFunctionButtons(form["key_id"].value, listing_url, help_url, del_priv) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data, db)
def verifyUserPass(db): status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': print "<form method=post>" pmt_utils.usernamePasswordDisplay() pmt_utils.alertsArea(form, details) print "<hr><INPUT TYPE='submit' NAME='submit' value='Submit' >" print "</form>" sys.exit(1) if pmt_utils.hasPriv(db, username, 'project_data')!=1: print "<form method=post>" pmt_utils.usernamePasswordDisplay() message='User %s does not have access to view Data Items' % username pmt_utils.alertsArea(form, message) print "<hr><INPUT TYPE='submit' NAME='submit' value='Submit' >" print "</form>" sys.exit(1)
print '<img src=/%s/icons/logout.gif usemap="#logout" border=0><br>' % db print '<map name=file_exchange>' print ' <area shape=rect coords="0,0,100,16" href="/%s-cgi-bin/list_docs.pyc" target="siteInfo"></map>' % db print '<map name=top>' print ' <area shape=rect coords="0,23,100,39" href="http://www.linuxden.com" target="_top">' print ' <area shape=rect coords="0,40,100,56" href="http://www.linuxden.com" target="_top">' print ' <area shape=rect coords="0,57,100,73" href="/index.html" target="_top"></map>' print '<map name=logout>' parms = "'/%s-cgi-bin/login.pyc?logout=1','LogOut',475,200" % db print '''<area shape=rect coords="0,0,100,16" onClick="return popup(%s)" target="siteInfo"></map>''' % parms finishPage() sys.exit() print '<img src=/%s/icons/contact_list.gif usemap="#contact_list" border=0><br>' % db if db == 'pmtdemo': if pmt_utils.hasPriv(DB, username, 'cust_admin') == 1: print '<img src=/%s/icons/customers.gif usemap="#customers" border=0><br>' % db if db in ['pmtdemo']: if pmt_utils.hasPriv(DB, username, 'view_wiki') == 1: print '<img src=/%s/icons/data_items.gif usemap="#data_items" border=0><br>' % db if pmt_utils.hasPriv(DB, username, 'cvs_web') == 1 or pmt_utils.hasPriv( DB, username, 'cvs_export') == 1: print '<img src=/%s/icons/dev_lib.gif usemap="#dev_lib" border=0><br>' % db print '<img src=/%s/icons/action_items.gif usemap="#action_items" border=0><br>' % db print '<img src=/%s/icons/problem_reports.gif usemap="#problem_reports" border=0><br>' % db print '<img src=/%s/icons/change_props.gif usemap="#change_props" border=0><br>' % db if pmt_utils.hasPriv(DB, username, 'view_task') == 1:
def display_form(display_files=0,alerts=None): print "<HTML>" print "<HEAD>" pmt_utils.javaScript("doc_maintenance") pmt_utils.title("Documentation Maintenance") print "</HEAD>" pmt_utils.bodySetup() pmt_utils.mainHeading('Documentation Maintenance') pmt_utils.subHeading('Create and Delete Folders/Files') pmt_utils.formSetup("doc_maintenance",db_name,"doc_maintenance",None) dbResult=pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) if dbResult['status']!='success': exit(dbResult['message']) db=dbResult['result'] status,details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status!='success': exit(details) if not pmt_utils.hasPriv(db,username,'folder_admin'): msg="User %s does not have folder maintenance priviledges" % username exit(msg) print '<hr><br><CENTER><B>Delete Folders/Files</B></CENTER>' stripped_db=string.lower(string.strip(db_name)) os.chdir(os.path.join('/home',stripped_db,'documents')) file_list = os_utils.walk_list_files( directory_name='.', list_only_files=0, exclude_list = [], include_file_type=1) if len(file_list) > 25: list_size = 25 else: list_size = len(file_list) print '<BLINK><B>WARNING:</B></BLINK><br>' print 'Any folders or files that you select for deletion are ' print 'permanently deleted. You should have a local backup of ' print 'any folders/files you delete in case you really did not mean ' print 'to delete. Backups are crucial. You have been warned.' print '<p>Selecting a folder will delete the folder and all files ' print 'under it including sub folders. ' print 'Select folder names with caution.' print '<p>Your deletes will not be confirmed. ' print 'When you press [Delete Folders/Files] your files are deleted.' print '<BR><CENTER><B>Select folders/files to delete</B>:<BR>' print '<SELECT NAME="files_to_remove" SIZE="8" MULTIPLE>' for curfile in file_list: print '<OPTION>%s' % (curfile) print "</SELECT><br>" java_call="return execute('delete_folder','1')" print '<input name="delete_folder" type="button" ' print 'value=" Delete Folders/Files " onClick="%s">' % java_call print '<input name ="website_name_hidden" ' print 'type="hidden" value="%s">' % (db_name) print "<hr><BR><BR>" print '<CENTER><B>Create Folder</B></CENTER><BR>' print '<B>Folder Name</B>: ' print '<input name="folder" type="text" size="50" maxlength="100"><BR>' java_call="return execute('create','1')" print '<input name="create" type="button" ' print 'value=" Create Folder " onClick="%s">' % java_call print '<input name ="website_name_hidden" ' print 'type="hidden" value="%s"><hr>' % (db_name) if alerts != None: pmt_utils.alertsArea(form,alerts) print '</CENTER>' pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'key_id', '1', '10', '10', None, None,'hidden') print '</form>' print '<p align="right">' print '<A HREF="mailto:[email protected]">Contact Support Team</a>' print "</body></html>"
def doUpload(): email_msg=html_msg='' dbResult = pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) # could not connect to db if dbResult['status'] != 'success': upload_results('Can not verify you as a valid user<BR>', 'Can not verify you as a valid user', form) sys.exit() db = dbResult['result'] # check for valid login status, details =db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': pmt_utils.bodySetup() pmt_utils.alerts(form, 'Can not verify username/password') print '<hr><form method=post action=/%s-cgi-bin/upload.pyc>' % db_name print '<input name=back value="Back to Upload" type=submit>' print '</body>' sys.exit() if pmt_utils.hasPriv(db, username, 'upload')!=1: pmt_utils.bodySetup() pmt_utils.alerts(form, 'User %s does not have upload privileges' % username) print '<hr><form method=post action=/%s-cgi-bin/upload.pyc>' % db_name print '<input name=back value="Back to Upload" type=submit>' print '</body>' sys.exit() # check for valid upload site if not os.path.exists('/home/%s' % db_name): html_msg=html_msg+"Upload site %s does not exist.<BR>" % db_name html_msg=html_msg+"No archive file was uploaded.<BR>" email_msg=email_msg+"Upload site %s does not exist.\n" % db_name email_msg=email_msg+"No archive file was uploaded.\n" upload_results(html_msg, email_msg, form) sys.exit() # format destination for upload if not form.has_key('folder'): destination = '' else: if form['folder'].value == '/': destination = '' else: destination = form['folder'].value + '/' if form.has_key('archive'): # check for filesize is within allowable range archive_size = len(form['archive'].value) if archive_size == 0: msg="Suspicious archive file size of 0. Upload aborted." email_msg=email_msg+msg html_msg=html_msg+msg+"<BR>" upload_results(html_msg,email_msg,form) sys.exit() if archive_size > upload_ceiling: html_msg = 'Archive file size exceeds maximum upload limit ' html_msg = html_msg + 'of %d bytes.<BR>' % (upload_ceiling) html_msg = html_msg + 'Archive file size is %d bytes.<BR>' % (archive_size) html_msg = html_msg + 'No archive file was uploaded.<BR>' email_msg=string.replace(html_msg,"<BR>",'\n') upload_results(html_msg, email_msg,form) sys.exit() archive_name = form['archive'].filename archive_name = string.strip(archive_name) # strip off leading \\,/,: if string.rfind(archive_name,"\\") >= 0: archive_name = archive_name[string.rfind(archive_name,"\\")+1:] if string.rfind(archive_name,"/") >= 0: archive_name = archive_name[string.rfind(archive_name,"/")+1:] if string.rfind(archive_name,":") >= 0: archive_name = archive_name[string.rfind(archive_name,":")+1:] full_path='/home/' + db_name + '/documents/' + destination full_path_name=full_path + archive_name # write the archive to the website try: archive_file = open(full_path_name, "wb") except IOError, exception_details: html_msg = "No permissions to upload file to the website %s. " % db_name html_msg = html_msg+"Uploaded aborted.<BR>" html_msg = html_msg + 'File: '+full_path_name email_msg=string.replace(html_msg,"<BR>",'\n') email_msg=email_msg+'\nReason: ' + exception_details[1] + '\n\n' upload_results(html_msg,email_msg,form) sys.exit() archive_file.write(form['archive'].value) archive_file.close() status, type_of_archive, icon = os_utils.file_type(full_path_name) createDetails(archive_name, full_path) # extract archive if form.has_key('extract'): if status == 'success': archive_output=extract(type_of_archive, full_path_name,full_path, email_msg,html_msg) else: html_msg = 'Uploading unknown file type, in most cases this' html_msg = html_msg+'is alright but the file should be checked' email_msg='Upload to %s of an unknown file type.' % db_name upload_results(html_msg,email_msg,form) sys.exit() else: archive_output='' status='success' html_msg = '<TABLE BORDER=0>' if os.environ.has_key('REMOTE_ADDR'): html_msg = html_msg +'<TR><TD>Your IP Address:</TD>' html_msg = html_msg +'<TD>%s</TD></TR>'%(os.environ['REMOTE_ADDR']) html_msg = html_msg + '<TR><TD>Your browser I.D.:</TD>' html_msg = html_msg + '<TD><B>%s</B></TD></TR>' % (browser) fileSize=os.stat(full_path_name)[6] if type_of_archive == 'TAR' or type_of_archive == 'ZIP': html_msg = html_msg + '<TR><TD>Archive name is: </TD>' html_msg = html_msg + '<TD>%s</TD></TR>' % (archive_name) html_msg = html_msg + '<TR><TD>Archive file size (bytes): </TD>' html_msg = html_msg + '<TD>%d</TD></TR></TABLE>' %(fileSize) else: html_msg = html_msg + '<TR><TD>Filename is: </TD>' html_msg = html_msg + '<TD>%s</TD></TR>' % (archive_name) html_msg = html_msg + '<TR><TD>File size (bytes): </TD>' html_msg = html_msg + '<TD>%s</TD></TR></TABLE>' %(fileSize) if type_of_archive == 'TAR' or type_of_archive == 'ZIP': html_msg = html_msg + '<PRE>' html_msg = html_msg + archive_output html_msg = html_msg + '</PRE>' if form.has_key('extract'): html_msg=html_msg+'<CENTER><B>Your archive file has been uploaded ' html_msg = html_msg + 'and extracted successfully.</B></CENTER>' else: html_msg = html_msg + '<CENTER><B>Your file has been successfully ' html_msg = html_msg + 'uploaded.</B></CENTER>' html_msg = html_msg+'<HR><CENTER><FONT SIZE="-1">' html_msg = html_msg+"<form method=post action=/%s-cgi-bin/list_docs.pyc>" %db_name html_msg=html_msg+'<input name=project_name type=hidden value="%s">'%db_name html_msg = html_msg+"<input name=directory type=hidden " html_msg = html_msg+'value="%s">' % form['folder'].value html_msg = html_msg+'<input name=submit type=submit value="View Data Items">' html_msg = html_msg+"</form>" link = "http://%s" % (declarations.pmt_info['domain_name']) html_msg = html_msg+'<CENTER><FONT SIZE="-1"><A HREF="%s">' % link html_msg = html_msg+'%s</A></FONT></CENTER>'% declarations.pmt_info['domain_name'] if type_of_archive == 'TAR' or type_of_archive == 'ZIP': email_msg=email_msg+'Archive file was uploaded to %s.\n' % db_name email_msg=email_msg+'Archive file size (bytes): %d'%os.stat(full_path_name)[6] email_msg=email_msg+'\nArchive file location: %s' % form['folder'].value email_msg=email_msg+'\nArchive filename: %s\n' % archive_name email_msg=email_msg+archive_output + '\n' else: email_msg = email_msg+'File was uploaded to %s.\n' % db_name email_msg = email_msg+'File size (bytes): %d\n' % os.stat(full_path_name)[6] email_msg = email_msg+'Filename: %s\n' % archive_name email_msg = email_msg+"File location: %s\n" % form['folder'].value email_msg = email_msg+archive_output + '\n' if form.has_key('extract'): os.remove(full_path_name)
if username == None: displayLogin(form) else: pageSetup() db = pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) # could not connect to db if db['status'] != 'success': message = "Can not connect to database,\n" + db['message'] pmt_utils.alertsArea(form, ) sys.exit(1) verifyUserPass(db['result']) edit_priv = pmt_utils.hasPriv(db['result'], username, 'edit_details') del_priv = pmt_utils.hasPriv(db['result'], username, 'del_docs') up_priv = pmt_utils.hasPriv(db['result'], username, 'upload') private_priv = pmt_utils.hasPriv(db['result'], username, 'private_data') admin_priv = pmt_utils.hasPriv(db['result'], username, 'folder_admin') writeTable(form, username, edit_priv, del_priv, up_priv, private_priv, admin_priv) print '</BODY>' print '</HTML>' #------------------------------------------------------------------------------
def edit_project_info(performDbQuery=0, onLoad=None, queryFields=None): table_data = declarations.define_tables() print "<HTML>" print "<HEAD>" pmt_utils.javaScript("project_admin") pmt_utils.title("Project Administration") print "</HEAD>" pmt_utils.bodySetup(onLoad) pmt_utils.mainHeading('Project Administration') pmt_utils.subHeading('Project Info') pmt_utils.formSetup("project_admin", db_name, "project_admin", "return submitForm(document.project_admin)") if username == None: pmt_utils.usernamePasswordDisplay() project_adminButtons(button_name='edit') pmt_utils.textbox(None, 'key_id', '1', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') print "</FORM>" try: pmt_utils.trailer(table_data, db) db.close() except NameError: pass print "</BODY>" print "</HTML>" return dbResult = pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) # could not connect to db if dbResult['status'] != 'success': pmt_utils.alertsArea( form, "Can not connect to database,\n" + dbResult['message']) project_adminButtons() print "</FORM>" try: pmt_utils.trailer(table_data, db) db.close() except NameError: pass print "</BODY>" print "</HTML>" return db = dbResult['result'] status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': print '<form method=post action=/%s-cgi-bin/project_admin.pyc>' % db_name pmt_utils.usernamePasswordDisplay(username) pmt_utils.alertsArea(form, 'Can not verify you as a valid user') print '<hr><input name=reload type=submit value="Query">' print '<input name=action value=edit type=hidden>' print '</form>' sys.exit() if pmt_utils.hasPriv(db, username, 'project_data') != 1: print '<form method=post action=/%s-cgi-bin/project_admin.pyc>' % db_name pmt_utils.usernamePasswordDisplay(username) msg = 'User %s does not have project admin privileges>' % username pmt_utils.alertsArea(form, msg) print '<hr><input name=reload type=submit value="Query">' print '<input name=action value=edit type=hidden>' print '</form>' sys.exit() if form.has_key('key_id'): key_id = form['key_id'].value else: key_id = '1' sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'project_info', key_id) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': msg = "Could not retrieve project information\n" + dbResult['message'] pmt_utils.alertsArea(form, msg) else: result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'project_info', result[0]) table_data['project_info']['id']['value'] = '1' pmt_utils.display_form(table_data, 'project_info', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Project Information retrieved successfully") project_adminButtons(button_name='save') pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') print "</FORM>" try: pmt_utils.trailer(table_data, db) db.close() except NameError: pass print "</BODY>" print "</HTML>"
def doEdit(): table_data = declarations.define_tables() print "<HTML>" print "<HEAD>" pmt_utils.generate_form_javascript(table_data, 'project_info', 'project_admin', 0) pmt_utils.title("Project Info Administration") print "</HEAD>" pmt_utils.bodySetup() pmt_utils.mainHeading('Project Info Administration') pmt_utils.subHeading('Edit Project Info') pmt_utils.formSetup("project_admin", db_name, "project_admin", "return submitForm(document.project_admin)") dbResult = pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) if dbResult['status'] != 'success': msg = "Could not connect to the database\n" pmt_utils.alertsArea(form, msg + dbResult['message']) sys.exit() db = dbResult['result'] status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': print '<form method=post action=/%s-cgi-bin/project_admin.pyc>' % db_name pmt_utils.usernamePasswordDisplay(username) pmt_utils.alertsArea(form, 'Can not verify you as a valid user') print '<hr><input name=reload type=submit value="Query">' print '<input name=action value=edit type=hidden>' print '</form>' sys.exit() if pmt_utils.hasPriv(db, username, 'project_data') != 1: print '<form method=post action=/%s-cgi-bin/project_admin.pyc>' % db_name pmt_utils.usernamePasswordDisplay(username) msg = 'User %s does not have project admin privileges' % username pmt_utils.alertsArea(form, msg) print '<hr><input name=reload type=submit value="Query">' print '<input name=action value=edit type=hidden>' print '</form>' sys.exit() sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'project_info', '1') dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': msg = "Could not retrieve project info to edit\n" pmt_utils.alertsArea(form, msg + dbResult['message']) else: result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'project_info', result[0]) table_data['project_info']['id']['value'] = '1' pmt_utils.display_form(table_data, 'project_info', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Project Info retrieved successfully") project_adminButtons('save') pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') print "</FORM>" pmt_utils.trailer(table_data, db) db.close() print "</BODY>" print "</HTML>"