summaryrefslogtreecommitdiffstats
path: root/install/ui/user.js
diff options
context:
space:
mode:
authorEndi Sukma Dewata <edewata@redhat.com>2011-12-19 18:31:35 -0600
committerPetr Vobornik <pvoborni@redhat.com>2012-01-10 18:42:26 +0100
commit74e31cd9853539f860f68e813191083e46a1192b (patch)
tree0e4914c06c68bd839d4b20897b5273f7c4ded06d /install/ui/user.js
parent0e037f24ce59752713d8291eae30403cb864c758 (diff)
downloadfreeipa-74e31cd9853539f860f68e813191083e46a1192b.tar.gz
freeipa-74e31cd9853539f860f68e813191083e46a1192b.tar.xz
freeipa-74e31cd9853539f860f68e813191083e46a1192b.zip
Added policies into user details page.
The user details page has been modified to show the password policy and Kerberos ticket policy that apply to the user. The policies are currently displayed as read-only. Ticket #703
Diffstat (limited to 'install/ui/user.js')
-rw-r--r--install/ui/user.js257
1 files changed, 198 insertions, 59 deletions
diff --git a/install/ui/user.js b/install/ui/user.js
index 01d196cec..c50261a36 100644
--- a/install/ui/user.js
+++ b/install/ui/user.js
@@ -55,65 +55,133 @@ IPA.user.entity = function(spec) {
'title'
]
}).
- details_facet({ sections: [
- {
- name: 'identity',
- label: IPA.messages.details.identity,
- fields: [
- 'title',
- 'givenname',
- 'sn',
- 'cn',
- 'displayname',
- 'initials'
- ]
- },
- {
- name: 'account',
- fields: [
- {
- factory: IPA.user_status_widget,
- name: 'nsaccountlock',
- label: IPA.messages.objects.user.account_status
- },
- 'uid',
- { factory: IPA.user_password_widget, name: 'userpassword' },
- 'uidnumber',
- 'gidnumber',
- 'loginshell',
- 'homedirectory'
- ]
- },
- {
- name: 'contact',
- fields: [
- { type: 'multivalued', name: 'mail' },
- { type: 'multivalued', name: 'telephonenumber' },
- { type: 'multivalued', name: 'pager' },
- { type: 'multivalued', name: 'mobile' },
- { type: 'multivalued', name: 'facsimiletelephonenumber' }
- ]
- },
- {
- name: 'mailing',
- fields: ['street', 'l', 'st', 'postalcode']
- },
- {
- name: 'employee',
- fields: [
- 'ou',
- {
- type: 'entity_select',
- name: 'manager',
- other_entity: 'user',
- other_field: 'uid'
- }
- ]
- },
- {
- name: 'misc',
- fields: ['carlicense']
- }]
+ details_facet({
+ factory: IPA.user.details_facet,
+ sections: [
+ {
+ name: 'identity',
+ label: IPA.messages.details.identity,
+ fields: [
+ 'title',
+ 'givenname',
+ 'sn',
+ 'cn',
+ 'displayname',
+ 'initials'
+ ]
+ },
+ {
+ name: 'account',
+ fields: [
+ {
+ factory: IPA.user_status_widget,
+ name: 'nsaccountlock',
+ label: IPA.messages.objects.user.account_status
+ },
+ 'uid',
+ {
+ factory: IPA.user_password_widget,
+ name: 'userpassword'
+ },
+ 'uidnumber',
+ 'gidnumber',
+ 'loginshell',
+ 'homedirectory'
+ ]
+ },
+ {
+ name: 'pwpolicy',
+ label: IPA.messages.objects.pwpolicy.identity,
+ fields: [
+ {
+ name: 'krbmaxpwdlife',
+ label: IPA.get_entity_param('pwpolicy', 'krbmaxpwdlife').label,
+ read_only: true
+ },
+ {
+ name: 'krbminpwdlife',
+ label: IPA.get_entity_param('pwpolicy', 'krbminpwdlife').label,
+ read_only: true
+ },
+ {
+ name: 'krbpwdhistorylength',
+ label: IPA.get_entity_param('pwpolicy', 'krbpwdhistorylength').label,
+ read_only: true
+ },
+ {
+ name: 'krbpwdmindiffchars',
+ label: IPA.get_entity_param('pwpolicy', 'krbpwdmindiffchars').label,
+ read_only: true
+ },
+ {
+ name: 'krbpwdminlength',
+ label: IPA.get_entity_param('pwpolicy', 'krbpwdminlength').label,
+ read_only: true
+ },
+ {
+ name: 'krbpwdmaxfailure',
+ label: IPA.get_entity_param('pwpolicy', 'krbpwdmaxfailure').label,
+ read_only: true
+ },
+ {
+ name: 'krbpwdfailurecountinterval',
+ label: IPA.get_entity_param('pwpolicy', 'krbpwdfailurecountinterval').label,
+ read_only: true
+ },
+ {
+ name: 'krbpwdlockoutduration',
+ label: IPA.get_entity_param('pwpolicy', 'krbpwdlockoutduration').label,
+ read_only: true
+ }
+ ]
+ },
+ {
+ name: 'krbtpolicy',
+ label: IPA.messages.objects.krbtpolicy.identity,
+ fields: [
+ {
+ name: 'krbmaxrenewableage',
+ label: IPA.get_entity_param('krbtpolicy', 'krbmaxrenewableage').label,
+ read_only: true
+ },
+ {
+ name: 'krbmaxticketlife',
+ label: IPA.get_entity_param('krbtpolicy', 'krbmaxticketlife').label,
+ read_only: true
+ }
+ ]
+ },
+ {
+ name: 'contact',
+ fields: [
+ { type: 'multivalued', name: 'mail' },
+ { type: 'multivalued', name: 'telephonenumber' },
+ { type: 'multivalued', name: 'pager' },
+ { type: 'multivalued', name: 'mobile' },
+ { type: 'multivalued', name: 'facsimiletelephonenumber' }
+ ]
+ },
+ {
+ name: 'mailing',
+ fields: ['street', 'l', 'st', 'postalcode']
+ },
+ {
+ name: 'employee',
+ fields: [
+ 'ou',
+ {
+ type: 'entity_select',
+ name: 'manager',
+ other_entity: 'user',
+ other_field: 'uid'
+ }
+ ]
+ },
+ {
+ name: 'misc',
+ fields: [ 'carlicense' ]
+ }
+ ]
}).
association_facet({
name: 'memberof_group',
@@ -186,6 +254,77 @@ IPA.user.entity = function(spec) {
return that;
};
+IPA.user.details_facet = function(spec) {
+
+ spec = spec || {};
+
+ var that = IPA.details_facet(spec);
+
+ that.refresh_on_success = function(data, text_status, xhr) {
+ that.details_facet_refresh_on_success(data, text_status, xhr);
+
+ var batch = IPA.batch_command({
+ name: 'user_get_policies'
+ });
+
+ var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
+
+ var pwpolicy_command = IPA.command({
+ entity: 'pwpolicy',
+ method: 'show',
+ options: {
+ user: pkey,
+ all: true,
+ rights: true
+ }
+ });
+
+ pwpolicy_command.on_success = function(data, text_status, xhr) {
+ // TODO: Use nested fields: that.fields.get_field('pwpolicy').get_fields();
+ var fields = that.fields.get_fields();
+ for (var i=0; i<fields.length; i++) {
+ var field = fields[i];
+
+ // load result into pwpolicy fields
+ if (field.widget_name.match(/^pwpolicy\./)) {
+ field.load(data.result);
+ }
+ }
+ };
+
+ batch.add_command(pwpolicy_command);
+
+ var krbtpolicy_command = IPA.command({
+ entity: 'krbtpolicy',
+ method: 'show',
+ args: [ pkey ],
+ options: {
+ all: true,
+ rights: true
+ }
+ });
+
+ krbtpolicy_command.on_success = function(data, text_status, xhr) {
+ // TODO: Use nested fields: that.fields.get_field('krbtpolicy').get_fields();
+ var fields = that.fields.get_fields();
+ for (var i=0; i<fields.length; i++) {
+ var field = fields[i];
+
+ // load result into krbtpolicy fields
+ if (field.widget_name.match(/^krbtpolicy\./)) {
+ field.load(data.result);
+ }
+ }
+ };
+
+ batch.add_command(krbtpolicy_command);
+
+ batch.execute();
+ };
+
+ return that;
+};
+
IPA.user_adder_dialog = function(spec) {
var that = IPA.entity_adder_dialog(spec);