# routine to create CSV file from Plone member attributes # filters list of member attributes and presents in nice order import csv import StringIO import time def makeRow(): return [''] * 2 def createcsv(self): """ returns a csv file with member attributes """ request = self.REQUEST text = StringIO.StringIO() memberProperties = self.portal_memberdata.propertyIds() acl_users = self.acl_users writer = csv.writer(text) # make heading row row = makeRow() row[0] = 'member_id' row[1] = 'password' writer.writerow(row) for member in self.portal_membership.listMembers(): # make row for each member full of blank values row = makeRow() member_id = member.getId() user = acl_users.getUser(name=member_id) password = user._getPassword() row[0] = member_id row[1] = password writer.writerow(row) request.RESPONSE.setHeader('Content-Type','application/csv') request.RESPONSE.setHeader('Content-Length',len(text.getvalue())) request.RESPONSE.setHeader('Content-Disposition','inline;filename=%smembers.csv' % time.strftime("%Y%m%d-%H%M%S-",time.localtime())) return text.getvalue()