summaryrefslogtreecommitdiffstats
path: root/install
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2012-07-09 16:58:00 +0200
committerPetr Vobornik <pvoborni@redhat.com>2012-07-10 13:30:38 +0200
commit848bd0e9e738a4590049a223868dcfe6749a9154 (patch)
tree8539184b9e3d9655d953980b12487db68ea16253 /install
parent05cf7c53a69b7c999ac68c2869db924e2dccc3a0 (diff)
downloadfreeipa-848bd0e9e738a4590049a223868dcfe6749a9154.tar.gz
freeipa-848bd0e9e738a4590049a223868dcfe6749a9154.tar.xz
freeipa-848bd0e9e738a4590049a223868dcfe6749a9154.zip
Password policy measurement units.
When filling password policy it may be unclear what value to enter because user may not remember field's measurement unit. This patch adds support for declaring measurement units. It's done in field's/widget's spec by entering key for unit's string (which is in IPA.messages.measurement_units[key]). Measurement units in table layout are displayed in parenthesis after label. It is to be consistent with some fields which have measurement unit integrated in label. This patch defines measurement units for password policy's 'History size', 'Failure reset interval' and 'Lockout duration' fields. https://fedorahosted.org/freeipa/ticket/2437
Diffstat (limited to 'install')
-rw-r--r--install/ui/field.js6
-rw-r--r--install/ui/policy.js15
-rw-r--r--install/ui/test/data/ipa_init.json4
-rw-r--r--install/ui/user.js9
-rw-r--r--install/ui/widget.js15
5 files changed, 40 insertions, 9 deletions
diff --git a/install/ui/field.js b/install/ui/field.js
index 84ec0c4df..fb292ff2a 100644
--- a/install/ui/field.js
+++ b/install/ui/field.js
@@ -35,6 +35,7 @@ IPA.field = function(spec) {
that.param = spec.param || spec.name;
that.label = spec.label;
that.tooltip = spec.tooltip;
+ that.measurement_unit = spec.measurement_unit;
that.formatter = spec.formatter;
that.widget = null;
@@ -348,8 +349,9 @@ IPA.field = function(spec) {
that.set_widget_flags = function() {
if (that.widget) {
- if(that.label) that.widget.label = that.label;
- if(that.title) that.widget.title = that.title;
+ if (that.label) that.widget.label = that.label;
+ if (that.title) that.widget.title = that.title;
+ if (that.measurement_unit) that.widget.measurement_unit = that.measurement_unit;
that.widget.undo = that.undo;
that.widget.writable = that.writable;
that.widget.read_only = that.read_only;
diff --git a/install/ui/policy.js b/install/ui/policy.js
index 604664f12..acad0c8c2 100644
--- a/install/ui/policy.js
+++ b/install/ui/policy.js
@@ -48,12 +48,21 @@ IPA.pwpolicy.entity = function(spec) {
},
'krbmaxpwdlife',
'krbminpwdlife',
- 'krbpwdhistorylength',
+ {
+ name: 'krbpwdhistorylength',
+ measurement_unit: 'number_of_passwords'
+ },
'krbpwdmindiffchars',
'krbpwdminlength',
'krbpwdmaxfailure',
- 'krbpwdfailurecountinterval',
- 'krbpwdlockoutduration',
+ {
+ name: 'krbpwdfailurecountinterval',
+ measurement_unit: 'seconds'
+ },
+ {
+ name: 'krbpwdlockoutduration',
+ measurement_unit: 'seconds'
+ },
'cospriority'
]
}]}).
diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json
index 85ff9366c..527d09163 100644
--- a/install/ui/test/data/ipa_init.json
+++ b/install/ui/test/data/ipa_init.json
@@ -138,6 +138,10 @@
"password": "Password",
"username": "Username"
},
+ "measurement_units": {
+ "number_of_passwords": "number of passwords",
+ "seconds": "seconds"
+ },
"objects": {
"aci": {
"attribute": "Attribute"
diff --git a/install/ui/user.js b/install/ui/user.js
index 02f6f73e4..24873ecf5 100644
--- a/install/ui/user.js
+++ b/install/ui/user.js
@@ -149,7 +149,8 @@ IPA.user.entity = function(spec) {
{
name: 'krbpwdhistorylength',
label: IPA.get_entity_param('pwpolicy', 'krbpwdhistorylength').label,
- read_only: true
+ read_only: true,
+ measurement_unit: 'number_of_passwords'
},
{
name: 'krbpwdmindiffchars',
@@ -169,12 +170,14 @@ IPA.user.entity = function(spec) {
{
name: 'krbpwdfailurecountinterval',
label: IPA.get_entity_param('pwpolicy', 'krbpwdfailurecountinterval').label,
- read_only: true
+ read_only: true,
+ measurement_unit: 'seconds'
},
{
name: 'krbpwdlockoutduration',
label: IPA.get_entity_param('pwpolicy', 'krbpwdlockoutduration').label,
- read_only: true
+ read_only: true,
+ measurement_unit: 'seconds'
}
]
},
diff --git a/install/ui/widget.js b/install/ui/widget.js
index a55cc347f..64547da7d 100644
--- a/install/ui/widget.js
+++ b/install/ui/widget.js
@@ -36,6 +36,7 @@ IPA.widget = function(spec) {
that.id = spec.id;
that.label = spec.label;
that.tooltip = spec.tooltip;
+ that.measurement_unit = spec.measurement_unit;
that.entity = IPA.get_entity(spec.entity); //some old widgets still need it
that.facet = spec.facet;
@@ -2688,10 +2689,12 @@ IPA.table_layout = function(spec) {
title: widget.label
}).appendTo(tr);
+ var label_text = widget.label + that.get_measurement_unit_text(widget) + ':';
+
$('<label/>', {
name: widget.name,
'class': that.label_class,
- text: widget.label+':'
+ text: label_text
}).appendTo(td);
if(widget.create_required) {
@@ -2713,6 +2716,16 @@ IPA.table_layout = function(spec) {
return table;
};
+
+ that.get_measurement_unit_text = function(widget) {
+
+ if (widget.measurement_unit) {
+ var unit = IPA.messages.measurement_units[widget.measurement_unit];
+ return ' (' + unit + ')';
+ }
+ return '';
+ };
+
return that;
};