[Checkins] SVN: Sandbox/luciano/kirbi/src/kirbi/app sesstion login working

Luciano Ramalho luciano at ramalho.org
Sat Aug 18 12:45:51 EDT 2007


Log message for revision 78956:
  sesstion login working
  

Changed:
  U   Sandbox/luciano/kirbi/src/kirbi/app.py
  U   Sandbox/luciano/kirbi/src/kirbi/app_templates/index.pt
  U   Sandbox/luciano/kirbi/src/kirbi/app_templates/master.pt

-=-
Modified: Sandbox/luciano/kirbi/src/kirbi/app.py
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/app.py	2007-08-18 16:43:43 UTC (rev 78955)
+++ Sandbox/luciano/kirbi/src/kirbi/app.py	2007-08-18 16:45:50 UTC (rev 78956)
@@ -27,14 +27,13 @@
 grok.define_permission('kirbi.ManageBook')
 
 def setup_pau(pau):
-    pau['principals'] = PrincipalFolder('kirbi.principals.')
+    pau['principals'] = PrincipalFolder()
     pau.authenticatorPlugins = ('principals',)
 
     pau['session'] = session = SessionCredentialsPlugin()
     session.loginpagename = 'login'
-    # pau.credentialsPlugins = ('No Challenge if Authenticated', 'session',)
-    pau.credentialsPlugins = ('No Challenge if Authenticated',)
-
+    pau.credentialsPlugins = ('No Challenge if Authenticated', 'session',)
+    
 def role_factory(*args):
     def factory():
         return LocalRole(*args)
@@ -57,6 +56,7 @@
 def grant_permissions(app, event):
     role_manager = IRolePermissionManager(app)
     role_manager.grantPermissionToRole('kirbi.AddCopy', 'kirbi.Owner')
+    role_manager.grantPermissionToRole('kirbi.ManageBook', 'kirbi.Owner')
 
 class Index(grok.View):
 
@@ -83,8 +83,7 @@
     # register this view for all objects
     grok.context(Interface)
 
-class SessionLogin(grok.View):
-    # XXX currently disabled
+class Login(grok.View):
     grok.context(Interface)
 
     def update(self, login_submit=None):
@@ -95,16 +94,10 @@
                 destination = self.application_url()
             self.redirect(destination)
 
-class Login(grok.View):
-    # the old login view is above ^^^!
-    grok.context(Kirbi)
-    grok.require('kirbi.AddCopy')
-    def render(self):
-        self.redirect(self.application_url())
-
 class Logout(grok.View):
     grok.context(Interface)
     def render(self):
+        # XXX: find out how to logout from a session login
         return "This should log you out (but doesn't yet)."
 
 class Join(grok.AddForm):
@@ -119,10 +112,11 @@
     ### by the password confirmation invariant (see interfaces.IUser)
     @grok.action('Save')
     def join(self, **data):
+        #XXX: change this method to use our UserFolder and User class instead
+        #     of PrincipalFolder and InternalPrincipal
         login = data['login']
         self.context[login] = User(**data)
     
-        #XXX: change this to use our User class instead of the InternalPrincipal
         # add principal to principal folder
         pau = getUtility(IAuthentication)
         principals = pau['principals']
@@ -140,12 +134,12 @@
         from zope.app.session.session import ISession
         unp = IUnauthenticatedPrincipal
         pri = self.request.principal
-        status = unp.providedBy(pri)
+        unauth = unp.providedBy(pri)
         ses = ISession(self.request)
-        import pdb; pdb.set_trace()
+        # import pdb; pdb.set_trace()
         if hasattr(pri,'getLogin'):
             login = pri.getLogin()
         else:
             login = 'N/A'
-        return 'id: [%s] login: [%s]' % (pri.id, login)
+        return 'unauth: [%s] id: [%s] login: [%s]' % (unauth, pri.id, login)
  
\ No newline at end of file

Modified: Sandbox/luciano/kirbi/src/kirbi/app_templates/index.pt
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/app_templates/index.pt	2007-08-18 16:43:43 UTC (rev 78955)
+++ Sandbox/luciano/kirbi/src/kirbi/app_templates/index.pt	2007-08-18 16:45:50 UTC (rev 78956)
@@ -22,39 +22,6 @@
     <td valign="top" align="center">
         <h2>Recent additions</h2>
         
-        <div id="document-navigation"
-     tal:define="IUnauthenticatedPrincipal nocall:modules/zope.app.security.interfaces/IUnauthenticatedPrincipal">
-  <h4 tal:content="request/principal/title">user name</h4>
-
-  <ul tal:condition="python:IUnauthenticatedPrincipal.providedBy(request.principal)">
-    <li>
-      <a href="login"
-         tal:attributes="href string:${view/application_url}/login">
-        Log in
-      </a>
-    </li>
-    <li>
-      <a href="signup"
-         tal:attributes="href string:${view/application_url}/signup">
-        Register
-      </a>
-    </li>
-    <li><a href="XXX">Lost password?</a></li>
-  </ul>
-
-  <ul tal:condition="python:not IUnauthenticatedPrincipal.providedBy(request.principal)">
-    <li>
-      <a href="logout"
-         tal:attributes="href string:${view/application_url}/logout.html">
-        Log out
-      </a>
-    </li>
-  </ul>
-</div>
-
-        
-        
-        
     </td></tr>
   </table>
   

Modified: Sandbox/luciano/kirbi/src/kirbi/app_templates/master.pt
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/app_templates/master.pt	2007-08-18 16:43:43 UTC (rev 78955)
+++ Sandbox/luciano/kirbi/src/kirbi/app_templates/master.pt	2007-08-18 16:45:50 UTC (rev 78956)
@@ -19,19 +19,21 @@
   </metal:hdr>
 
 </head>
-<body onload=setfocus()>
+<body onload=setfocus()
+    tal:define="IUnauthenticatedPrincipal python:modules['zope.app.security.interfaces'].IUnauthenticatedPrincipal;
+                anonymous python:IUnauthenticatedPrincipal.providedBy(request.principal)">
 
   <div class="top">
     <a tal:attributes="href python:view.application_url()">
         <img tal:attributes="src static/circulante-logo-transp-212x51.png"
         title="Circulante.org" width="212" height="51" />
     </a>
-    <ul tal:condition="not:exists:view/request/principal/getLogin">
+    <ul tal:condition="anonymous">
         <li><a tal:attributes="href python:view.application_url('pac')">catalog</a></li>
         <li><a tal:attributes="href python:view.application_url('login')">login</a></li>
         <li><a tal:attributes="href python:view.application_url('join')">join</a></li>
     </ul>
-    <ul tal:condition="exists:view/request/principal/getLogin">
+    <ul tal:condition="not:anonymous">
         <li><a tal:attributes="href python:view.application_url('pac')">catalog</a></li>
         <li><a tal:attributes="href python:view.application_url('u')">users</a></li>
         <li><a tal:attributes="href python:view.application_url('pac/addbooks')">add books</a></li>
@@ -47,12 +49,12 @@
             </span>
         </span>
         <span class="content_login">
-           <span tal:condition="exists:view/request/principal/getLogin">
-              login: <span tal:replace="view/request/principal/getLogin" />
-           </span>
-           <span tal:condition="not:exists:view/request/principal/getLogin">
+           <span tal:condition="anonymous">
               (not logged in)
            </span>
+           <span tal:condition="not:anonymous">
+              login: <span tal:replace="view/request/principal/id" />
+           </span>
         </span>
         <span metal:define-slot="content_actions">
           <form class="search" tal:attributes="action python:view.application_url('pac')">



More information about the Checkins mailing list