Exemple #1
0
def repositories_manage_add(request):
    if request.method == 'POST':
        form = RepositoryForm(request.user, request.POST)
        if form.is_valid():
            repo = form.save(commit=False)
            repo.user = request.user
            repo.slug = slugify(repo.title)
            repo.save()

            repo.repositoryuser_set.create(
                user=request.user,
                can_read=True,
                can_write=True,
                can_admin=True
            )

            register_repository_update(request.user, 'created', repo)
            messages.success(request, _('Repository added.'))
            return redirect('accounts_profile')
    else:
        form = RepositoryForm(request.user)

    return render(request, 'repositories/repository_manage_add.html', {
        'form': form,
    })
Exemple #2
0
def keys_delete(request, pk):
    try:
        key = SshPublicKey.objects.get(pk=pk, user=request.user)
        key.delete()
        register_repository_update(request.user, 'key_deleted')
        messages.success(request, _('Key deleted.'))
        return redirect('accounts_keys_list')
    except SshPublicKey.DoesNotExist:
        messages.error(request, _('Key not found.'))
        return redirect('accounts_keys_list')
Exemple #3
0
def keys_delete(request, pk):
    try:
        key = SshPublicKey.objects.get(pk=pk, user=request.user)
        key.delete()
        register_repository_update(request.user, 'key_deleted')
        messages.success(request, _('Key deleted.'))
        return redirect('accounts_keys_list')
    except SshPublicKey.DoesNotExist:
        messages.error(request, _('Key not found.'))
        return redirect('accounts_keys_list')
Exemple #4
0
def repositories_manage_delete(request, repo):

    if request.method == "POST":
        delete_form = RepositoryDeleteForm(request.POST)
        if delete_form.is_valid():
            register_repository_update(repo.user, "deleted", repo)
            messages.success(request, _("Repository deleted."))
            repo.delete()
            return redirect("accounts_profile")
        else:
            raise Http404
Exemple #5
0
def repositories_manage_delete(request, repo):

    if request.method == 'POST':
        delete_form = RepositoryDeleteForm(request.POST)
        if delete_form.is_valid():
            register_repository_update(repo.user, 'deleted', repo)
            messages.success(request, _('Repository deleted.'))
            repo.delete()
            return redirect('accounts_profile')
        else:
            raise Http404
Exemple #6
0
def repositories_manage_delete(request, repo):

    if request.method == 'POST':
        delete_form = RepositoryDeleteForm(request.POST)
        if delete_form.is_valid():
            register_repository_update(repo.user, 'deleted', repo)
            messages.success(request, _('Repository deleted.'))
            repo.delete()
            return redirect('accounts_profile')
        else:
            raise Http404
Exemple #7
0
def repositories_manage_change(request, repo):
    if request.method == 'POST':
        if request.POST.get('method', None) == 'add_repouser':
            result = False
            error_msg = 'No error message'

            try:
                user = User.objects.get(email=request.POST.get('email', None))
                if repo.user == user:
                    error_msg = 'You cannot re-add the repository owner.'
                elif user.repositoryuser_set.filter(repo=repo).exists():
                    error_msg = 'User already added to repository'
                else:
                    repo.repositoryuser_set.create(user=user)
                    register_repository_update(user, 'changed', repo)
                    result = True
            except User.DoesNotExist:
                error_msg ='Invalid email address'

            return HttpResponse('{"result": "%s", "error_msg": "%s"}' % (
                int(result), error_msg)
            )

        repo_form = RepositoryForm(
            request.user, request.POST, instance=repo, prefix='repository')
        users_formset = RepositoryUserFormSet(request.POST, prefix='users')

        if repo_form.is_valid():
            repo_form.save()

            if users_formset.is_valid():
                for instance in users_formset.save(commit=False):
                    if not instance.pk:
                        instance.repo = repo
                    instance.save()

            register_repository_update(request.user, 'changed', repo)
            messages.success(request, _('Repository updated.'))
            return redirect('accounts_profile')
    else:
        repo_form = RepositoryForm(request.user, instance=repo, prefix='repository')
        users_formset = RepositoryUserFormSet(
            prefix='users',
            queryset=repo.alterable_users
        )

    return render(request, 'repositories/repository_manage_change.html', {
        'repo': repo,
        'form': repo_form,
        'delete_form': RepositoryDeleteForm(),
        'users': users_formset,
    })
Exemple #8
0
def repositories_manage_change(request, repo):
    if request.method == 'POST':
        if request.POST.get('method', None) == 'add_repouser':
            result = False
            error_msg = 'No error message'

            try:
                user = User.objects.get(email=request.POST.get('email', None))
                if repo.user == user:
                    error_msg = 'You cannot re-add the repository owner.'
                elif user.repositoryuser_set.filter(repo=repo).exists():
                    error_msg = 'User already added to repository'
                else:
                    repo.repositoryuser_set.create(user=user)
                    register_repository_update(user, 'changed', repo)
                    result = True
            except User.DoesNotExist:
                error_msg ='Invalid email address'

            return HttpResponse('{"result": "%s", "error_msg": "%s"}' % (
                int(result), error_msg)
            )

        repo_form = RepositoryForm(
            request.user, request.POST, instance=repo, prefix='repository')
        users_formset = RepositoryUserFormSet(request.POST, prefix='users')

        if repo_form.is_valid():
            repo_form.save()

            if users_formset.is_valid():
                for instance in users_formset.save(commit=False):
                    if not instance.pk:
                        instance.repo = repo
                    instance.save()

            register_repository_update(request.user, 'changed', repo)
            messages.success(request, _('Repository updated.'))
            return redirect('accounts_profile')
    else:
        repo_form = RepositoryForm(request.user, instance=repo, prefix='repository')
        users_formset = RepositoryUserFormSet(
            prefix='users',
            queryset=repo.alterable_users
        )

    return render(request, 'repositories/repository_manage_change.html', {
        'repo': repo,
        'form': repo_form,
        'delete_form': RepositoryDeleteForm(),
        'users': users_formset,
    })
