def refresh(self, request): try: email = verify_refresh_request(request) except ExpiredSignatureError: @request.after def expired_nonce_or_token(response): response.status_code = 403 return {"validationError": "Your session has expired"} except InvalidTokenError: @request.after def invalid_token(response): response.status_code = 403 return {"validationError": "Could not refresh your token"} else: user = User.get(email=email) @request.after def remember(response): # Checks if user is member of Admin group. is_admin = Group.get(name="Admin") in user.groups identity = morepath.Identity( email, nickname=user.nickname, isAdmin=is_admin, uid=request.class_link(User, variables={"id": user.id}), ) request.app.remember_identity(response, request, identity)
def refresh(self, request): userid = verify_refresh_request(request) @request.after def remember(response): identity = Identity(userid) request.app.remember_identity(response, request, identity) return {'userid': userid}
def refresh(self, request): userid = verify_refresh_request(request) updated_extra_claims = { 'fullname': 'Harry Potter', 'email': '*****@*****.**', 'role': 'father' } @request.after def remember(response): identity = Identity(userid, **updated_extra_claims) request.app.remember_identity(response, request, identity) return { 'userid': 'user', 'fullname': 'Harry Potter', 'email': '*****@*****.**', 'role': 'father' }
def refresh(self, request): verify_refresh_request(request)