Example #1
0
def manage_project(request, project):
    result = plugins.first('has_perm', request.user, 'edit_project', project)
    if result is False and not request.user.has_perm('sentry.can_change_project'):
        return HttpResponseRedirect(reverse('sentry'))

    team_list = get_team_list(request.user)

    form = EditProjectForm(request, team_list, request.POST or None, instance=project)

    if form.is_valid():
        project = form.save()

        return HttpResponseRedirect(request.path + '?success=1')

    member_list = [(tm, tm.user) for tm in project.team.member_set.select_related('user')]

    try:
        key = ProjectKey.objects.get(user=request.user, project=project)
    except ProjectKey.DoesNotExist:
        key = None  # superuser

    context = csrf(request)
    context.update({
        'can_remove_project': can_remove_project(request.user, project),
        'page': 'details',
        'key': key,
        'form': form,
        'project': project,
        'member_list': member_list,
        'TEAM_LIST': team_list.values(),
    })

    return render_to_response('sentry/projects/manage.html', context, request)
Example #2
0
def new_project(request):
    from django.contrib.auth.models import User

    if not can_create_projects(request.user):
        return HttpResponseRedirect(reverse('sentry'))

    allow_create_teams = can_create_teams(request.user)
    team_list = get_team_list(request.user)

    if request.user.has_perm('sentry.can_add_project') and User.objects.all()[0:2] == 2:
        project_form_cls = NewProjectAdminForm
        project_initial = {
            'owner': request.user.username,
        }
    else:
        project_form_cls = NewProjectForm
        project_initial = {}

    if len(team_list) > 0:
        select_team_form = SelectTeamForm(team_list, request.POST or None, prefix='st')
    elif not allow_create_teams:
        return render_to_response('sentry/projects/cannot_create_teams.html', {}, request)
    else:
        select_team_form = None

    if allow_create_teams:
        new_team_form = NewTeamForm(request.POST or None, prefix='nt')
    else:
        new_team_form = None

    project_form = project_form_cls(request.POST or None, initial=project_initial, prefix='prj')

    is_new_team = new_team_form and new_team_form.is_valid()
    if is_new_team or not select_team_form:
        team_form = new_team_form
    else:
        team_form = select_team_form

    if project_form.is_valid() and team_form.is_valid():
        project = project_form.save(commit=False)
        if not project.owner:
            project.owner = request.user
        if is_new_team:
            team = new_team_form.save(commit=False)
            team.owner = project.owner
            team.save()
        else:
            team = select_team_form.cleaned_data['team']
        project.team = team
        project.save()
        return HttpResponseRedirect(reverse('sentry-project-client-help', args=[project.slug]))

    return render_to_response('sentry/projects/new.html', {
        'project_form': project_form,
        'select_team_form': select_team_form,
        'new_team_form': new_team_form,
    }, request)
Example #3
0
def manage_project(request, project):
    result = plugins.first('has_perm', request.user, 'edit_project', project)
    if result is False and not request.user.has_perm(
            'sentry.can_change_project'):
        return HttpResponseRedirect(reverse('sentry'))

    team_list = get_team_list(request.user)

    if request.user.has_perm('sentry.can_change_project'):
        form_cls = EditProjectAdminForm
    else:
        form_cls = EditProjectForm

    form = form_cls(request,
                    team_list,
                    request.POST or None,
                    instance=project,
                    initial={
                        'origins':
                        '\n'.join(get_option('sentry:origins', project) or []),
                        'owner':
                        project.owner,
                    })

    if form.is_valid():
        project = form.save()
        set_option('sentry:origins',
                   form.cleaned_data.get('origins') or [], project)
        return HttpResponseRedirect(request.path + '?success=1')

    if not project.team:
        member_list = []
    else:
        member_list = [(tm, tm.user)
                       for tm in project.team.member_set.select_related('user')
                       ]

    context = csrf(request)
    context.update({
        'can_remove_project':
        can_remove_project(request.user, project),
        'page':
        'details',
        'form':
        form,
        'project':
        project,
        'member_list':
        member_list,
        'TEAM_LIST':
        team_list.values(),
    })

    return render_to_response('sentry/projects/manage.html', context, request)
Example #4
0
        def _wrapped(request, team_slug, *args, **kwargs):
            if request.user.is_superuser:
                try:
                    team = Team.objects.get_from_cache(slug=team_slug)
                except Team.DoesNotExist:
                    return HttpResponseRedirect(reverse('sentry'))
                return func(request, team, *args, **kwargs)

            team_list = get_team_list(request.user, group_or_func)
            try:
                team = team_list[team_slug]
            except KeyError:
                return HttpResponseRedirect(reverse('sentry'))

            return func(request, team, *args, **kwargs)
