#   Copyright 2011 Ryan W Sims (rwsims@gmail.com)
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
import logging

from google.appengine.api import users

from vendors import models


class RequestUserMiddleware(object):
    """Middleware to add a user and a user_account to each request.

    The cached current account class variable is also updated.
    """

    def process_request(self, request):
        user = users.get_current_user()
        request.user = user
        if user:
            account = models.UserAccount.get_account_for_user(user)
            models.UserAccount.current_account = account
            request.user_account = account
        request.is_admin = users.is_current_user_admin()
