Example #1
0
File: views.py Project: vault/bugit
def pubkey_edit(request, key_id=None):
    if key_id is not None:
        pk = get_object_or_404(PublicKey, pk=key_id)
    else:
        pk = None

    user = request.user
    if not user.is_authenticated() or pk.owner != user:
        return HttpResponse("Not allowed", status=401)

    if request.method == 'POST':
        if key_id is not None:
            form = PublicKeyForm(request.POST, instance=pk)
        else:
            form = PublicKeyForm(request.POST)
        if form.is_valid():
            try:
                pk = form.save()
                return redirect('user_settings')
            except IntegrityError:
                form._errors["description"] = ErrorList(["You have a public key with that name already"])
                context = get_context(request, {'form' : form, 'pk': pk})
                return render_to_response('user_manage/key_edit.html', context, context_instance=RequestContext(request))
    elif request.method == 'GET':
        form = PublicKeyForm(model_to_dict(pk))
    else:
        return HttpResponse("Not implemented", status=405)

    context = get_context(request, {'form' : form, 'pk' : pk})
    return render_to_response('user_manage/key_edit.html', context, context_instance= RequestContext(request))
Example #2
0
File: views.py Project: vault/bugit
def repo_new(request):
    user = request.user

    if not user.is_authenticated():
        return HttpResponse("You can't add this", status=401)

    if request.method == 'GET':
        new_form = NewRepositoryForm()
        form = RepositoryForm()
    elif request.method == 'POST':
        new_form = NewRepositoryForm(request.POST)
        form = RepositoryForm(request.POST)
        if new_form.is_valid() and form.is_valid():
            repo = form.save(commit=False)
            repo.owner = user
            repo.name = new_form.cleaned_data['repo_name']
            try:
                repo.save()
                repo.collaboration_set.add(
                    Collaboration(user=user, permission='O'))
                return redirect('repo_desc', user.username, repo.name)
            except IntegrityError:
                new_form._errors["repo_name"] = ErrorList(
                    ["You already have a repository named that"])
    context = get_context(request, {'new_form': new_form, 'form': form})
    return render_to_response('repo_manage/repo_edit.html',
                              context,
                              context_instance=RequestContext(request))
Example #3
0
File: views.py Project: vault/bugit
def repo_access(request, user_name, repo_name):
    user = request.user
    owner = get_object_or_404(User, username=user_name)
    repo = get_object_or_404(Repository, owner=owner, name=repo_name)

    owners = repo.owners()
    writers = repo.writers()
    readers = repo.readers()

    access = repo.user_access(user)

    if access is None:
        return HttpResponse('Not authorized', status=401)

    context = get_context(
        request, {
            'repo': repo,
            'access': access,
            'owners': owners,
            'writers': writers,
            'readers': readers,
            'owner': owner
        })
    return render_to_response('repo_manage/repo_access.html',
                              context,
                              context_instance=RequestContext(request))
Example #4
0
File: views.py Project: vault/bugit
def repo_edit(request, user_name, repo_name):
    owner = get_object_or_404(User, username=user_name)
    user = request.user
    repo = get_object_or_404(Repository, owner=owner, name=repo_name)


    access = repo.user_access(user)

    if access != 'O':
        return HttpResponse("You can't edit this", status=401)

    if request.method == 'GET':
        form = RepositoryForm(model_to_dict(repo))
        colab_form = CollaborationFormSet(instance=repo, 
                queryset=repo.collaboration_set.exclude(user=user))
    elif request.method == 'POST':
        form = RepositoryForm(request.POST, instance=repo)
        colab_form = CollaborationFormSet(request.POST, instance=repo)
        if form.is_valid() and colab_form.is_valid():
            repo = form.save()
            colab_form.save()
            return redirect('repo_desc', owner.username, repo.name)

    context = get_context(request, {'owner': owner, 'repo' : repo, 'form' : form,
        'colab': colab_form, 'access': access })
    return render_to_response('repo_manage/repo_edit.html', context, context_instance=RequestContext(request))
