Created
November 15, 2011 14:59
-
-
Save mitchellrj/1367268 to your computer and use it in GitHub Desktop.
Plone debug mode login
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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