Example #5
0
        def _wrapped(request, team_slug, *args, **kwargs):
            if request.user.is_superuser:
                try:
                    team = Team.objects.get_from_cache(slug=team_slug)
                except Team.DoesNotExist:
                    return HttpResponseRedirect(reverse('sentry'))
                return func(request, team, *args, **kwargs)

            team_list = get_team_list(request.user, group_or_func)
            try:
                team = team_list[team_slug]
            except (KeyError, ValueError):
                return HttpResponseRedirect(reverse('sentry'))

            return func(request, team, *args, **kwargs)
Example #6
0
def manage_project(request, project):
    result = plugins.first('has_perm', request.user, 'edit_project', project)
    if result is False and not request.user.has_perm('sentry.can_change_project'):
        return HttpResponseRedirect(reverse('sentry'))

    team_list = get_team_list(request.user)

    if request.user.has_perm('sentry.can_change_project'):
        form_cls = EditProjectAdminForm
    else:
        form_cls = EditProjectForm

    form = form_cls(request, team_list, request.POST or None, instance=project, initial={
        'origins': '\n'.join(get_option('sentry:origins', project) or []),
        'owner': project.owner,
    })

    if form.is_valid():
        project = form.save()
        set_option('sentry:origins', form.cleaned_data.get('origins') or [], project)
        return HttpResponseRedirect(request.path + '?success=1')

    if not project.team:
        member_list = []
    else:
        member_list = [(tm, tm.user) for tm in project.team.member_set.select_related('user')]

    context = csrf(request)
    context.update({
        'can_remove_project': can_remove_project(request.user, project),
        'page': 'details',
        'form': form,
        'project': project,
        'member_list': member_list,
        'TEAM_LIST': team_list.values(),
    })

    return render_to_response('sentry/projects/manage.html', context, request)
Example #7
0
def manage_project(request, project):
    result = plugins.first('has_perm', request.user, 'edit_project', project)
    if result is False and not request.user.has_perm(
            'sentry.can_change_project'):
        return HttpResponseRedirect(reverse('sentry'))

    team_list = get_team_list(request.user)

    form = EditProjectForm(request,
                           team_list,
                           request.POST or None,
                           instance=project)

    if form.is_valid():
        project = form.save()

        return HttpResponseRedirect(request.path + '?success=1')

    member_list = [(tm, tm.user)
                   for tm in project.team.member_set.select_related('user')]

    context = csrf(request)
    context.update({
        'can_remove_project':
        can_remove_project(request.user, project),
        'page':
        'details',
        'form':
        form,
        'project':
        project,
        'member_list':
        member_list,
        'TEAM_LIST':
        team_list.values(),
    })

    return render_to_response('sentry/projects/manage.html', context, request)
Example #8
0
def new_project(request):
    from django.contrib.auth.models import User

    if not can_create_projects(request.user):
        return HttpResponseRedirect(reverse('sentry'))

    allow_create_teams = can_create_teams(request.user)
    team_list = get_team_list(request.user)

    if request.user.has_perm(
            'sentry.can_add_project') and User.objects.all()[0:2] == 2:
        project_form_cls = NewProjectAdminForm
        project_initial = {
            'owner': request.user.username,
        }
    else:
        project_form_cls = NewProjectForm
        project_initial = {}

    if len(team_list) > 0:
        select_team_form = SelectTeamForm(team_list,
                                          request.POST or None,
                                          prefix='st')
    elif not allow_create_teams:
        return render_to_response('sentry/projects/cannot_create_teams.html',
                                  {}, request)
    else:
        select_team_form = None

    if allow_create_teams:
        new_team_form = NewTeamForm(request.POST or None, prefix='nt')
    else:
        new_team_form = None

    project_form = project_form_cls(request.POST or None,
                                    initial=project_initial,
                                    prefix='prj')

    is_new_team = new_team_form and new_team_form.is_valid()
    if is_new_team:
        team_form = new_team_form
    else:
        team_form = select_team_form

    if project_form.is_valid() and team_form.is_valid():
        project = project_form.save(commit=False)
        if not project.owner:
            project.owner = request.user
        if is_new_team:
            team = new_team_form.save(commit=False)
            team.owner = project.owner
            team.save()
        else:
            team = select_team_form.cleaned_data['team']
        project.team = team
        project.save()
        return HttpResponseRedirect(
            reverse('sentry-project-client-help', args=[project.slug]))

    return render_to_response(
        'sentry/projects/new.html', {
            'project_form': project_form,
            'select_team_form': select_team_form,
            'new_team_form': new_team_form,
        }, request)