=== modified file 'src/mailman/rest/lists.py' --- src/mailman/rest/lists.py 2011-06-16 20:46:02 +0000 +++ src/mailman/rest/lists.py 2011-08-12 23:22:56 +0000 @@ -50,17 +50,12 @@ e.g. /member/aperson@example.org """ - if len(segments) != 2: - return None - try: - role = MemberRole[segments[0]] - except ValueError: - # Not a valid role. + if len(segments) != 2 or segments[0] != 'member': return None # No more segments. # XXX 2010-02-25 barry Matchers are undocumented in restish; they return a # 3-tuple of (match_args, match_kws, segments). - return (), dict(role=role, address=segments[1]), () + return (), dict(address=segments[1]), () @restish_matcher @@ -145,11 +140,14 @@ return no_content() @resource.child(member_matcher) - def member(self, request, segments, role, address): + def member(self, request, segments, address): """Return a single member representation.""" if self._mlist is None: return http.not_found() - return AMember(self._mlist, role, address) + member = self._mlist.members.get_member(address) + if member is None: + return http.not_found() + return AMember(member._member_id) @resource.child(roster_matcher) def roster(self, request, segments, role):