Exemple #1
0
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
Exemple #2
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.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)
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
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)
Exemple #6
0
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)
Exemple #7
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()
Exemple #8
0
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()
Exemple #9
0
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)
Exemple #10
0
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()
Exemple #11
0
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)
Exemple #12
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)
Exemple #13
0
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)
Exemple #14
0
            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:
Exemple #15
0
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>:&nbsp;'
    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>"
Exemple #16
0
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)
Exemple #17
0
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>'
#------------------------------------------------------------------------------
Exemple #18
0
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>"
Exemple #19
0
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>"