def beforeTearDown(self): self.portal.MailHost = self.portal._original_MailHost sm = getSiteManager(context=self.portal) sm.unregisterUtility(provided=IMailHost) sm.registerUtility( aq_base( self.portal._original_MailHost), provided=IMailHost)
def isVisible(self, instance, mode='view', default=None, field=None): """decide if a field is visible in a given mode -> 'state'. see Products.Archetypes.Widget.TypesWidget#isVisible for details about the default behaviour. """ # First get the original value, to use as our default vis_dic = getattr(aq_base(self), 'visible', _marker) state = default if default else 'visible' if vis_dic is _marker: return state if type(vis_dic) is DictType: state = vis_dic.get(mode, state) elif not vis_dic: state = 'invisible' elif vis_dic < 0: state = 'hidden' if not field: return state # call any IATWidgetVisibility adapters adapters = {} for adapter in getAdapters((instance, ), IATWidgetVisibility): sort_val = getattr(adapter[1], 'sort', 1000) if sort_val not in adapters: adapters[sort_val] = [] adapters[sort_val].append(adapter) keys = sorted(adapters.keys()) keys.reverse() for key in keys: for adapter in adapters[key]: oldstate = state state = adapter[1](instance, mode, field, state) # if state != oldstate: # adapter_name = adapter[1].__repr__().split(" ")[0].split(".")[-1] # print "%-25s %-25s adapter:%s"%(field.getName(), "%s->%s"%(oldstate, state), adapter_name) return state
def beforeTearDown(self): self.portal.MailHost = self.portal._original_MailHost sm = getSiteManager(context=self.portal) sm.unregisterUtility(provided=IMailHost) sm.registerUtility(aq_base(self.portal._original_MailHost), provided=IMailHost)
def __call__(self): if self.request.form.has_key("submitted"): def error(field, message): if field: message = "%s: %s" % (field, message) self.context.plone_utils.addPortalMessage(message, 'error') return self.template() form = self.request.form contact = self.context password = safe_unicode(form.get('password', '')).encode('utf-8') username = safe_unicode(form.get('username', '')).encode('utf-8') confirm = form.get('confirm', '') email = safe_unicode(form.get('email', '')).encode('utf-8') if not username: return error('username', PMF("Input is required but not given.")) if not email: return error('email', PMF("Input is required but not given.")) reg_tool = self.context.portal_registration properties = self.context.portal_properties.site_properties ## if properties.validate_email: ## password = reg_tool.generatePassword() ## else: if password != confirm: return error('password', PMF("Passwords do not match.")) if not password: return error('password', PMF("Input is required but not given.")) if not confirm: return error('password', PMF("Passwords do not match.")) if len(password) < 5: return error('password', PMF("Passwords must contain at least 5 letters.")) try: reg_tool.addMember(username, password, properties={ 'username': username, 'email': email, 'fullname': username }) except ValueError, msg: return error(None, msg) contact.setUsername(username) contact.setEmailAddress(email) # If we're being created in a Client context, then give # the contact an Owner local role on client. if contact.aq_parent.portal_type == 'Client': contact.aq_parent.manage_setLocalRoles(username, [ 'Owner', ]) if hasattr(aq_base(contact.aq_parent), 'reindexObjectSecurity'): contact.aq_parent.reindexObjectSecurity() # add user to Clients group group = self.context.portal_groups.getGroupById('Clients') group.addMember(username) # Additional groups for LabContact users. # not required (not available for client Contact) if 'groups' in self.request and self.request['groups']: groups = self.request['groups'] if not type(groups) in (list, tuple): groups = [ groups, ] for group in groups: group = self.portal_groups.getGroupById(group) group.addMember(username) contact.reindexObject() if properties.validate_email or self.request.get('mail_me', 0): try: reg_tool.registeredNotify(username) except: import transaction transaction.abort() return error(None, PMF("SMTP server disconnected.")) message = PMF("Member registered.") self.context.plone_utils.addPortalMessage(message, 'info') return self.template()
def __call__(self): if self.request.form.has_key("submitted"): def error(field, message): if field: message = "%s: %s" % (field, message) self.context.plone_utils.addPortalMessage(message, 'error') return self.template() form = self.request.form contact = self.context password = safe_unicode(form.get('password', '')).encode('utf-8') username = safe_unicode(form.get('username', '')).encode('utf-8') confirm = form.get('confirm', '') email = safe_unicode(form.get('email', '')).encode('utf-8') if not username: return error('username', PMF("Input is required but not given.")) if not email: return error('email', PMF("Input is required but not given.")) reg_tool = self.context.portal_registration properties = self.context.portal_properties.site_properties ## if properties.validate_email: ## password = reg_tool.generatePassword() ## else: if password!=confirm: return error('password', PMF("Passwords do not match.")) if not password: return error('password', PMF("Input is required but not given.")) if not confirm: return error('password', PMF("Passwords do not match.")) if len(password) < 5: return error('password', PMF("Passwords must contain at least 5 letters.")) try: reg_tool.addMember(username, password, properties = { 'username': username, 'email': email, 'fullname': username}) except ValueError, msg: return error(None, msg) contact.setUsername(username) contact.setEmailAddress(email) # If we're being created in a Client context, then give # the contact an Owner local role on client. if contact.aq_parent.portal_type == 'Client': contact.aq_parent.manage_setLocalRoles( username, ['Owner',] ) if hasattr(aq_base(contact.aq_parent), 'reindexObjectSecurity'): contact.aq_parent.reindexObjectSecurity() # add user to Clients group group=self.context.portal_groups.getGroupById('Clients') group.addMember(username) # Additional groups for LabContact users. # not required (not available for client Contact) if 'groups' in self.request and self.request['groups']: groups = self.request['groups'] if not type(groups) in (list,tuple): groups = [groups,] for group in groups: group = self.portal_groups.getGroupById(group) group.addMember(username) contact.reindexObject() if properties.validate_email or self.request.get('mail_me', 0): try: reg_tool.registeredNotify(username) except: import transaction transaction.abort() return error( None, PMF("SMTP server disconnected.")) message = PMF("Member registered.") self.context.plone_utils.addPortalMessage(message, 'info') return self.template()