Ñò ýJc@s“ddklZddklZddklZd„Zd„Zdd d„ƒYZddd „ƒYZd d d d „Z d d d d d „Z d S(iÿÿÿÿ(t implements(tIAuthenticator(tIMetadataProvidercCs†yddkl}Wn#tj oddkl}nX|idƒo |d}||ƒiƒ}n|}||jotStS(Niÿÿÿÿ(tsha1(tnews{SHA}i( thashlibRt ImportErrortshaRt startswitht hexdigesttTruetFalse(tcleartext_passwordtstored_password_hashRtdigest((s:/usr/lib/python2.6/site-packages/repoze/who/plugins/sql.pytdefault_password_compares  c s‡fd†}|S(Ncsddk}|iˆdƒS(Niÿÿÿÿsrepoze.who.dsn(tpsycopg2tconnect(R(tkw(s:/usr/lib/python2.6/site-packages/repoze/who/plugins/sql.pyt conn_factorys ((RR((Rs:/usr/lib/python2.6/site-packages/repoze/who/plugins/sql.pytmake_psycopg_conn_factorystSQLAuthenticatorPlugincBs$eZeeƒd„Zd„ZRS(cCs/||_||_|pt|_d|_dS(N(tqueryRRt compare_fntNonetconn(tselfRRR((s:/usr/lib/python2.6/site-packages/repoze/who/plugins/sql.pyt__init__$s  cCsžd|jodS|ip|iƒ|_n|iiƒ}|i|i|ƒ|iƒ}|iƒ|o,|\}}|i|d|ƒo|SndS(Ntlogintpassword( RRRtcursortexecuteRtfetchonetcloseR(Rtenvirontidentitytcurstresulttuser_idR((s:/usr/lib/python2.6/site-packages/repoze/who/plugins/sql.pyt authenticate-s     (t__name__t __module__RRRR'(((s:/usr/lib/python2.6/site-packages/repoze/who/plugins/sql.pyR!s  tSQLMetadataProviderPlugincBs$eZeeƒd„Zd„ZRS(cCs1||_||_||_||_d|_dS(N(tnameRRtfilterRR(RR+RRR,((s:/usr/lib/python2.6/site-packages/repoze/who/plugins/sql.pyR>s     cCsž|idjo|iƒ|_n|iiƒ}|d|d<|i|i|ƒ|iƒ}|io|i|ƒ}n|iƒ|d=|||i s