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)
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)
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)
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)
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)
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
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:
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
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
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()