Example #1
0
    def test_alternate_qs_404_by_slug(self):
        def qs():
            return Webapp.objects.filter(status=mkt.STATUS_DELETED)

        view = dec.app_view_factory(qs=qs)(self.func)
        with self.assertRaises(http.Http404):
            view(self.request, self.app.app_slug)
Example #2
0
    def test_alternate_qs_404_by_slug(self):
        def qs():
            return Webapp.objects.filter(status=mkt.STATUS_DELETED)

        view = dec.app_view_factory(qs=qs)(self.func)
        with self.assertRaises(http.Http404):
            view(self.request, self.app.app_slug)
Example #3
0
    def test_alternate_qs_200_by_slug(self):
        def qs():
            return Webapp.objects.all()

        view = dec.app_view_factory(qs=qs)(self.func)
        res = view(self.request, self.app.app_slug)
        eq_(res, mock.sentinel.OK)
Example #4
0
    def test_alternate_qs_200_by_slug(self):
        def qs():
            return Webapp.objects.all()

        view = dec.app_view_factory(qs=qs)(self.func)
        res = view(self.request, self.app.app_slug)
        eq_(res, mock.sentinel.OK)
Example #5
0
    def test_alternate_qs_301_by_id(self):
        def qs():
            return Webapp.objects.all()

        view = dec.app_view_factory(qs=qs)(self.func)
        res = view(self.request, str(self.app.id))
        self.assert3xx(res, self.slug_path, 301)
 def test_alternate_qs_404_by_slug(self):
     qs = lambda: Webapp.objects.filter(status=amo.STATUS_DELETED)
     view = dec.app_view_factory(qs=qs)(self.func)
     with self.assertRaises(http.Http404):
         view(self.request, self.app.slug)
Example #7
0
from lib.metrics import record_action
from lib.pay_server import client as solitude
from mkt.api.exceptions import AlreadyPurchased
from mkt.purchase.decorators import can_be_purchased
from mkt.purchase.models import Contribution
from mkt.site.decorators import json_view, login_required, use_master
from mkt.site.utils import log_cef
from mkt.users.models import UserProfile
from mkt.webapps.decorators import app_view_factory
from mkt.webapps.models import Webapp
from mkt.webpay.webpay_jwt import get_product_jwt, WebAppProduct

from . import tasks

log = commonware.log.getLogger('z.purchase')
app_view = app_view_factory(qs=Webapp.objects.valid)


@login_required
@app_view
@use_master
@require_POST
@json_view
@can_be_purchased
def prepare_pay(request, webapp):
    if webapp.is_premium() and webapp.has_purchased(request.user):
        log.info('Already purchased: %d' % webapp.pk)
        raise AlreadyPurchased
    return _prepare_pay(request, webapp)

Example #8
0
 def test_alternate_qs_404_by_slug(self):
     qs = lambda: Webapp.objects.filter(status=amo.STATUS_DELETED)
     view = dec.app_view_factory(qs=qs)(self.func)
     with self.assertRaises(http.Http404):
         view(self.request, self.app.slug)
Example #9
0
 def test_alternate_qs_301_by_id(self):
     qs = lambda: Webapp.objects.all()
     view = dec.app_view_factory(qs=qs)(self.func)
     res = view(self.request, str(self.app.id))
     self.assert3xx(res, self.slug_path, 301)
Example #10
0
from mkt.submit.forms import AppFeaturesForm
from mkt.tags.models import Tag
from mkt.users.models import UserProfile
from mkt.webapps.decorators import app_view, app_view_factory
from mkt.webapps.models import AddonDeviceType, AddonUser, Version, Webapp
from mkt.webapps.signals import version_changed
from mkt.websites.decorators import website_view
from mkt.websites.models import Website
from mkt.zadmin.models import set_config, unmemoized_get_config

from . import forms


QUEUE_PER_PAGE = 100
log = commonware.log.getLogger('z.reviewers')
app_view_with_deleted = app_view_factory(Webapp.with_deleted.all)


def reviewer_required(region=None, moderator=False):
    """Requires the user to be logged in as a reviewer or admin, or allows
    someone with rule 'ReviewerTools:View' for GET requests.

    Reviewer is someone who is in one of the groups with the following
    permissions:

        Apps:Review

    moderator=True extends this to users in groups who have the permssion:

        Apps:ModerateReview
Example #11
0
from mkt.developers.models import AppLog
from mkt.installs.utils import record as utils_record
from mkt.installs.utils import install_type
from mkt.prices.models import AddonPurchase
from mkt.receipts import forms
from mkt.receipts.utils import (create_receipt, create_test_receipt, get_uuid,
                                reissue_receipt)
from mkt.reviewers.views import reviewer_required
from mkt.site.decorators import json_view, write
from mkt.users.models import UserProfile
from mkt.webapps.decorators import app_view_factory
from mkt.webapps.models import Installed, Webapp
from services.verify import get_headers, Verify

log = commonware.log.getLogger('z.receipts')
app_view = app_view_factory(qs=Webapp.objects.valid)
app_all_view = app_view_factory(qs=Webapp.objects.all)


def _record(request, addon):
    logged = request.user.is_authenticated()
    premium = addon.is_premium()

    # Require login for premium.
    if not logged and premium:
        return http.HttpResponseRedirect(reverse('users.login'))

    ctx = {'addon': addon.pk}

    # Don't generate receipts if we're allowing logged-out install.
    if logged:
Example #12
0
from django import http
from django.shortcuts import get_object_or_404
from django.views.decorators.http import etag

import commonware.log

import amo
from mkt.constants import MANIFEST_CONTENT_TYPE
from mkt.site.decorators import allow_cross_site_request
from mkt.webapps.decorators import app_view_factory
from mkt.webapps.models import Webapp

log = commonware.log.getLogger('z.detail')

addon_all_view = app_view_factory(qs=Webapp.objects.all)


@allow_cross_site_request
def manifest(request, uuid):
    """Returns the "mini" manifest for packaged apps.

    If not a packaged app, returns a 404.

    """
    addon = get_object_or_404(Webapp, guid=uuid, is_packaged=True)
    is_avail = addon.status in [
        amo.STATUS_PUBLIC, amo.STATUS_UNLISTED, amo.STATUS_BLOCKED
    ]
    is_owner = addon.authors.filter(pk=request.user.pk).exists()
    is_owner_avail = addon.status == amo.STATUS_APPROVED
Example #13
0
                            render, smart_decode)
from mkt.submit.forms import AppFeaturesForm
from mkt.tags.models import Tag
from mkt.users.models import UserProfile
from mkt.webapps.decorators import app_view, app_view_factory
from mkt.webapps.models import AddonDeviceType, AddonUser, Version, Webapp
from mkt.webapps.signals import version_changed
from mkt.websites.decorators import website_view
from mkt.websites.models import Website
from mkt.zadmin.models import set_config, unmemoized_get_config

from . import forms

QUEUE_PER_PAGE = 100
log = commonware.log.getLogger('z.reviewers')
app_view_with_deleted = app_view_factory(Webapp.with_deleted.all)


def reviewer_required(region=None, moderator=False):
    """Requires the user to be logged in as a reviewer or admin, or allows
    someone with rule 'ReviewerTools:View' for GET requests.

    Reviewer is someone who is in one of the groups with the following
    permissions:

        Apps:Review

    moderator=True extends this to users in groups who have the permssion:

        Apps:ModerateReview
Example #14
0
from django.shortcuts import get_object_or_404
from django.views.decorators.http import etag

import commonware.log

import amo
from mkt.constants import MANIFEST_CONTENT_TYPE
from mkt.site.decorators import allow_cross_site_request
from mkt.webapps.decorators import app_view_factory
from mkt.webapps.models import Webapp


log = commonware.log.getLogger('z.detail')


addon_all_view = app_view_factory(qs=Webapp.objects.all)


@allow_cross_site_request
def manifest(request, uuid):
    """Returns the "mini" manifest for packaged apps.

    If not a packaged app, returns a 404.

    """
    addon = get_object_or_404(Webapp, guid=uuid, is_packaged=True)
    is_avail = addon.status in [amo.STATUS_PUBLIC, amo.STATUS_UNLISTED,
                                amo.STATUS_BLOCKED]
    is_owner = addon.authors.filter(pk=request.user.pk).exists()
    is_owner_avail = addon.status == amo.STATUS_APPROVED
    package_etag = hashlib.sha256()