forked from GithubBackups/healthchecks
Handle excessively long email addresses in the team member invite form.
This commit is contained in:
parent
ffafc16fe5
commit
697cb19bde
@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
## Bug Fixes
|
## Bug Fixes
|
||||||
- Handle excessively long email addresses in the signup form.
|
- Handle excessively long email addresses in the signup form.
|
||||||
|
- Handle excessively long email addresses in the team member invite form.
|
||||||
|
|
||||||
## v1.16.0 - 2020-08-04
|
## v1.16.0 - 2020-08-04
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ class ChangeEmailForm(forms.Form):
|
|||||||
|
|
||||||
|
|
||||||
class InviteTeamMemberForm(forms.Form):
|
class InviteTeamMemberForm(forms.Form):
|
||||||
email = LowercaseEmailField()
|
email = LowercaseEmailField(max_length=254)
|
||||||
|
|
||||||
|
|
||||||
class RemoveTeamMemberForm(forms.Form):
|
class RemoveTeamMemberForm(forms.Form):
|
||||||
|
@ -108,6 +108,17 @@ class ProjectTestCase(BaseTestCase):
|
|||||||
q = TokenBucket.objects.filter(value="invite-%d" % self.alice.id)
|
q = TokenBucket.objects.filter(value="invite-%d" % self.alice.id)
|
||||||
self.assertFalse(q.exists())
|
self.assertFalse(q.exists())
|
||||||
|
|
||||||
|
def test_it_rejects_too_long_email_addresses(self):
|
||||||
|
self.client.login(username="alice@example.org", password="password")
|
||||||
|
|
||||||
|
aaa = "a" * 300
|
||||||
|
form = {"invite_team_member": "1", "email": f"frank+{aaa}@example.org"}
|
||||||
|
r = self.client.post(self.url, form)
|
||||||
|
self.assertEqual(r.status_code, 200)
|
||||||
|
|
||||||
|
# No email should have been sent
|
||||||
|
self.assertEqual(len(mail.outbox), 0)
|
||||||
|
|
||||||
@override_settings(SECRET_KEY="test-secret")
|
@override_settings(SECRET_KEY="test-secret")
|
||||||
def test_it_rate_limits_invites(self):
|
def test_it_rate_limits_invites(self):
|
||||||
obj = TokenBucket(value="invite-%d" % self.alice.id)
|
obj = TokenBucket(value="invite-%d" % self.alice.id)
|
||||||
|
@ -61,6 +61,17 @@
|
|||||||
border-top: 0;
|
border-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#team-table .email {
|
||||||
|
max-width: 340px;
|
||||||
|
word-wrap: break-word;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-project .panel-footer {
|
||||||
|
max-width: 100%;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
#transfer-request {
|
#transfer-request {
|
||||||
border: 5px solid #ffdc3e;
|
border: 5px solid #ffdc3e;
|
||||||
}
|
}
|
||||||
|
@ -147,13 +147,13 @@
|
|||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ project.owner.email }}</td>
|
<td class="email">{{ project.owner.email }}</td>
|
||||||
<td>Owner</td>
|
<td>Owner</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
{% for user in project.team %}
|
{% for user in project.team %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ user.email }} </td>
|
<td class="email">{{ user.email }}</td>
|
||||||
<td>Member</td>
|
<td>Member</td>
|
||||||
<td>
|
<td>
|
||||||
{% if is_owner %}
|
{% if is_owner %}
|
||||||
@ -369,6 +369,7 @@
|
|||||||
class="form-control"
|
class="form-control"
|
||||||
id="itm-email"
|
id="itm-email"
|
||||||
name="email"
|
name="email"
|
||||||
|
maxlength="254"
|
||||||
placeholder="friend@example.org">
|
placeholder="friend@example.org">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user