def copy_permissions(self): brains = self.context.portal_catalog( path='/'.join(self.context.getPhysicalPath())) for brain in brains: for user, roles in dict(brain.get_local_roles).items(): obj = brain.getObject() if user == self.source_user: obj.manage_setLocalRoles(self.target_user, roles) IStatusMessage(self.request).addStatusMessage( _(u'Die Berechtigungen wurden kopiert'), type='info') #self.context.restrictedTraverse('@@update_security')() self.context.reindexObjectSecurity() return self.request.RESPONSE.redirect('@@copy_user_permissions')
def __call__(self, *args, **kwargs): self.request.set('disable_border', True) form = self.request.form self.search = form.get('search_user', False) self.user_selected = form.get('user', False) and True self.user = form.get('user', False) self.confirmed = form.get('confirmed', False) and True if self.confirmed: self.removePermissions() IStatusMessage(self.request).addStatusMessage( _(u'Die Berechtigungen wurden erfolgreich entfernt.'), type='info') return self.request.RESPONSE.redirect('@@permission_manager') return self.template()
def __call__(self, *args, **kwargs): self.request.set('disable_border', True) form = self.request.form self.search = form.get('search_user', False) self.user_selected = form.get('user', False) and True self.user = form.get('user', False) self.confirmed = form.get('confirmed', False) and True if self.confirmed: self.removePermissions() IStatusMessage(self.request).addStatusMessage( _( u'Die Berechtigungen wurden erfolgreich entfernt.'), type='info') return self.request.RESPONSE.redirect('@@permission_manager') return self.template()
def setPermissions(self, row): try: obj = self.getObjectByPath(row) except AttributeError: IStatusMessage(self.request).addStatusMessage( _(u"Objekt konnte nicht gefunden werden: ${path}", mapping=dict(path=row["Path"])), type="error" ) user = row["Userid"] roles = [] for role in self.get_roles(): if len(row[role]) > 0: roles.append(role) if len(roles) > 0: obj.manage_setLocalRoles(user, roles) else: obj.manage_delLocalRoles((user,)) return True
def setPermissions(self, row): try: obj = self.getObjectByPath(row) except (AttributeError, KeyError): IStatusMessage(self.request).addStatusMessage(_( u'Objekt konnte nicht gefunden werden: ${path}', mapping=dict(path=row['Path'])), type='error') return user = row['Userid'].decode(self.encoding) roles = [] for role in self.get_roles(): if len(row[role]) > 0: roles.append(role) if len(roles) > 0: obj.manage_setLocalRoles(user, roles) else: obj.manage_delLocalRoles((user, )) return True
def setPermissions(self, row): try: obj = self.getObjectByPath(row) except (AttributeError, KeyError): IStatusMessage(self.request).addStatusMessage( _( u'Objekt konnte nicht gefunden werden: ${path}', mapping=dict(path=row['Path'])), type='error') return user = row['Userid'].decode(self.encoding) roles = [] for role in self.get_roles(): if len(row[role])>0: roles.append(role) if len(roles)>0: obj.manage_setLocalRoles(user, roles) else: obj.manage_delLocalRoles((user, )) return True
def startImport(self): _file = self.request.get("file") data = _file.read().replace("\r\n", "\n").replace("\r", "\n") data = StringIO.StringIO(data) dialect = csv.Sniffer().sniff(data.readline()) data.seek(0) reader = csv.DictReader(data, fieldnames=self.get_fieldnames(), dialect=dialect) titles = None rows_imported = 0 for row in reader: if not titles: titles = row continue if self.setPermissions(row): rows_imported += 1 IStatusMessage(self.request).addStatusMessage( _(u"Es wurden ${rows_imported} Berechtigungen gesetzt.", mapping=dict(rows_imported=rows_imported)), type="info", ) self.context.reindexObjectSecurity()
def startImport(self): _file = self.request.get('file') data = _file.read().replace('\r\n', '\n').replace('\r', '\n') data = StringIO.StringIO(data) dialect = csv.Sniffer().sniff(data.readline()) data.seek(0) reader = csv.DictReader(data, fieldnames=self.get_fieldnames(), dialect=dialect) titles = None rows_imported = 0 for row in reader: if not titles: titles = row continue if self.setPermissions(row): rows_imported += 1 IStatusMessage(self.request).addStatusMessage(_( u'Es wurden ${rows_imported} Berechtigungen gesetzt.', mapping=dict(rows_imported=rows_imported)), type='info') self.context.reindexObjectSecurity()
def __call__(self): mtool = getToolByName(self.context, 'portal_membership') gtool = getToolByName(self.context, 'portal_groups') principalid = self.request.get('principalid', None) if not principalid: return '' self.principalid = principalid member = mtool.getMemberById(self.principalid) if member: groups = gtool.getGroupsByUserId(self.principalid) self.groupids = [group.getId() for group in groups] tree = self.build_tree() if not tree: return translate(_(u'text_no_result', default=u'No results found'), context=self.request) else: return self.render_tree(tree['children'])