Ejemplo n.º 1
0
    def _user_can_modify_price_list_item(self, item):
        if self.request.user.is_staff:
            return True

        customer = structure_permissions._get_customer(item)
        return customer.has_user(self.request.user,
                                 structure_models.CustomerRole.OWNER)
Ejemplo n.º 2
0
def user_is_owner_or_service_manager(request, view, obj=None):
    if not obj:
        return

    if isinstance(obj, models.Offering):
        offering = obj
    elif isinstance(obj, models.Resource):
        customer = structure_permissions._get_customer(obj)

        if structure_permissions._has_owner_access(request.user, customer):
            return

        offering = obj.offering
    else:
        return

    if offering.has_user(request.user):
        return

    if structure_permissions._has_owner_access(request.user,
                                               offering.customer):
        return

    if offering.customer.has_user(
            request.user, role=structure_models.CustomerRole.SERVICE_MANAGER):
        return

    raise exceptions.PermissionDenied()
Ejemplo n.º 3
0
def get_is_service_provider(serializer, scope):
    customer = structure_permissions._get_customer(scope)
    return models.ServiceProvider.objects.filter(customer=customer).exists()
Ejemplo n.º 4
0
def check_customer_blocked(obj):
    from waldur_core.structure import permissions

    customer = permissions._get_customer(obj)
    if customer and customer.blocked:
        raise ValidationError(_('Blocked organization is not available.'))