diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2012-05-25 08:57:47 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2012-06-04 11:26:28 +0200 |
commit | 27b1dace2debe8385ee6193dc8830c656dc48764 (patch) | |
tree | 4c5bc807edfd9ea6310aebeeb6178ec2f14cb99a | |
parent | 870627de9a6bf0d0731843ea3305aad3a739cac4 (diff) | |
download | freeipa.git-27b1dace2debe8385ee6193dc8830c656dc48764.tar.gz freeipa.git-27b1dace2debe8385ee6193dc8830c656dc48764.tar.xz freeipa.git-27b1dace2debe8385ee6193dc8830c656dc48764.zip |
Removal of illegal options in JSON-RPC calls
Ticket https://fedorahosted.org/freeipa/ticket/2509 bans using non existent options. If such option is supplied command ends with error. It uncovered several cases in Web UI. This patch is fixing these cases.
Automember, Self-service and Delegation don't support 'pkey-only', 'size-limit' and 'rights' option. Pagination and rights check were disabled for them.
Automount map adder dialog was sending options for indirect map even if chosen type was direct (when those for indirect was filled earlier), also it was sending non-existant 'method' option.
https://fedorahosted.org/freeipa/ticket/2760
-rw-r--r-- | install/ui/aci.js | 8 | ||||
-rw-r--r-- | install/ui/automember.js | 4 | ||||
-rw-r--r-- | install/ui/automount.js | 8 | ||||
-rw-r--r-- | install/ui/details.js | 15 |
4 files changed, 28 insertions, 7 deletions
diff --git a/install/ui/aci.js b/install/ui/aci.js index 27d9589a..953116c3 100644 --- a/install/ui/aci.js +++ b/install/ui/aci.js @@ -343,9 +343,11 @@ IPA.aci.selfservice_entity = function(spec) { that.entity_init(); that.builder.search_facet({ - columns: [ 'aciname' ] + columns: [ 'aciname' ], + pagination: false }). details_facet({ + check_rights: false, sections: [ { name: 'general', @@ -386,9 +388,11 @@ IPA.aci.delegation_entity = function(spec) { that.entity_init(); that.builder.search_facet({ - columns: [ 'aciname' ] + columns: [ 'aciname' ], + pagination: false }). details_facet({ + check_rights: false, sections: [ { name: 'general', diff --git a/install/ui/automember.js b/install/ui/automember.js index df285973..6f8eba95 100644 --- a/install/ui/automember.js +++ b/install/ui/automember.js @@ -58,6 +58,7 @@ IPA.automember.entity = function(spec) { group_type: 'group', label: IPA.messages.objects.automember.usergrouprules, details_facet: 'usergrouprule', + pagination: false, columns: [ 'cn', 'description' @@ -69,6 +70,7 @@ IPA.automember.entity = function(spec) { group_type: 'hostgroup', label: IPA.messages.objects.automember.hostgrouprules, details_facet: 'hostgrouprule', + pagination: false, columns: [ 'cn', 'description' @@ -80,6 +82,7 @@ IPA.automember.entity = function(spec) { group_type: 'group', label: IPA.messages.objects.automember.usergrouprule, disable_facet_tabs: true, + check_rights: false, redirect_info: { tab: 'amgroup' } }). details_facet({ @@ -88,6 +91,7 @@ IPA.automember.entity = function(spec) { group_type: 'hostgroup', label: IPA.messages.objects.automember.hostgrouprule, disable_facet_tabs: true, + check_rights: false, redirect_info: { tab: 'amhostgroup' } }). adder_dialog({ diff --git a/install/ui/automount.js b/install/ui/automount.js index 5a4d5978..3a4491d8 100644 --- a/install/ui/automount.js +++ b/install/ui/automount.js @@ -112,6 +112,7 @@ IPA.automount.map_entity = function(spec) { { type: 'radio', name: 'method', + enabled: false, //don't use value in add command label: IPA.messages.objects.automountmap.map_type, options: [ { @@ -285,11 +286,15 @@ IPA.automountmap_adder_dialog = function(spec) { var method_widget = that.widgets.get_widget('general.method'); var indirect_section = that.widgets.get_widget('indirect'); var key_field = that.fields.get_field('key'); + var parentmap_field = that.fields.get_field('parentmap'); var direct_input = $('input[value="add"]', method_widget.container); direct_input.change(function() { that.method = 'add'; + key_field.set_enabled(false); + parentmap_field.set_enabled(false); + key_field.set_required(false); indirect_section.set_visible(false); }); @@ -298,6 +303,9 @@ IPA.automountmap_adder_dialog = function(spec) { indirect_input.change(function() { that.method = 'add_indirect'; + key_field.set_enabled(true); + parentmap_field.set_enabled(true); + key_field.set_required(true); indirect_section.set_visible(true); }); diff --git a/install/ui/details.js b/install/ui/details.js index 4239f654..d5f6bfc8 100644 --- a/install/ui/details.js +++ b/install/ui/details.js @@ -266,6 +266,7 @@ IPA.details_facet = function(spec, no_init) { that.entity = IPA.get_entity(spec.entity); that.update_command_name = spec.update_command_name || 'mod'; that.command_mode = spec.command_mode || 'save'; // [save, info] + that.check_rights = spec.check_rights !== undefined ? spec.check_rights : true; that.label = spec.label || IPA.messages && IPA.messages.facets && IPA.messages.facets.details; that.facet_group = spec.facet_group || 'settings'; @@ -531,14 +532,15 @@ IPA.details_facet = function(spec, no_init) { that.create_fields_update_command = function(update_info) { var args = that.get_primary_key(); + + var options = { all: true }; + if (that.check_rights) options.rights = true; + var command = IPA.command({ entity: that.entity.name, method: that.update_command_name, args: args, - options: { - all: true, - rights: true - } + options: options }); //set command options @@ -623,11 +625,14 @@ IPA.details_facet = function(spec, no_init) { that.create_refresh_command = function() { + var options = { all: true }; + if (that.check_rights) options.rights = true; + var command = IPA.command({ name: that.get_refresh_command_name(), entity: that.entity.name, method: 'show', - options: { all: true, rights: true } + options: options }); if (that.pkey) { |