def new_function(*args, **kwargs): try: request = [a for a in args if hasattr(a, 'user')][0] except IndexError: response = BaseView() return response.add_errors( "Login required method called without request object", status=500) response = BaseView(request=request) if request.user.is_authenticated() and request.user.is_superuser: return decorated_function(*args, **kwargs) return response.add_errors('401 -- Unauthorized', status=401)
def auth_check(self, request, method): if not hasattr( method, '_unauthenticated') and not request.user.is_authenticated(): response = BaseView(request) return response.add_errors('401 -- Unauthorized', status=401).serialize()
def generic_exception_handler(request, exception): from services.view import BaseView response = BaseView(request=request) _, _, tb = sys.exc_info() import traceback frames = traceback.extract_tb(tb) frame_template = "File %s, line %s, in %s\n %s\n" error_header = '----%s----\n' % datetime.datetime.utcnow() error = '' for frame in frames: error += frame_template % frame if len(str(exception.message)) < 2000: error += str(exception.message) error += '\n' response.add_errors(error) logger = logging.getLogger('default') logger.error(error_header + error) try: transaction.rollback() except Exception as e: print "Error rolling back: " + e.message return response.serialize()