Example #5
0
File: views.py Project: vault/bugit
def repo_edit(request, user_name, repo_name):
    owner = get_object_or_404(User, username=user_name)
    user = request.user
    repo = get_object_or_404(Repository, owner=owner, name=repo_name)

    access = repo.user_access(user)

    if access != 'O':
        return HttpResponse("You can't edit this", status=401)

    if request.method == 'GET':
        form = RepositoryForm(model_to_dict(repo))
        colab_form = CollaborationFormSet(
            instance=repo, queryset=repo.collaboration_set.exclude(user=user))
    elif request.method == 'POST':
        form = RepositoryForm(request.POST, instance=repo)
        colab_form = CollaborationFormSet(request.POST, instance=repo)
        if form.is_valid() and colab_form.is_valid():
            repo = form.save()
            colab_form.save()
            return redirect('repo_desc', owner.username, repo.name)

    context = get_context(
        request, {
            'owner': owner,
            'repo': repo,
            'form': form,
            'colab': colab_form,
            'access': access
        })
    return render_to_response('repo_manage/repo_edit.html',
                              context,
                              context_instance=RequestContext(request))
Example #6
0
File: views.py Project: vault/bugit
def user_settings(request):
    user = request.user
    new_pk = PublicKeyForm()
    p_form = ProfileForm()
    pubkeys = user.publickey_set.all()
    profile = UserProfile.objects.get_or_create(user=user)[0]

    if not user.is_authenticated():
        return HttpResponse("Not authorized", status=401)

    if request.method == 'GET':
        user_form = UserForm(model_to_dict(user))
        p_form = ProfileForm(model_to_dict(profile))
    elif request.method == 'POST':
        user_form = UserForm(request.POST, instance=user)
        if user_form.is_valid():
            user = user_form.save()
            return redirect('user_settings')
    context = get_context(
        request, {
            'user_form': user_form,
            'pk_form': new_pk,
            'keys': pubkeys,
            'profile_form': p_form
        })
    return render_to_response('user_manage/user_settings.html',
                              context,
                              context_instance=RequestContext(request))
Example #7
0
File: views.py Project: vault/bugit
def repo_clone(request, user_name, repo_name):
    user = request.user
    owner = get_object_or_404(User, username=user_name)
    repo = get_object_or_404(Repository, owner=owner, name=repo_name)

    access = repo.user_access(user)

    if access is None:
        return HttpResponse('Not authorized', status=401)

    context = get_context(request,
            {'repo' : repo, 'access':access, 'owner':owner})
    return render_to_response('repo_manage/repo_clone.html', context, context_instance=RequestContext(request))
Example #8
0
File: views.py Project: vault/bugit
def pubkey_edit(request, key_id=None):
    if key_id is not None:
        pk = get_object_or_404(PublicKey, pk=key_id)
    else:
        pk = None

    user = request.user
    if not user.is_authenticated() or pk.owner != user:
        return HttpResponse("Not allowed", status=401)

    if request.method == 'POST':
        if key_id is not None:
            form = PublicKeyForm(request.POST, instance=pk)
        else:
            form = PublicKeyForm(request.POST)
        if form.is_valid():
            try:
                pk = form.save()
                return redirect('user_settings')
            except IntegrityError:
                form._errors["description"] = ErrorList(
                    ["You have a public key with that name already"])
                context = get_context(request, {'form': form, 'pk': pk})
                return render_to_response(
                    'user_manage/key_edit.html',
                    context,
                    context_instance=RequestContext(request))
    elif request.method == 'GET':
        form = PublicKeyForm(model_to_dict(pk))
    else:
        return HttpResponse("Not implemented", status=405)

    context = get_context(request, {'form': form, 'pk': pk})
    return render_to_response('user_manage/key_edit.html',
                              context,
                              context_instance=RequestContext(request))
