0001-manager-fix-import-roles-crash-when-single-ou-46448.patch
src/authentic2/manager/forms.py | ||
---|---|---|
675 | 675 |
file_field_label = _('Organizational Units Export File') |
676 | 676 | |
677 | 677 | |
678 |
class RolesImportForm(HideOUFieldMixin, LimitQuerysetFormMixin, SiteImportForm):
|
|
678 |
class RolesImportForm(LimitQuerysetFormMixin, SiteImportForm): |
|
679 | 679 |
file_field_label = _('Roles Export File') |
680 | 680 | |
681 |
def __init__(self, *args, **kwargs): |
|
682 |
super().__init__(*args, **kwargs) |
|
683 |
if utils.get_ou_count() < 2: |
|
684 |
self.fields['ou'].widget = forms.HiddenInput() |
|
685 | ||
681 | 686 |
ou = forms.ModelChoiceField( |
682 | 687 |
label=_('Organizational unit'), |
683 | 688 |
queryset=get_ou_model().objects, |
tests/test_role_manager.py | ||
---|---|---|
166 | 166 |
resp = resp.form.submit().follow() |
167 | 167 | |
168 | 168 |
assert not OrganizationalUnit.objects.filter(slug="should_not_exist").exists() |
169 | ||
170 | ||
171 |
def test_manager_role_import_single_ou(app, admin, simple_role): |
|
172 |
assert OrganizationalUnit.objects.count() == 1 |
|
173 |
response = login(app, admin, 'a2-manager-roles') |
|
174 | ||
175 |
export_response = response.click('Export') |
|
176 |
export = export_response.json |
|
177 | ||
178 |
assert len(export['roles']) == 1 |
|
179 |
simple_role.delete() |
|
180 | ||
181 |
resp = app.get('/manage/roles/') |
|
182 |
resp = resp.click('Import') |
|
183 |
assert not 'Organizational unit' in resp.text |
|
184 |
assert resp.form['ou'].attrs['type'] == 'hidden' |
|
185 | ||
186 |
resp.form['site_json'] = Upload('export.json', json.dumps(export).encode(), 'application/json') |
|
187 |
resp = resp.form.submit().follow() |
|
188 | ||
189 |
imported_role = Role.objects.get(slug=simple_role.slug) |
|
190 |
assert imported_role.ou == simple_role.ou |
|
169 |
- |