예제 #1
0
class EditProjectAdminForm(EditProjectForm):
    team = forms.ChoiceField(choices=(), required=False)
    owner = UserField(required=False)

    class Meta:
        fields = ('name', 'public', 'team', 'owner')
        model = Project
예제 #2
0
class AddOrganizationMemberForm(BaseOrganizationMemberForm):
    user = UserField()

    class Meta:
        fields = ('user', 'role')
        model = OrganizationMember

    def save(self, actor, organization, ip_address):
        om = super(AddOrganizationMemberForm, self).save(commit=False)
        om.organization = organization

        with transaction.atomic():
            try:
                om.save()
            except IntegrityError:
                return OrganizationMember.objects.get(
                    user=om.user,
                    organization=organization,
                ), False

        self.save_team_assignments(om)

        AuditLogEntry.objects.create(
            organization=organization,
            actor=actor,
            ip_address=ip_address,
            target_object=om.id,
            target_user=om.user,
            event=AuditLogEntryEvent.MEMBER_ADD,
            data=om.get_audit_log_data(),
        )

        return om, True
예제 #3
0
class AddOrganizationMemberForm(forms.ModelForm):
    user = UserField()

    class Meta:
        fields = ('user',)
        model = OrganizationMember

    def save(self, actor, organization, ip_address):
        om = super(AddOrganizationMemberForm, self).save(commit=False)
        om.organization = organization
        om.type = OrganizationMemberType.MEMBER

        sid = transaction.savepoint(using='default')
        try:
            om.save()
        except IntegrityError:
            transaction.savepoint_rollback(sid, using='default')
            return OrganizationMember.objects.get(
                user=om.user,
                organization=organization,
            ), False
        transaction.savepoint_commit(sid, using='default')

        AuditLogEntry.objects.create(
            organization=organization,
            actor=actor,
            ip_address=ip_address,
            target_object=om.id,
            target_user=om.user,
            event=AuditLogEntryEvent.MEMBER_ADD,
            data=om.get_audit_log_data(),
        )

        return om, True
예제 #4
0
class EditTeamAdminForm(EditTeamForm):
    owner = UserField(required=False)

    class Meta:
        fields = (
            'name',
            'owner',
        )
        model = Team
예제 #5
0
class NewTeamAdminForm(forms.ModelForm):
    name = forms.CharField(max_length=200, widget=forms.TextInput(attrs={'placeholder': _('e.g. My Team Name')}))
    slug = forms.SlugField(help_text=_('A slug is a URL-safe word and must be unique across all teams.'),
        widget=forms.TextInput(attrs={'placeholder': _('e.g. my-team-name')}))
    owner = UserField(required=False)

    class Meta:
        fields = ('name', 'slug', 'owner')
        model = Team
예제 #6
0
파일: projects.py 프로젝트: mortik/sentry
class EditProjectForm(BaseProjectForm):
    public = forms.BooleanField(
        required=False,
        help_text=_('Imply public access to any event for this project.'))
    team = forms.TypedChoiceField(choices=(), coerce=int, required=False)
    origins = OriginsField(
        label=_('Allowed Domains'),
        required=False,
        help_text=_('Separate multiple entries with a newline.'))
    resolve_age = RangeField(help_text=_(
        'Treat an event as resolved if it hasn\'t been seen for this amount of time.'
    ),
                             required=False,
                             min_value=0,
                             max_value=168,
                             step_value=1)
    mail_subject_prefix = forms.CharField(label=_('Mail Subject Prefix'),
                                          required=False)
    owner = UserField(required=False)

    class Meta:
        fields = ('name', 'platform', 'public', 'team', 'owner', 'slug',
                  'mail_subject_prefix')
        model = Project

    def __init__(self, request, team_list, data, instance, *args, **kwargs):
        super(EditProjectForm, self).__init__(data=data,
                                              instance=instance,
                                              *args,
                                              **kwargs)
        self.team_list = dict((t.pk, t) for t in team_list.itervalues())

        if not can_set_public_projects(request.user):
            del self.fields['public']
        if len(team_list) == 1 and instance.team == team_list.values()[0]:
            del self.fields['team']
        else:
            self.fields['team'].choices = get_team_choices(
                self.team_list, instance.team)
            self.fields['team'].widget.choices = self.fields['team'].choices

    def clean_team(self):
        value = self.cleaned_data.get('team')
        if not value:
            return

        # TODO: why is this not already an int?
        value = int(value)
        if value == -1:
            return

        if self.instance.team and value == self.instance.team.id:
            return self.instance.team

        return self.team_list[value]
예제 #7
0
class EditTeamAdminForm(EditTeamForm):
    owner = UserField(required=True)

    class Meta:
        fields = ('name', 'slug', 'owner',)
        model = Team

    def clean_slug(self):
        value = self.cleaned_data['slug']
        if value in RESERVED_TEAM_SLUGS:
            raise forms.ValidationError('You may not use "%s" as a slug' % (value,))
        return value
예제 #8
0
class NewTeamMemberForm(BaseTeamMemberForm):
    user = UserField()

    class Meta:
        fields = ('type', 'user')
        model = TeamMember

    def clean_user(self):
        value = self.cleaned_data['user']
        if not value:
            return None

        if self.project.member_set.filter(user=value).exists():
            raise forms.ValidationError(_('User is already a member of this team'))

        return value
예제 #9
0
class NewProjectAdminForm(NewProjectForm):
    owner = UserField(required=False)

    class Meta:
        fields = ('name', 'platform')
        model = Project
예제 #10
0
class EmailUserForm(forms.Form):
    username = UserField()
예제 #11
0
파일: teams.py 프로젝트: zdecibel/sentry
class NewAccessGroupMemberForm(forms.Form):
    user = UserField()
예제 #12
0
class EditProjectAdminForm(EditProjectForm):
    owner = UserField(required=False)

    class Meta:
        fields = ('name', 'public', 'team', 'owner')
        model = Project