code: def visible(self):
          
          if not self.in_workspace():
              return False
  
          if not self.context.join_policy == "self":
              return False
  
          user = api.user.get_current()
          workspace = IWorkspace(self.context.acquire_workspace())
          if user.getUserName() in workspace.members:
              return False
  
          return True
docs: Join viewlet is shown if:
          * In a 'self-join' workspace
          * User is not already a member