Skip to content

Instantly share code, notes, and snippets.

@mitchellrj
Created November 15, 2011 14:59
Show Gist options
  • Save mitchellrj/1367268 to your computer and use it in GitHub Desktop.
Save mitchellrj/1367268 to your computer and use it in GitHub Desktop.
Plone debug mode login
from AccessControl.SecurityManagement import newSecurityManager
from Testing.makerequest import makerequest
from zope.component.hooks import setSite
def get_manager(app):
for uid in app.acl_users.users.listUserIds():
user = app.acl_users.users.getUser(uid)
if 'Manager' in user.getRoles():
return user
def login(app, manager_id=None, manager=None):
if manager:
user = manager
elif manager_id:
user = app.acl_users.getUserById(manager_id).__of__(app.acl_users)
else:
raise TypeError("Must specify either a 'manager' or 'manager_id' argument!")
newSecurityManager(None, user)
return makerequest(app)
if __name__=='__main__':
manager = get_manager(app)
if manager:
app = login(app, manager=manager)
else:
print "Could not get manager user!"
portal = (app.objectValues('Plone Site')+[None])[0]
if portal:
setSite(portal)
else:
print "Could not get portal!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment