%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python27/lib/python2.7/site-packages/paste/auth/
Upload File :
Create Path :
Current File : //opt/alt/python27/lib/python2.7/site-packages/paste/auth/form.pyo

�
a�Nc@s�dZddlmZmZdZdefd��YZeZdgZd�Z	de
kr~ddlZejd	ej
�ndS(
s(
Authentication via HTML Form

This is a very simple HTML form login screen that asks for the username
and password.  This middleware component requires that an authorization
function taking the name and passsword and that it be placed in your
application stack. This class does not include any session management
code or way to save the user's authorization; however, it is easy enough
to put ``paste.auth.cookie`` in your application stack.

>>> from paste.wsgilib import dump_environ
>>> from paste.httpserver import serve
>>> from paste.auth.cookie import AuthCookieHandler
>>> from paste.auth.form import AuthFormHandler
>>> def authfunc(environ, username, password):
...    return username == password
>>> serve(AuthCookieHandler(
...           AuthFormHandler(dump_environ, authfunc)))
serving on...

i����(t
construct_urltparse_formvarss�<html>
  <head><title>Please Login!</title></head>
  <body>
    <h1>Please Login</h1>
    <form action="%s" method="post">
      <dl>
        <dt>Username:</dt>
        <dd><input type="text" name="username"></dd>
        <dt>Password:</dt>
        <dd><input type="password" name="password"></dd>
      </dl>
      <input type="submit" name="authform" />
      <hr />
    </form>
  </body>
</html>
tAuthFormHandlercBs#eZdZdd�Zd�ZRS(s�
    HTML-based login middleware

    This causes a HTML form to be returned if ``REMOTE_USER`` is
    not found in the ``environ``.  If the form is returned, the
    ``username`` and ``password`` combination are given to a
    user-supplied authentication function, ``authfunc``.  If this
    is successful, then application processing continues.

    Parameters:

        ``application``

            The application object is called only upon successful
            authentication, and can assume ``environ['REMOTE_USER']``
            is set.  If the ``REMOTE_USER`` is already set, this
            middleware is simply pass-through.

        ``authfunc``

            This is a mandatory user-defined function which takes a
            ``environ``, ``username`` and ``password`` for its first
            three arguments.  It should return ``True`` if the user is
            authenticated.

        ``template``

            This is an optional (a default is provided) HTML
            fragment that takes exactly one ``%s`` substution
            argument; which *must* be used for the form's ``action``
            to ensure that this middleware component does not alter
            the current path.  The HTML form must use ``POST`` and
            have two input names:  ``username`` and ``password``.

    Since the authentication form is submitted (via ``POST``)
    neither the ``PATH_INFO`` nor the ``QUERY_STRING`` are accessed,
    and hence the current path remains _unaltered_ through the
    entire authentication process. If authentication succeeds, the
    ``REQUEST_METHOD`` is converted from a ``POST`` to a ``GET``,
    so that a redirect is unnecessary (unlike most form auth
    implementations)
    cCs%||_||_|pt|_dS(N(tapplicationtauthfunctTEMPLATEttemplate(tselfRRR((s@/opt/alt/python27/lib/python2.7/site-packages/paste/auth/form.pyt__init__[s		cCs|jdd�}|r(|j||�Sd|dkr�t|dt�}|jd�}|jd�}|r�|r�|j|||�r�d|d	<||d<d
|d<d|d<d|d<|d
=|j||�Sq�n|jt|�}|dddtt|��fg�|gS(NtREMOTE_USERttPOSTtREQUEST_METHODtinclude_get_varstusernametpasswordtformt	AUTH_TYPEtGETtCONTENT_LENGTHtCONTENT_TYPEspaste.parsed_formvarss200 OKsContent-Types	text/htmlsContent-Length(sContent-Types	text/html(	tgetRRtFalseRRRtstrtlen(Rtenvirontstart_responseRtformvarsRtcontent((s@/opt/alt/python27/lib/python2.7/site-packages/paste/auth/form.pyt__call__`s(




	N(t__name__t
__module__t__doc__tNoneRR(((s@/opt/alt/python27/lib/python2.7/site-packages/paste/auth/form.pyR/s*cKsbddlm}ddl}||�}|jd�}|dk	rR||�}nt|||�S(s�
    Grant access via form authentication

    Config looks like this::

      [filter:grant]
      use = egg:Paste#auth_form
      realm=myrealm
      authfunc=somepackage.somemodule:somefunction
      
    i����(teval_importNR(tpaste.util.import_stringR"ttypesRR!R(tapptglobal_conftrealmRtkwR"R$R((s@/opt/alt/python27/lib/python2.7/site-packages/paste/auth/form.pyt	make_form|st__main__Ntoptionflags(R t
paste.requestRRRtobjectRt
middlewaret__all__R)RtdoctestttestmodtELLIPSIS(((s@/opt/alt/python27/lib/python2.7/site-packages/paste/auth/form.pyt<module>sI		

Zerion Mini Shell 1.0