Example #9
0
File: views.py Project: vault/bugit
def repo_list(request, user_name):
    user = request.user
    owner = get_object_or_404(User, username=user_name)

    if user == owner:
        owned = owned_repos(owner, include_private=True)
        write = writable_repos(owner, include_private=True) 
        read  = readable_repos(owner, include_private=True)
    else:
        owned = owned_repos(owner)
        write = writable_repos(owner)
        read = None
    context = get_context(request,
            { 'owned' : owned,'write':write, 'read':read, 'owner' : owner,})
    return render_to_response('repo_manage/repo_list.html', context, context_instance=RequestContext(request))
Example #10
0
File: views.py Project: vault/bugit
def repo_browse(request, user_name, repo_name, method='summary', path=None):
    user = request.user
    owner = get_object_or_404(User, username=user_name)
    repo = get_object_or_404(Repository, owner=owner, name=repo_name)
    collaborators = repo.collaborators.all()

    access = repo.user_access(user)

    if access is None:
        return HttpResponse('Not authorized', status=401)

    commit_id = request.GET.get('id')
    q = request.GET.get('q', '')
    qtype = request.GET.get('qt', 'grep')

    messages = {
        'grep': 'Log Message',
        'author': 'Author',
        'committer': 'Committer',
        'range': 'Range'
    }
    search_text = messages.get(qtype, messages['grep'])

    if method == 'tree':
        file_path = path.split('/')
        path_parts = cumulative_path(file_path)
        file_path = zip(file_path, path_parts)
    else:
        file_path = None

    query = request.GET.urlencode()
    url = cgit_url(user_name, repo_name, method, path, query)
    text = get(url)

    context = get_context(
        request, {
            'owner': owner,
            'repo_html': text.text,
            'repo': repo,
            'access': access,
            'id': commit_id,
            'method': method,
            'q': q,
            'qtype': qtype,
            'search_text': search_text,
            'file_path': file_path
        })
    return render_to_response('viewer/repo_view.html', context)
Example #11
0
File: views.py Project: vault/bugit
def repo_browse(request, user_name, repo_name, method="summary", path=None):
    user = request.user
    owner = get_object_or_404(User, username=user_name)
    repo = get_object_or_404(Repository, owner=owner, name=repo_name)
    collaborators = repo.collaborators.all()

    access = repo.user_access(user)

    if access is None:
        return HttpResponse("Not authorized", status=401)

    commit_id = request.GET.get("id")
    q = request.GET.get("q", "")
    qtype = request.GET.get("qt", "grep")

    messages = {"grep": "Log Message", "author": "Author", "committer": "Committer", "range": "Range"}
    search_text = messages.get(qtype, messages["grep"])

    if method == "tree":
        file_path = path.split("/")
        path_parts = cumulative_path(file_path)
        file_path = zip(file_path, path_parts)
    else:
        file_path = None

    query = request.GET.urlencode()
    url = cgit_url(user_name, repo_name, method, path, query)
    text = get(url)

    context = get_context(
        request,
        {
            "owner": owner,
            "repo_html": text.text,
            "repo": repo,
            "access": access,
            "id": commit_id,
            "method": method,
            "q": q,
            "qtype": qtype,
            "search_text": search_text,
            "file_path": file_path,
        },
    )
    return render_to_response("viewer/repo_view.html", context)
Example #12
0
File: views.py Project: vault/bugit
def feedback_main(request):
    success = False
    if 'success' in request.GET:
        success = True

    if request.method == 'GET':
        form = FeedbackForm()
    elif request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            feedback = form.save(commit=False)
            feedback.sender = request.user
            feedback.save()
            furl = reverse('feedback') + '?success=1'
            return HttpResponseRedirect(furl)

    context = get_context(request, {'form':form, 'success':success})
    return render_to_response('feedback/feedback.html', context, context_instance=RequestContext(request))
Example #13
0
File: views.py Project: vault/bugit
def pubkey_add(request):
    user = request.user

    if not user.is_authenticated():
        return HttpResponse("You should be authenticated....", status=401)

    if request.method == 'GET':
        form = PublicKeyForm()
    elif request.method == 'POST':
        form = PublicKeyForm(request.POST)
        if form.is_valid():
            key = form.save(commit=False)
            key.owner = user
            try:
                key.save()
                return redirect('user_settings')
            except IntegrityError:
                form._errors["description"] = ErrorList(["You have a public key with that name already"])
    context = get_context(request, {'form' : form})
    return render_to_response('user_manage/key_edit.html', context, context_instance=RequestContext(request))
