Changeset 8787
- Timestamp:
- 25 Jun 2012, 11:22:19 (13 years ago)
- Location:
- main/waeup.kofa/trunk/src/waeup/kofa
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/userscontainer.py
r8757 r8787 23 23 from waeup.kofa.interfaces import IUsersContainer 24 24 from waeup.kofa.utils.logger import Logger 25 from waeup.kofa.utils.batching import ExporterBase 26 from waeup.kofa.interfaces import ICSVExporter 27 from waeup.kofa.interfaces import MessageFactory as _ 28 25 29 26 30 class UsersContainer(grok.Container, Logger): … … 60 64 del self[name] 61 65 #self.logger.info('User account %s deleted.' % name) 66 67 68 class UsersExporter(grok.GlobalUtility, ExporterBase): 69 """Exporter for faculties. 70 """ 71 grok.implements(ICSVExporter) 72 grok.name('users') 73 74 #: Fieldnames considered by this exporter 75 fields = ('name', 'title', 'public_name', 'description', 76 'email', 'phone', 'roles', 'local_roles', 'password') 77 78 #: The title under which this exporter will be displayed 79 title = _(u'Users') 80 81 def mangle_value(self, value, name, context=None): 82 """Treat location values special. 83 """ 84 85 if name == 'local_roles' and context is not None: 86 local_roles = context.getLocalRoles() 87 value = {} 88 for role in local_roles.keys(): 89 objects = local_roles[role] 90 object_list = [] 91 for object in objects: 92 object.__class__.__name__ 93 object_list.append((object.__name__, object.__class__.__name__)) 94 value[role] = object_list 95 return super( 96 UsersExporter, self).mangle_value( 97 value, name, context=context) 98 99 def export(self, users, filepath=None): 100 """Export `users`, an iterable, as CSV file. 101 102 If `filepath` is ``None``, a raw string with CSV data is returned. 103 """ 104 writer, outfile = self.get_csv_writer(filepath) 105 for user in users: 106 self.write_item(user, writer) 107 return self.close_outfile(filepath, outfile) 108 109 def export_all(self, site, filepath=None): 110 """Export users into filepath as CSV data. 111 112 If `filepath` is ``None``, a raw string with CSV data is returned. 113 """ 114 writer, outfile = self.get_csv_writer(filepath) 115 users = site.get('users', {}) 116 return self.export(users.values(), filepath) -
main/waeup.kofa/trunk/src/waeup/kofa/userscontainer.txt
r8343 r8787 48 48 '{SSHA}...' 49 49 50 We can export user accounts: 51 52 >>> from waeup.kofa.userscontainer import UsersExporter 53 >>> import os 54 >>> import tempfile 55 >>> workdir = tempfile.mkdtemp() 56 >>> outfile = os.path.join(workdir, 'myoutput.csv') 57 >>> exporter = UsersExporter() 58 >>> site = {'users':myusers} 59 >>> exporter.export_all(site, outfile) 60 >>> result = open(outfile, 'rb').read() 61 >>> 'name,title,public_name,description,email,phone,roles,local_roles,password' in result 62 True 63 >>> '{SSHA}' in result 64 True 65 50 66 We can delete users: 51 67
Note: See TracChangeset for help on using the changeset viewer.