Source code for openstack_lease_it.decorators

# coding: utf-8
"""
This module define a list of homemade decorators
"""
from functools import wraps
from django.core.exceptions import PermissionDenied


[docs]def superuser_required(view): """ If superuser access is required for a specific view, we use @superuser_required decorator :param view: As parameter, we have the view function :return: function """ @wraps(view) def wrap(request, *args, **kwargs): """ Wrapper for view function. It check if user is a superuser. If not, raise a PermissionDenied exception :param request: web request :param args: package view function argument as a list :param kwargs: package view function argument as a dict() :return: return view function return """ if request.user.is_superuser: return view(request, *args, **kwargs) else: raise PermissionDenied wrap.__doc__ = view.__doc__ wrap.__name__ = view.__name__ return wrap