Example #14
0
File: views.py Project: vault/bugit
def feedback_main(request):
    success = False
    if 'success' in request.GET:
        success = True

    if request.method == 'GET':
        form = FeedbackForm()
    elif request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            feedback = form.save(commit=False)
            feedback.sender = request.user
            feedback.save()
            furl = reverse('feedback') + '?success=1'
            return HttpResponseRedirect(furl)

    context = get_context(request, {'form': form, 'success': success})
    return render_to_response('feedback/feedback.html',
                              context,
                              context_instance=RequestContext(request))
Example #15
0
File: views.py Project: vault/bugit
def user_settings(request):
    user = request.user
    new_pk = PublicKeyForm()
    p_form = ProfileForm()
    pubkeys = user.publickey_set.all()
    profile = UserProfile.objects.get_or_create(user=user)[0]

    if not user.is_authenticated():
        return HttpResponse("Not authorized", status=401)

    if request.method == 'GET':
        user_form = UserForm(model_to_dict(user))
        p_form = ProfileForm(model_to_dict(profile))
    elif request.method == 'POST':
        user_form = UserForm(request.POST, instance=user)
        if user_form.is_valid():
            user = user_form.save()
            return redirect('user_settings')
    context = get_context(request, { 'user_form' : user_form, 'pk_form': new_pk,
        'keys' : pubkeys, 'profile_form': p_form })
    return render_to_response('user_manage/user_settings.html', context, context_instance=RequestContext(request))
Example #16
0
File: views.py Project: vault/bugit
def repo_list(request, user_name):
    user = request.user
    owner = get_object_or_404(User, username=user_name)

    if user == owner:
        owned = owned_repos(owner, include_private=True)
        write = writable_repos(owner, include_private=True)
        read = readable_repos(owner, include_private=True)
    else:
        owned = owned_repos(owner)
        write = writable_repos(owner)
        read = None
    context = get_context(request, {
        'owned': owned,
        'write': write,
        'read': read,
        'owner': owner,
    })
    return render_to_response('repo_manage/repo_list.html',
                              context,
                              context_instance=RequestContext(request))
Example #17
0
File: views.py Project: vault/bugit
def repo_simple_new(request):
    user = request.user

    if not user.is_authenticated():
        return HttpResponse("You can't add this", status=401)
    
    if request.method == 'GET':
        return redirect('repo_new')
    elif request.method == 'POST':
        new_form = NewRepositoryForm(request.POST)
        if new_form.is_valid():
            repo = Repository(owner=user)
            repo.name = new_form.cleaned_data['repo_name']
            try:
                repo.save()
                repo.collaboration_set.add(Collaboration(user=user, permission='O'))
                return redirect('repo_edit', user.username, repo.name)
            except IntegrityError:
                new_form._errors["repo_name"] = ErrorList(["You DKDKDK already have a repository named that"])
    context = get_context(request, {'new_form':new_form, 'form':RepositoryForm()})
    return render_to_response('repo_manage/repo_edit.html', context, context_instance=RequestContext(request))
Example #18
0
File: views.py Project: vault/bugit
def pubkey_add(request):
    user = request.user

    if not user.is_authenticated():
        return HttpResponse("You should be authenticated....", status=401)

    if request.method == 'GET':
        form = PublicKeyForm()
    elif request.method == 'POST':
        form = PublicKeyForm(request.POST)
        if form.is_valid():
            key = form.save(commit=False)
            key.owner = user
            try:
                key.save()
                return redirect('user_settings')
            except IntegrityError:
                form._errors["description"] = ErrorList(
                    ["You have a public key with that name already"])
    context = get_context(request, {'form': form})
    return render_to_response('user_manage/key_edit.html',
                              context,
                              context_instance=RequestContext(request))