*** client.py 23 nov 2004 16:45:36 +0100 1.208 --- client.py 23 nov 2004 16:54:50 +0100 *************** *** 158,163 **** --- 158,166 ---- self.user = None self.userid = None + self.nodeid = None + self.classname = None + self.template = None def setTranslator(self, translator=None): """Replace the translation engine *************** *** 401,407 **** pass username, password = decoded.split(':') try: ! LoginAction(self).verifyLogin(username, password) except LoginError, err: self.make_user_anonymous() self.response_code = 403 --- 404,410 ---- pass username, password = decoded.split(':') try: ! self.get_action_class('login')(self).verifyLogin(username, password) except LoginError, err: self.make_user_anonymous() self.response_code = 403 *************** *** 732,748 **** return None try: ! if (hasattr(self.instance, 'cgi_actions') and ! self.instance.cgi_actions.has_key(action)): ! # tracker-defined action ! action_klass = self.instance.cgi_actions[action] ! else: ! # go with a default ! for name, action_klass in self.actions: ! if name == action: ! break ! else: ! raise ValueError, 'No such action "%s"'%action # call the mapped action if isinstance(action_klass, type('')): --- 735,741 ---- return None try: ! action_klass = self.get_action_class(action) # call the mapped action if isinstance(action_klass, type('')): *************** *** 754,759 **** --- 747,766 ---- except ValueError, err: self.error_message.append(str(err)) + def get_action_class(self, action_name): + if (hasattr(self.instance, 'cgi_actions') and + self.instance.cgi_actions.has_key(action_name)): + # tracker-defined action + action_klass = self.instance.cgi_actions[action_name] + else: + # go with a default + for name, action_klass in self.actions: + if name == action_name: + break + else: + raise ValueError, 'No such action "%s"'%action_name + return action_klass + def write(self, content): if not self.headers_done: self.header()