<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Thank you, Miguel!&nbsp;&nbsp; If I could speak Spanish, I would thank you a
    million times in Spanish!<br>
    <br>
    This works like a charm!<br>
    <br>
    On 08/08/2011 16:13, Miguel Beltran R. wrote:
    <blockquote
cite="mid:CAEc04cpLAc=h-nAgC+1tNOJfQDxnZqHSt8G3EGeVz28y1-zp-Q@mail.gmail.com"
      type="cite"><br>
      <br>
      <div class="gmail_quote">2011/8/7 paul <span dir="ltr">&lt;<a
            moz-do-not-send="true" href="mailto:paul@aptrackers.com">paul@aptrackers.com</a>&gt;</span><br>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex;">
          I was wondering whether there's an easier way to do this.<br>
          <br>
          Currently, whenever I use the grok UI manager interface, my
          grok instance remains logged in as manager- so my app PAU
          instance detects a valid login and doesn't allow me to log
          out. &nbsp; I can log out my own users at application level, but
          since the 'manager' identity is not managed by my own PAU
          instance, I cannot seem to log out manager.<br>
          <br>
          Currently, I clear the zope session cookie, close the browser
          tab, and reload the URL to clear the login. &nbsp; I'm sure there's
          an easier way, but after much searching through the web online
          docs and the zope implementation code, I'm blowed if I know
          what it is.<br>
          <br>
          Can someone point me in the right direction?<br>
          <br>
          <br>
        </blockquote>
        <div><br>
          I do this to logout using Basic Auth.<br>
          <br>
          It detect if I'm logged, if it's true then raise an
          unauthorized status and ask again for user and password. Just
          press OK and you are logout.<br>
          <br>
          PageTemplate:<br>
          &nbsp;&nbsp;&nbsp; &lt;div id="cuadro-usuario"<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tal:define="usr user/getUserName"&gt;<br>
          <br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div tal:condition="python: usr &lt;&gt; 'Anonymous
          User'"&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span tal:condition="exists: request/salgo"&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span tal:define="x
          context/scripts/usuario_salir"&gt;&lt;/span&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/span&gt;<br>
          <br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span tal:content="usr"&gt;&lt;/span&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a tal:attributes="href python:request.BASE2 +
          '?salgo=true'" <br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; target="_parent"&gt; - Logout&lt;/a&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>
          <br>
          <br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div tal:condition="python: usr == 'Anonymous
          User'"&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span tal:condition="exists: request/entro"&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span tal:define="x
          context/scripts/usuario_entrar"&gt;&lt;/span&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/span&gt;<br>
          <br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a tal:attributes="href python:request.BASE2 +
          '?entro=true'" <br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; target="_parent"&gt;Login&lt;/a&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
          &nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>
          <br>
          <br>
          &lt;usuario_entrar&gt;:<br>
          request = container.REQUEST<br>
          response =&nbsp; request.RESPONSE<br>
          <br>
          response.setStatus('Unauthorized')<br>
          response.setHeader('WWW-Authenticate', 'basic
          realm="OPTIMUSMX', 1)<br>
          <br>
          <br>
          &lt;usuario_salir&gt;:<br>
          request = container.REQUEST<br>
          response =&nbsp; request.RESPONSE<br>
          <br>
          response.setHeader('WWW-Authenticate', 'basic
          realm="OPTIMUSMX', 1)<br>
          response.setStatus('Unauthorized')<br>
          <br>
          <br>
          <br>
        </div>
      </div>
      -- <br>
      ________________________________________<br>
      Lo bueno de vivir un dia mas<br>
      es saber que nos queda un dia menos de vida<br>
    </blockquote>
    <br>
  </body>
</html>