diff --git a/browser/loops/auth.py b/browser/loops/auth.py new file mode 100644 index 0000000..410e7ab --- /dev/null +++ b/browser/loops/auth.py @@ -0,0 +1,51 @@ +# +# Copyright (c) 2006 Helmut Merz helmutm@cy55.de +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +""" +login, logout and similar stuff. + +$Id$ +""" + +import urllib +from zope.app import zapi +from zope.app.security.browser.auth import LoginLogout as BaseLoginLogout +from zope.cachedescriptors.property import Lazy +from zope.i18n import translate +from zope.app.security.interfaces import IUnauthenticatedPrincipal +from zope.app.security.interfaces import ILogoutSupported +from zope.app.i18n import ZopeMessageFactory as _ + + +class LoginLogout(BaseLoginLogout): + + def __call__(self): + if IUnauthenticatedPrincipal.providedBy(self.request.principal): + return u'%s' % ( + #urllib.quote(self.request.getURL()), + translate(_('[Login]'), context=self.request, + default='[Login]')) + elif ILogoutSupported(self.request, None) is not None: + return u'%s' % ( + urllib.quote(zapi.absoluteURL(self.context, self.request)), + translate(_('[Logout]'), context=self.request, + default='[Logout]')) + else: + return None + + diff --git a/browser/loops/configure.zcml b/browser/loops/configure.zcml index e9b4b90..11b5a16 100644 --- a/browser/loops/configure.zcml +++ b/browser/loops/configure.zcml @@ -17,4 +17,22 @@ + + + + + + + + diff --git a/browser/loops/loginform.pt b/browser/loops/loginform.pt new file mode 100644 index 0000000..6e0554e --- /dev/null +++ b/browser/loops/loginform.pt @@ -0,0 +1,57 @@ + + + + Sign in + + + + + + + + + + +
+
+ +
+

+ Please provide Login Information

+

+ You are not authorized to perform this action. However, you may login as a + different user who is authorized.

+
+
+ +
+
+
User Name
+
+ +
+
+ +
+
Password
+
+ +
+
+ +
+ +
+ +
+
+ + + +