a #eL@sxddlmZddlmZddlmZddlmZmZm Z ddl m Z ddl m Z ddlZddlmZGd d d eZdS) )User)login)APIView) exceptions permissionsparsers)Response)$get_user_from_external_auth_responseN)settingsc@s(eZdZejfZejejfZ ddZ dS)ExternalTokenAuthc CstjdkrtddiS|jdd}|dkr8tddiSztjtjdd|id}|}|d durt|}|durt ||d d td d iWStddiWSntd|ddiWSWn4t y}ztdt |iWYd}~Sd}~00dS)NerrorzEXTERNAL_AUTH_ENDPOINT not setZexternal_access_tokenz$external_access_token cookie not set Authorizationz Bearer %s)headersuser_idz)django.contrib.auth.backends.ModelBackend)backendredirect/zInvalid credentialsmessagez Invalid external server response) r EXTERNAL_AUTH_ENDPOINTrCOOKIESgetrequestspostjsonr r Exceptionstr)selfrequesttokenrresuserer$/webodm/app/api/externalauth.pyrs&   zExternalTokenAuth.postN) __name__ __module__ __qualname__rAllowAnypermission_classesr JSONParser FormParserparser_classesrr$r$r$r%r s r )django.contrib.auth.modelsrdjango.contrib.authrrest_framework.viewsrrest_frameworkrrrrest_framework.responserZapp.auth.backendsr rwebodmr r r$r$r$r%s