def handle_register(self, action): request = self.request data, errors = self.extractData() if not errors: principal = Principal(data['id'], data['title'], '') interface.alsoProvides(principal, IMailAuthorizationAware) auth = getUtility(IAuthentication) users = queryUtility(IAuthenticatorPlugin, 'users') if users is not None: id = 1 while str(id) in users: id = id + 1 users[str(id)] = InternalPrincipal( data['id'], '12345', data['title']) principal.id = auth.prefix + users.prefix + str(id) status = getUtility(IPortalRegistration).registerPrincipal( principal, request) if status == STATUS_CONTINUE: self.redirect('/test.html') # IMemberRegistrationForm attribute self.registeredPrincipal = principal