python 2.7 - App engine User api returning incorrect user when accessed through endpoints -


the application i'm working on had python wsgi based rest backend. have moved cloud endpoints , authentication done endpoints.get_current_user(). works new code. still using old services (datastore fetches etc) , these services rely on users.get_current_user() authentication method.

now whenever users api called old services after called endpoints method, users.get_current_user() method returns internal user id used endpoints, , not id of current user.

is known feature (issue) or doing wrong?

# method called endpoints api  def getuser():   """authorize , return user object."""   user = endpoints.get_current_user()   if not user:     raise endpoints.unauthorizedexception()   # below call old user service. works because   # user ldap supplied   return user_service.user(user.email().split('@')[0]) 

if user_service.user instantiated ldap, works fine both old , new services. within old module call following function made authenticate user:

def checkuserrole(roles):   # below call returns user object endpoints internal user id   # since user constructor not being called ldap ,   # falls on users.get_current_user()    user = user_service.user()   if user.getuserrole() not in roles:     raise unauthorizedexception()   # user_service.user class snippet: class user(object):   def __init__(self, ldap=none):     if not ldap:       ldap = utils.userldap() # returns incorrect user object     self.login = ldap # ldap internal id     .... 

this can fixed passing in ldap returned endpoints.get_current_user() every user call mean changing whole bunch of method parameters , constructor calls. wasn't able find anywhere else. there way around it?


Comments

Popular posts from this blog

shopping cart - Page redirect not working PHP -

php - How to modify a menu to show sub-menus -

python - Installing PyDev in eclipse is failed -