Exemple #9
0
def keys_change(request, pk):
    key = get_object_or_404(SshPublicKey, pk=pk, user=request.user)

    if request.method == 'POST':
        form = SshPublicKeyForm(request.POST, instance=key)
        if form.is_valid():
            key = form.save()
            register_repository_update(key.user, 'key_changed')
            messages.success(request, _('Key updated.'))
            return redirect('accounts_keys_list')
    else:
        form = SshPublicKeyForm(instance=key)

    return render(request, 'accounts/keys_change.html', {'form': form})
Exemple #10
0
def keys_add(request):
    if request.method == 'POST':
        form = SshPublicKeyForm(request.POST)
        if form.is_valid():
            key = form.save(commit=False)
            key.user = request.user
            key.save()
            register_repository_update(key.user, 'key_added')
            messages.success(request, _('Key added.'))
            return redirect('accounts_keys_list')
    else:
        form = SshPublicKeyForm()

    return render(request, 'accounts/keys_add.html', {'form': form})
Exemple #11
0
def keys_change(request, pk):
    key = get_object_or_404(SshPublicKey, pk=pk, user=request.user)

    if request.method == 'POST':
        form = SshPublicKeyForm(request.POST, instance=key)
        if form.is_valid():
            key = form.save()
            register_repository_update(key.user, 'key_changed')
            messages.success(request, _('Key updated.'))
            return redirect('accounts_keys_list')
    else:
        form = SshPublicKeyForm(instance=key)

    return render(request, 'accounts/keys_change.html', {'form': form})
Exemple #12
0
def keys_add(request):
    if request.method == 'POST':
        form = SshPublicKeyForm(request.POST)
        if form.is_valid():
            key = form.save(commit=False)
            key.user = request.user
            key.save()
            register_repository_update(key.user, 'key_added')
            messages.success(request, _('Key added.'))
            return redirect('accounts_keys_list')
    else:
        form = SshPublicKeyForm()

    return render(request, 'accounts/keys_add.html', {'form': form})
Exemple #13
0
def repositories_manage_add(request):
    if request.method == "POST":
        form = RepositoryForm(request.user, request.POST)
        if form.is_valid():
            repo = form.save(commit=False)
            repo.user = request.user
            repo.slug = slugify(repo.title)
            repo.save()
            repo.repositoryuser_set.create(user=request.user, can_read=True, can_write=True, can_admin=True)
            register_repository_update(request.user, "created", repo)
            messages.success(request, _("Repository added."))
            return redirect("accounts_profile")
    else:
        form = RepositoryForm(request.user)

    return render(request, "repositories/repository_manage_add.html", {"form": form})
Exemple #14
0
def repositories_manage_change(request, repo):
    if request.method == "POST":
        if request.POST.get("method", None) == "add_repouser":
            result = False
            error_msg = "No error message"

            try:
                user = User.objects.get(email=request.POST.get("email", None))
                if repo.user == user:
                    error_msg = "You cannot re-add the repository owner."
                elif user.repositoryuser_set.filter(repo=repo).exists():
                    error_msg = "User already added to repository"
                else:
                    repo.repositoryuser_set.create(user=user)
                    register_repository_update(user, "changed", repo)
                    result = True
            except User.DoesNotExist:
                error_msg = "Invalid email address"

            return HttpResponse('{"result": "%s", "error_msg": "%s"}' % (int(result), error_msg))

        repo_form = RepositoryForm(request.user, request.POST, instance=repo, prefix="repository")
        users_formset = RepositoryUserFormSet(request.POST, prefix="users")

        if repo_form.is_valid():
            repo_form.save()

            if users_formset.is_valid():
                for instance in users_formset.save(commit=False):
                    if not instance.pk:
                        instance.repo = repo
                    instance.save()

            register_repository_update(request.user, "changed", repo)
            messages.success(request, _("Repository updated."))
            return redirect("accounts_profile")
    else:
        repo_form = RepositoryForm(request.user, instance=repo, prefix="repository")
        users_formset = RepositoryUserFormSet(prefix="users", queryset=repo.alterable_users)

    return render(
        request,
        "repositories/repository_manage_change.html",
        {"repo": repo, "form": repo_form, "delete_form": RepositoryDeleteForm(), "users": users_formset},
    )
Exemple #15
0
def repositories_manage_add(request):
    if request.method == 'POST':
        form = RepositoryForm(request.user, request.POST)
        if form.is_valid():
            repo = form.save(commit=False)
            repo.user = request.user
            repo.slug = slugify(repo.title)
            repo.save()
            repo.repositoryuser_set.create(
                user=request.user,
                can_read=True,
                can_write=True,
                can_admin=True
            )
            register_repository_update(request.user, 'created', repo)
            messages.success(request, _('Repository added.'))
            return redirect('accounts_profile')
    else:
        form = RepositoryForm(request.user)

    return render(request, 'repositories/repository_manage_add.html', {
        'form': form,
    })