コード例 #1
0
ファイル: views.py プロジェクト: fredreichbier/nirvana
def api_token(request):
    return render_to_response(
            'pkg/api_token.html',
            {
                'api_token': get_api_token(request.user),
            },
            context_instance=RequestContext(request),
            )
コード例 #2
0
ファイル: views.py プロジェクト: fredreichbier/nirvana
def api_authorized(request):
    def _get(key):
        if key in request.POST:
            return request.POST[key]
        else:
            raise Exception('%s not found in the data!' % key)

    username = _get('user')
    api_token = _get('token')
    package_slug = _get('package')
    version_slug = _get('version')
    variant_slug = _get('variant')

    user = get_object_or_404(User, username=username)
    if get_api_token(user) != api_token:
        raise Exception("The api token is incorrect.")

    package = get_object_or_404(Package, slug=package_slug)
    version = get_object_or_404(Version, package=package, slug=version_slug)
    return {'authorized': package.is_authorized_for_variant(user, variant_slug, True)}
コード例 #3
0
ファイル: views.py プロジェクト: fredreichbier/nirvana
def api_submit(request):
    def _get(key):
        if key in request.POST:
            return request.POST[key]
        else:
            raise Exception('%s not found in the data!' % key)
    usefile = _get('usefile')
    username = _get('user')
    slug = _get('slug')
    api_token = _get('token')
    checksums = request.POST.get('checksums', '')
    variant_name = request.POST.get('name', '')
    # first, see if the api token is correct.
    user = get_object_or_404(User, username=username)
    if get_api_token(user) != api_token:
        raise Exception("The api token is incorrect.")
    # get & validate.
    dct = parse_usefile(usefile)
    validate_usefile(dct)
    # do we have such a package and such a version?
    package = get_object_or_404(Package, slug=slug)
    version = get_object_or_404(Version, package=package, slug=dct['Version'])
    if not package.is_authorized_for_variant(user, dct['Variant'], True):
        raise Exception("You are not allowed to add this variant to this package.")
    if Variant.objects.filter(slug=dct['Variant'], version=version):
        raise Exception("A variant like this already exists.")
    # yeah, we have. create a new version.
    variant = Variant(
                    slug=dct['Variant'],
                    name=variant_name,
                    version=version,
                    usefile=usefile,
                    checksums=checksums
                    )
    variant.set_signature()
    variant.save()
    return {'path':
        urlresolvers.reverse('nirvana.pkg.views.variant',
            kwargs={'slug': package.slug, 'version_slug': dct['Version'], 'variant_slug': dct['Variant']})}