mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-11 07:56:17 -06:00
Fixes to the edit protected checkbox.
- Make checkbox sticky on round trips - Make required fields validate when checkbox is checked.
This commit is contained in:
parent
8190404706
commit
c4998d3902
@ -163,11 +163,10 @@ class Root(controllers.RootController):
|
||||
new_user.setValue('nsAccountLock', 'true')
|
||||
else:
|
||||
new_user.setValue('nsAccountLock', None)
|
||||
if kw.get('userpassword'):
|
||||
new_user.setValue('userpassword', kw.get('userpassword'))
|
||||
if kw.get('uidnumber'):
|
||||
if kw.get('editprotected') == 'true':
|
||||
if kw.get('userpassword'):
|
||||
new_user.setValue('userpassword', kw.get('userpassword'))
|
||||
new_user.setValue('uidnumber', str(kw.get('uidnumber')))
|
||||
if kw.get('gidnumber'):
|
||||
new_user.setValue('gidnumber', str(kw.get('gidnumber')))
|
||||
|
||||
#
|
||||
@ -480,9 +479,11 @@ class Root(controllers.RootController):
|
||||
if new_group.description != kw.get('description'):
|
||||
group_modified = True
|
||||
new_group.setValue('description', kw.get('description'))
|
||||
if kw.get('gidnumber'):
|
||||
group_modified = True
|
||||
new_group.setValue('gidnumber', str(kw.get('gidnumber')))
|
||||
if kw.get('editprotected') == 'true':
|
||||
new_gid = str(kw.get('gidnumber'))
|
||||
if new_group.gidnumber != new_gid:
|
||||
group_modified = True
|
||||
new_group.setValue('gidnumber', new_gid)
|
||||
|
||||
if group_modified:
|
||||
rv = client.update_group(new_group)
|
||||
|
@ -7,13 +7,14 @@ class GroupFields():
|
||||
description = widgets.TextField(name="description", label="Description")
|
||||
|
||||
cn_hidden = widgets.HiddenField(name="cn")
|
||||
editprotected_hidden = widgets.HiddenField(name="editprotected")
|
||||
|
||||
group_orig = widgets.HiddenField(name="group_orig")
|
||||
member_data = widgets.HiddenField(name="member_data")
|
||||
uid_to_cn_json = widgets.HiddenField(name="uid_to_cn_json")
|
||||
|
||||
class GroupNewValidator(validators.Schema):
|
||||
cn = validators.PlainText(not_empty=True)
|
||||
cn = validators.String(not_empty=True)
|
||||
description = validators.String(not_empty=False)
|
||||
|
||||
|
||||
@ -37,11 +38,15 @@ class GroupEditValidator(validators.Schema):
|
||||
gidnumber = validators.Int(not_empty=False)
|
||||
description = validators.String(not_empty=False)
|
||||
|
||||
pre_validators = [
|
||||
validators.RequireIfPresent(required='gidnumber', present='editprotected'),
|
||||
]
|
||||
|
||||
class GroupEditForm(widgets.Form):
|
||||
params = ['members', 'group']
|
||||
|
||||
fields = [GroupFields.gidnumber, GroupFields.description,
|
||||
GroupFields.cn_hidden,
|
||||
GroupFields.cn_hidden, GroupFields.editprotected_hidden,
|
||||
GroupFields.group_orig, GroupFields.member_data,
|
||||
GroupFields.uid_to_cn_json]
|
||||
|
||||
|
@ -21,6 +21,7 @@ class UserFields():
|
||||
uidnumber_hidden = widgets.HiddenField(name="uidnumber")
|
||||
gidnumber_hidden = widgets.HiddenField(name="gidnumber")
|
||||
krbPasswordExpiration_hidden = widgets.HiddenField(name="krbPasswordExpiration")
|
||||
editprotected_hidden = widgets.HiddenField(name="editprotected")
|
||||
|
||||
user_orig = widgets.HiddenField(name="user_orig")
|
||||
|
||||
@ -70,6 +71,11 @@ class UserEditValidator(validators.Schema):
|
||||
# validators.PhoneNumber may be a bit too picky, requiring an area code
|
||||
# telephonenumber = validators.PlainText(not_empty=False)
|
||||
|
||||
pre_validators = [
|
||||
validators.RequireIfPresent(required='uidnumber', present='editprotected'),
|
||||
validators.RequireIfPresent(required='gidnumber', present='editprotected'),
|
||||
]
|
||||
|
||||
chained_validators = [
|
||||
validators.FieldsMatch('userpassword', 'userpassword_confirm')
|
||||
]
|
||||
@ -81,6 +87,7 @@ class UserEditForm(widgets.Form):
|
||||
UserFields.uid_hidden, UserFields.user_orig,
|
||||
UserFields.uidnumber, UserFields.gidnumber,
|
||||
UserFields.krbPasswordExpiration_hidden,
|
||||
UserFields.editprotected_hidden,
|
||||
]
|
||||
|
||||
validator = UserEditValidator()
|
||||
|
@ -8,7 +8,7 @@
|
||||
<body>
|
||||
<div>
|
||||
<div style="float:right">
|
||||
<input type="checkbox"
|
||||
<input type="checkbox" id="toggleprotected_checkbox"
|
||||
onclick="toggleProtectedFields(this);">
|
||||
<span class="small">edit protected fields</span>
|
||||
</input>
|
||||
|
@ -24,8 +24,10 @@
|
||||
var gidnumberField = $('form_gidnumber');
|
||||
if (checkbox.checked) {
|
||||
gidnumberField.disabled = false;
|
||||
$('form_editprotected').value = 'true';
|
||||
} else {
|
||||
gidnumberField.disabled = true;
|
||||
$('form_editprotected').value = '';
|
||||
}
|
||||
}
|
||||
|
||||
@ -273,6 +275,11 @@
|
||||
if ($('form_uid_to_cn_json').value != "") {
|
||||
uid_to_cn_hash = new Hash($('form_uid_to_cn_json').value.evalJSON());
|
||||
}
|
||||
|
||||
if ($('form_editprotected').value != "") {
|
||||
$('toggleprotected_checkbox').checked = true;
|
||||
toggleProtectedFields($('toggleprotected_checkbox'));
|
||||
}
|
||||
</script>
|
||||
|
||||
<?python
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
<div>
|
||||
<div style="float:right">
|
||||
<input type="checkbox"
|
||||
<input type="checkbox" id="toggleprotected_checkbox"
|
||||
onclick="toggleProtectedFields(this);">
|
||||
<span class="small">edit protected fields</span>
|
||||
</input>
|
||||
|
@ -13,11 +13,13 @@
|
||||
passwordConfirmField.disabled = false;
|
||||
uidnumberField.disabled = false;
|
||||
gidnumberField.disabled = false;
|
||||
$('form_editprotected').value = 'true';
|
||||
} else {
|
||||
passwordField.disabled = true;
|
||||
passwordConfirmField.disabled = true;
|
||||
uidnumberField.disabled = true;
|
||||
gidnumberField.disabled = true;
|
||||
$('form_editprotected').value = '';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -228,4 +230,11 @@
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
if ($('form_editprotected').value != "") {
|
||||
$('toggleprotected_checkbox').checked = true;
|
||||
toggleProtectedFields($('toggleprotected_checkbox'));
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user