Skip to content

Commit b11374a

Browse files
committed
Add view to edit groups public key. See ietf-tools#905
- Legacy-Id: 5073
1 parent 587681b commit b11374a

2 files changed

Lines changed: 40 additions & 1 deletion

File tree

ietf/nomcom/forms.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,40 @@ def done(self, request, cleaned_data):
139139
email=chair_info['email_obj'])
140140

141141
return HttpResponseRedirect(reverse('edit_chair', kwargs={'year': self.year}))
142+
143+
144+
class EditPublicKeyForm(forms.Form):
145+
146+
public_key = forms.CharField(label="Public Key", widget=forms.Textarea)
147+
148+
149+
class EditPublicKeyFormPreview(FormPreview):
150+
form_template = 'nomcom/edit_publickey.html'
151+
preview_template = 'nomcom/edit_publickey_preview.html'
152+
153+
def __call__(self, request, *args, **kwargs):
154+
year = kwargs['year']
155+
group = get_object_or_404(NomComGroup,
156+
acronym__icontains=year,
157+
state__slug='active')
158+
is_group_chair = group.is_chair(request.user)
159+
if not is_group_chair:
160+
return HttpResponseForbidden("Must be group chair")
161+
162+
self.state['group'] = group
163+
self.group = group
164+
self.year = year
165+
166+
return super(EditPublicKeyFormPreview, self).__call__(request, *args, **kwargs)
167+
168+
def parse_params(self, *args, **kwargs):
169+
170+
if self.group.public_key:
171+
self.form.base_fields['public_key'].initial = self.group.public_key
172+
173+
def done(self, request, cleaned_data):
174+
public_key = cleaned_data['public_key']
175+
if public_key:
176+
self.group.public_key = public_key
177+
self.group.save()
178+
return HttpResponseRedirect(reverse('edit_publickey', kwargs={'year': self.year}))

ietf/nomcom/urls.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
from django.conf.urls.defaults import patterns, url
22
from ietf.nomcom.forms import EditChairForm, EditChairFormPreview, \
3-
EditMembersForm, EditMembersFormPreview
3+
EditMembersForm, EditMembersFormPreview, \
4+
EditPublicKeyForm, EditPublicKeyFormPreview
45

56
urlpatterns = patterns('ietf.nomcom.views',
67
url(r'^(?P<year>\d{4})/edit-chair/$', EditChairFormPreview(EditChairForm), name='edit_chair'),
78
url(r'^(?P<year>\d{4})/edit-members/$', EditMembersFormPreview(EditMembersForm), name='edit_members'),
9+
url(r'^(?P<year>\d{4})/edit-publickey/$', EditPublicKeyFormPreview(EditPublicKeyForm), name='edit_publickey'),
810
)

0 commit comments

Comments
 (0)