Formatting changes, test TurboMail properly, fix PgToLDAP.py

This commit is contained in:
Ricky Zhou (周家杰) 2007-11-30 08:47:34 -07:00
parent dca1acaade
commit 2d9888e3ac
4 changed files with 102 additions and 100 deletions

View file

@ -7,8 +7,9 @@
#mail.server = 'bastion.fedora.phx.redhat.com' #mail.server = 'bastion.fedora.phx.redhat.com'
#base_url_filter.base_url = "http://192.168.2.101:8080" #base_url_filter.base_url = "http://192.168.2.101:8080"
mail.on = False mail.on = True
mail.server = 'bastion.fedora.phx.redhat.com' mail.server = 'bastion.fedora.phx.redhat.com'
mail.testmode = True
mail.debug = False mail.debug = False
mail.encoding = 'utf-8' mail.encoding = 'utf-8'

View file

@ -65,8 +65,9 @@
<?python <?python
from datetime import datetime from datetime import datetime
?> ?>
<td>${datetime.utcfromtimestamp(groups[user].fedoraRoleCreationDate).ctime()}</td> <td>${datetime.utcfromtimestamp(float(groups[user].fedoraRoleCreationDate)).ctime()}</td>
<td>${groups[user].fedoraRoleApprovalDate}</td> <td py:if="groups[user].fedoraRoleApprovalDate.lower() == 'none'">None</td>
<td py:if="groups[user].fedoraRoleApprovalDate.lower() != 'none'">${datetime.utcfromtimestamp(float(groups[user].fedoraRoleApprovalDate)).ctime()}</td>
<td>${groups[user].fedoraRoleStatus}</td> <td>${groups[user].fedoraRoleStatus}</td>
<td>${groups[user].fedoraRoleType}</td> <td>${groups[user].fedoraRoleType}</td>
<!--<td>${groups[user].fedoraRoleDomain}</td>--> <!--<td>${groups[user].fedoraRoleDomain}</td>-->

View file

@ -40,8 +40,8 @@
</ul> </ul>
--> -->
<ul id="rolespanel" py:if="personal"> <ul id="rolespanel" py:if="personal">
<li py:for="group in sorted(groups.keys())" class="role"> <div py:for="group in sorted(groups.keys())" py:strip="">
<div py:if="auth.canViewGroup(user.cn, group)" py:strip=""> <li py:if="auth.canViewGroup(user.cn, group)" class="role">
<h4>${groupdata[group].fedoraGroupDesc}</h4> (${groups[group].fedoraRoleType}) <h4>${groupdata[group].fedoraGroupDesc}</h4> (${groups[group].fedoraRoleType})
<dl> <dl>
<dt>Status:</dt> <dt>Status:</dt>
@ -71,8 +71,8 @@
</dd> </dd>
</div> </div>
</dl> </dl>
</div>
</li> </li>
</div>
</ul> </ul>
</body> </body>
</html> </html>

View file

