python:grok-1.4-ldapauth
Dies ist eine alte Version des Dokuments!
app.py
import grok import rolesAndPerms import ldapauth from demo import resource from zope.pluggableauth.authentication import PluggableAuthentication from zope.authentication.interfaces import IAuthentication class Demo(grok.Application, grok.Container): grok.local_utility( PluggableAuthentication, provides=IAuthentication, setup=ldapauth.setup_authentication, ) class Index(grok.View): grok.require("mysite.View") def update(self): resource.style.need() from zope.interface import Interface from zope import schema class ILoginForm(Interface): login = schema.BytesLine(title=u'Username', required=True) password = schema.Password(title=u'Password', required=True) class MyLogin(grok.Form): grok.context(Interface) grok.require('zope.Public') form_fields = grok.Fields(ILoginForm) @grok.action('login') def handle_login(self, **data): uid=self.request.get('camefrom','hans') self.redirect(self.request.form.get('camefrom', uid)) from zope.pluggableauth.interfaces import ILogout from zope.authentication.interfaces import IUnauthenticatedPrincipal from zope.component import getUtility class Logout(grok.View): grok.context(Interface) grok.require('zope.Public') def update(self): if not IUnauthenticatedPrincipal.providedBy(self.request.principal): auth = getUtility(IAuthentication) ILogout(auth).logout(self.request) def render(self): return "logout successful!!"
rolesAndPerms.py
import grok from zope.pluggableauth.interfaces import IAuthenticatedPrincipalCreated from zope.securitypolicy.interfaces import IRolePermissionManager,IPrincipalRoleManager @grok.subscribe(IAuthenticatedPrincipalCreated) def update_principal_info_from_ldap(event): principal = event.principal app = grok.getSite() prm = IPrincipalRoleManager(app) prm.assignRoleToPrincipal('mysite.Viewer', principal.id) class ViewDemo(grok.Permission): grok.name('mysite.View') grok.title('View this Demo') # optional class Viewer(grok.Role): """ A Viewer can view. """ grok.name('mysite.Viewer') grok.title('The Viewer') grok.description('A Viewer.') grok.permissions('mysite.View') # alternatively, use permission names # grok.permissions( # 'paint.ViewPainting', 'paint.EditPainting', 'paint.ErasePainting')
python/grok-1.4-ldapauth.1319015648.txt.gz · Zuletzt geändert: 2024/08/07 13:35 (Externe Bearbeitung)