web2py itself have an impersonate function, not sure is it suitable in your case or not.
e.g.
# user
db.auth_user.bulk_insert([{"first_name" : "Admin", "last_name" : "Admin",
"email" : "
ad...@a.com", "username" : "admin",
"password" : db.auth_user.password.validate("password")[0] },
{"first_name" : "User", "last_name" : "User",
"email" : "
us...@a.com", "username" : "user",
"password" : db.auth_user.password.validate("password")[0] } ] )
# permission (admin impersonate user)
auth.add_permission(1, "impersonate", "auth_user", 2)
after that please access, default/user/impersonate
best regards,
stifan