@ -119,18 +119,18 @@ def openLdifFile(filename):
print "Opening output file %s" % filename print "Opening output file %s" % filename
try: try:
#ldifWriter = ldif.LDIFWriter(ldap.initialize('ldap://localhost:1390'),filename) #ldifWriter = ldif.LDIFWriter(ldap.initialize('ldap://localhost:1390'),filename)
fileHandel = open (filename,'w') fileHandel = open (filename,'w')
# | __init__(self, output_file, base64_attrs=None, cols=76, line_sep='\n') # | __init__(self, output_file, base64_attrs=None, cols=76, line_sep='\n')
# | output_file # | output_file
# | file object for output # | file object for output
# | base64_attrs # | base64_attrs
# | list of attribute types to be base64-encoded in any case # | list of attribute types to be base64-encoded in any case
# | cols # | cols
# | Specifies how many columns a line may have before it's # | Specifies how many columns a line may have before it's
# | folded into many lines. # | folded into many lines.
# | line_sep # | line_sep
# | String used as line separator # | String used as line separator
@ -215,7 +215,7 @@ def main():
userCursor = dbConn.cursor() userCursor = dbConn.cursor()
userCursor.execute ("SELECT * FROM person") userCursor.execute ("SELECT * FROM person")
#id, username, email 2, human_name 3, gpg_keyid 4, ssh_key 5, password 6, comments 7, postal_address 8, telephone 9, facsimile 10, affiliation 11, creation 12, approval_status 13, internal_comments 14, wiki_prefs 15, ircnick 16 #id, username, email 2, human_name 3, gpg_keyid 4, ssh_key 5, password 6, comments 7, postal_address 8, telephone 9, facsimile 10, affiliation 11, creation 12, approval_status 13, internal_comments 14, wiki_prefs 15, ircnick 16
except: except:
print "Error selecting users from db" print "Error selecting users from db"
raise raise
@ -233,50 +233,50 @@ def main():
if options.outType == "ldif": if options.outType == "ldif":
ldifWriter.unparse(dn, entry) ldifWriter.unparse(dn, entry)
else: else:
print "Adding ldif info for " + user[3] + "." print "Adding ldif info for " + user[3] + "."
#userLdif = [["objectClass",["fedoraPerson","organizationalUnit"]] , [ "displayName",[ user[1] ] ] ] #userLdif = [["objectClass",["fedoraPerson","organizationalUnit"]] , [ "displayName",[ user[1] ] ] ]
userLdif = [["objectClass",["fedoraPerson"]] , [ "displayName",[ user[1] ] ] ] userLdif = [["objectClass",["fedoraPerson"]] , [ "displayName",[ user[1] ] ] ]
userLdif.append(["mail",[str(user[2])]]) userLdif.append(["mail",[str(user[2])]])
userLdif.append(["sn",[str(user[1])]]) userLdif.append(["sn",[str(user[1])]])
userLdif.append(["fedoraPersonBugzillaMail",[str(user[2])]]) userLdif.append(["fedoraPersonBugzillaMail",[str(user[2])]])
userLdif.append(["cn",[str(user[1])]]) userLdif.append(["cn",[str(user[1])]])
userLdif.append(["givenName",[str(user[3])]]) userLdif.append(["givenName",[str(user[3])]])
userLdif.append(["fedoraPersonKeyId",[str(user[4])]]) userLdif.append(["fedoraPersonKeyId",[str(user[4])]])
userLdif.append(["fedoraPersonCertSerial",['-1']]) userLdif.append(["fedoraPersonCertSerial",['-1']])
userLdif.append(["fedoraPersonSshKey",[str(user[5])]]) userLdif.append(["fedoraPersonSshKey",[str(user[5])]])
userLdif.append(["userPassword",[encode_SSHA_password(str(user[6]))]]) userLdif.append(["userPassword",[encode_SSHA_password(str(user[6]))]])
userLdif.append(["postalAddress",[str(user[8])]]) userLdif.append(["postalAddress",[str(user[8])]])
userLdif.append(["telephoneNumber",[str(user[9])]]) userLdif.append(["telephoneNumber",[str(user[9])]])
userLdif.append(["fax",[str(user[10]) or "None"]]) userLdif.append(["fax",[str(user[10]) or "None"]])
userLdif.append(["o",[str(user[11]) or "None" ]]) # affiliation is set to the o -- another stretch ?? userLdif.append(["o",[str(user[11]) or "None" ]]) # affiliation is set to the o -- another stretch ??
userLdif.append(["fedoraPersonCreationDate",[str(timestamp)]]) userLdif.append(["fedoraPersonCreationDate",[str(timestamp)]])
userLdif.append(["fedoraPersonApprovalStatus",[str(user[13])]]) userLdif.append(["fedoraPersonApprovalStatus",[str(user[13])]])
userLdif.append(["description",[str(user[14])]]) #this one may be a streach -- original field was internal comments userLdif.append(["description",[str(user[14])]]) #this one may be a streach -- original field was internal comments
userLdif.append(["fedoraPersonIrcNick",[str(user[16])]]) userLdif.append(["fedoraPersonIrcNick",[str(user[16])]])
#userLdif.append(["ou",["Roles"]]) Adding an OU instead #userLdif.append(["ou",["Roles"]]) Adding an OU instead
print userLdif print userLdif
#for userKey in userLdif.keys(): #for userKey in userLdif.keys():
#print "Key Name -> " + userKey #print "Key Name -> " + userKey
#print ":::Key Value::: " #print ":::Key Value::: "
#print userLdif[userKey] #print userLdif[userKey]
#ldifWriter.unparse("dc=fedoraproject,dc=org cn=" + user[3] , { userKey : [str(userLdif[userKey])] } ) #ldifWriter.unparse("dc=fedoraproject,dc=org cn=" + user[3] , { userKey : [str(userLdif[userKey])] } )
#print userLdif.keys() #print userLdif.keys()
#print userLdif.values() #print userLdif.values()
ldifWriter.unparse("cn=" + str(user[1]) +",ou=People,dc=fedoraproject,dc=org" , userLdif ) ldifWriter.unparse("cn=" + str(user[1]) +",ou=People,dc=fedoraproject,dc=org" , userLdif )
roleOuLdif = [["objectClass",["organizationalUnit"]] , [ "ou",[ "Roles" ] ] ] roleOuLdif = [["objectClass",["organizationalUnit"]] , [ "ou",[ "Roles" ] ] ]
ldifWriter.unparse("ou=Roles,cn=" + str(user[1]) +",ou=People,dc=fedoraproject,dc=org" , roleOuLdif ) ldifWriter.unparse("ou=Roles,cn=" + str(user[1]) +",ou=People,dc=fedoraproject,dc=org" , roleOuLdif )
#ldifWriter.unparse("dc=fedoraproject,dc=org, cn=" + user[3] , [ ['ano',['domini']],['uances',['od']] ]) #ldifWriter.unparse("dc=fedoraproject,dc=org, cn=" + user[3] , [ ['ano',['domini']],['uances',['od']] ])
#time.sleep (2) #time.sleep (2)
#ldapConn.add_s(dn, entry) #ldapConn.add_s(dn, entry)
userCursor.close() userCursor.close()
@ -307,7 +307,7 @@ def main():
ldifWriter.unparse(dn, entry) ldifWriter.unparse(dn, entry)
else: else:
#ldapConn.add_s(dn, entry) #ldapConn.add_s(dn, entry)
print "Adding group info for %s." % group[7] print "Adding group info for %s." % group[7]
#id0, owner_id1, group_type2, needs_sponsor3, user_can_remove4, prerequisite_id5, joinmsg6, name7 #id0, owner_id1, group_type2, needs_sponsor3, user_can_remove4, prerequisite_id5, joinmsg6, name7
@ -316,43 +316,43 @@ def main():
owner = uidLookupCursor.fetchone() owner = uidLookupCursor.fetchone()
if str(group[5]) != "None" : if str(group[5]) != "None" :
uidLookupCursor.execute ("SELECT name FROM project_group where id =" + str(group[5]) ) uidLookupCursor.execute ("SELECT name FROM project_group where id =" + str(group[5]) )
prereq = uidLookupCursor.fetchone() prereq = uidLookupCursor.fetchone()
print prereq print prereq
else: else:
prereq=["None"] prereq=["None"]
print owner
print owner
#id0, name1, owner_id2, group_type3, needs_sponsor4, user_can_remove5, prerequisite_id6, joinmsg7 #id0, name1, owner_id2, group_type3, needs_sponsor4, user_can_remove5, prerequisite_id6, joinmsg7
userLdif = [["objectClass",["fedoraGroup"]] ] userLdif = [["objectClass",["fedoraGroup"]] ]
userLdif.append(["cn",[str(group[7])]]) userLdif.append(["cn",[str(group[7])]])
userLdif.append(["fedoraGroupOwner",owner]) # need to get a cn for this not just the id userLdif.append(["fedoraGroupOwner",owner]) # need to get a cn for this not just the id
#userLdif.append(["groupOwner",[str(group[2])]]) # need to get a cn for this not just the id #userLdif.append(["groupOwner",[str(group[2])]]) # need to get a cn for this not just the id
userLdif.append(["fedoraGroupType",[str(group[3]) or "None" ]]) userLdif.append(["fedoraGroupType",[str(group[3]) or "None" ]])
#we're using the boolean type for these. This means they need to be converted to the TRUE and FALSE strings #we're using the boolean type for these. This means they need to be converted to the TRUE and FALSE strings
if str(group[3]) == "0" : if str(group[3]) == "0" :
group[3]="FALSE" group[3]="FALSE"
else: else:
group[3]="TRUE" group[3]="TRUE"
if str(group[4]) == "0" : if str(group[4]) == "0" :
group[4]="FALSE" group[4]="FALSE"
else: else:
group[4]="TRUE" group[4]="TRUE"
if group[5] == None: if group[5] == None:
group[5] = "" group[5] = ""
userLdif.append(["fedoraGroupNeedsSponsor",[str(group[3])]]) #need to convert to bool userLdif.append(["fedoraGroupNeedsSponsor",[str(group[3])]]) #need to convert to bool
userLdif.append(["fedoraGroupUserCanRemove",[str(group[4])]]) #need to convert to bool userLdif.append(["fedoraGroupUserCanRemove",[str(group[4])]]) #need to convert to bool
userLdif.append(["fedoraGroupDesc",[str('Please fill out a Group Description')]]) #need to convert to bool userLdif.append(["fedoraGroupDesc",[str('Please fill out a Group Description')]]) #need to convert to bool
#userLdif.append(["groupPrerequisite",[str(group[5])]]) #userLdif.append(["groupPrerequisite",[str(group[5])]])
userLdif.append(["fedoraGroupRequires",[str(group[5])]]) # <- Hope this is added properly - Ricky userLdif.append(["fedoraGroupRequires",[str(group[5])]]) # <- Hope this is added properly - Ricky
#userLdif.append(["groupPrerequisite",prereq]) not currently in the schema #userLdif.append(["groupPrerequisite",prereq]) not currently in the schema
userLdif.append(["fedoraGroupJoinMsg",[str(group[6]) or "None" ]]) userLdif.append(["fedoraGroupJoinMsg",[str(group[6]) or "None" ]])
ldifWriter.unparse("cn=" + str(group[7]) +",ou=FedoraGroups,dc=fedoraproject,dc=org" , userLdif ) ldifWriter.unparse("cn=" + str(group[7]) +",ou=FedoraGroups,dc=fedoraproject,dc=org" , userLdif )
groupCursor.close() groupCursor.close()
@ -364,7 +364,7 @@ def main():
print "Selecting all roles from Postgres Database" print "Selecting all roles from Postgres Database"
roleCursor = dbConn.cursor() roleCursor = dbConn.cursor()
roleCursor.execute ("SELECT * FROM role") roleCursor.execute ("SELECT * FROM role")
#person_id, project_group_id, role_type, role_domain, role_status, internal_comments, sponsor_id (Points to a person), creation (TIMESTAMP), approval (TIMESTAMP) #person_id, project_group_id, role_type, role_domain, role_status, internal_comments, sponsor_id (Points to a person), creation (TIMESTAMP), approval (TIMESTAMP)
except: except:
print "Error selecting roles from db" print "Error selecting roles from db"
raise raise
@ -392,7 +392,7 @@ def main():
#person_id0, group_project_id1, role_type2, role_domain3, role_status4, internal_comments5, sponsor_id6, creation7, approval8 #person_id0, group_project_id1, role_type2, role_domain3, role_status4, internal_comments5, sponsor_id6, creation7, approval8
uidRoleCursor = dbConn.cursor() uidRoleCursor = dbConn.cursor()
uidRoleCursor.execute ("SELECT username FROM person where id =" + str(role[0]) ) uidRoleCursor.execute ("SELECT username FROM person where id =" + str(role[0]) )
username = uidRoleCursor.fetchone() username = uidRoleCursor.fetchone()
uidRoleCursor.execute ("SELECT name FROM project_group where id =" + str(role[1]) ) uidRoleCursor.execute ("SELECT name FROM project_group where id =" + str(role[1]) )
@ -400,31 +400,31 @@ def main():
if str(role[6]) != "None" : if str(role[6]) != "None" :
uidRoleCursor.execute ("SELECT username FROM person where id =" + str(role[6]) ) uidRoleCursor.execute ("SELECT username FROM person where id =" + str(role[6]) )
sponsor = uidRoleCursor.fetchone() sponsor = uidRoleCursor.fetchone()
else: else:
sponsor = ["None"] sponsor = ["None"]
print "Adding " + str(role[4]) + " role info for " + group[0] + " for user " + username[0] + "." print "Adding " + str(role[4]) + " role info for " + group[0] + " for user " + username[0] + "."
#if str(group[6]) != "None" : #if str(group[6]) != "None" :
# uidLookupCursor.execute ("SELECT name FROM project_group where id =" + str(group[6]) ) # uidLookupCursor.execute ("SELECT name FROM project_group where id =" + str(group[6]) )
# prereq = uidLookupCursor.fetchone() # prereq = uidLookupCursor.fetchone()
# print prereq # print prereq
#else: #else:
# prereq=["None"] # prereq=["None"]
#print owner #print owner
#person_id0, group_project_id1, role_type2, role_domain3, role_status4, internal_comments5, sponsor_id6, creation7, approval8 #person_id0, group_project_id1, role_type2, role_domain3, role_status4, internal_comments5, sponsor_id6, creation7, approval8
roleLdif = [["objectClass",["fedoraRole"]] ] roleLdif = [["objectClass",["fedoraRole"]] ]
#roleLdif.append(["cn",[str(group[0]) + str(role[2])]]) #Fix me #roleLdif.append(["cn",[str(group[0]) + str(role[2])]]) #Fix me
roleLdif.append(["cn",[str(group[0])]]) #Fix me roleLdif.append(["cn",[str(group[0])]]) #Fix me
roleLdif.append(["fedoraRoleType",[str(role[2])]]) roleLdif.append(["fedoraRoleType",[str(role[2])]])
roleLdif.append(["fedoraRoleDomain",[str(role[3]) or "None" ]]) roleLdif.append(["fedoraRoleDomain",[str(role[3]) or "None" ]])
roleLdif.append(["fedoraRoleStatus",[str(role[4])]]) roleLdif.append(["fedoraRoleStatus",[str(role[4])]])
roleLdif.append(["fedoraRoleSponsor",sponsor]) roleLdif.append(["fedoraRoleSponsor",sponsor])
roleLdif.append(["fedoraRoleCreationDate",[str(timestamp1)]]) roleLdif.append(["fedoraRoleCreationDate",[str(timestamp1)]])
roleLdif.append(["fedoraRoleApprovalDate",[str(timestamp2)]]) roleLdif.append(["fedoraRoleApprovalDate",[str(timestamp2)]])
ldifWriter.unparse("cn=" + group[0] + ",ou=Roles,cn=" + username[0] + ",ou=People,dc=fedoraproject,dc=org" , roleLdif ) ldifWriter.unparse("cn=" + group[0] + ",ou=Roles,cn=" + username[0] + ",ou=People,dc=fedoraproject,dc=org" , roleLdif )
roleCursor.close() roleCursor.close()