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