summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2012-05-25 08:57:47 +0200
committerPetr Vobornik <pvoborni@redhat.com>2012-06-04 11:26:28 +0200
commit27b1dace2debe8385ee6193dc8830c656dc48764 (patch)
tree4c5bc807edfd9ea6310aebeeb6178ec2f14cb99a
parent870627de9a6bf0d0731843ea3305aad3a739cac4 (diff)
downloadfreeipa.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.js8
-rw-r--r--install/ui/automember.js4
-rw-r--r--install/ui/automount.js8
-rw-r--r--install/ui/details.js15
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) {