https://fedorahosted.org/freeipa/ticket/4616 -- Petr Vobornik
From 2370973e869c154b92557a767e6e4f340fc6a283 Mon Sep 17 00:00:00 2001 From: Petr Vobornik <pvobo...@redhat.com> Date: Fri, 10 Oct 2014 10:50:56 +0200 Subject: [PATCH] webui: do not offer ipa users to Default Trust View
https://fedorahosted.org/freeipa/ticket/4616 --- install/ui/doc/categories.json | 6 +++++ install/ui/src/freeipa/add.js | 2 +- install/ui/src/freeipa/idviews.js | 51 +++++++++++++++++++++++++++++++++++++- install/ui/test/data/ipa_init.json | 6 +++-- ipalib/plugins/internal.py | 2 ++ 5 files changed, 63 insertions(+), 4 deletions(-) diff --git a/install/ui/doc/categories.json b/install/ui/doc/categories.json index e9507795b9557880cfb4ce34c0808b6bd2d2ab2c..c84077682eafa42981e8a1c1a2f93c712e6421fd 100644 --- a/install/ui/doc/categories.json +++ b/install/ui/doc/categories.json @@ -149,6 +149,12 @@ ] }, { + "name": "Dialog policies", + "classes": [ + "idviews.idoverride_adder_policy" + ] + }, + { "name": "Evaluators & Summaries", "classes": [ "*_evaluator", diff --git a/install/ui/src/freeipa/add.js b/install/ui/src/freeipa/add.js index 7f5c29807bae8cc9db00e4e826a68facd1e5758a..8f24c7733d1614aaf05b544ecfb641ff57f292f2 100644 --- a/install/ui/src/freeipa/add.js +++ b/install/ui/src/freeipa/add.js @@ -198,7 +198,7 @@ IPA.entity_adder_dialog = function(spec) { var field = fields[j]; var values = record[field.param]; - if (!values || values.length === 0) continue; + if (!values || values.length === 0 || !field.enabled) continue; if (field.flags.indexOf('no_command') > -1) continue; if (field.param === pkey_name) { diff --git a/install/ui/src/freeipa/idviews.js b/install/ui/src/freeipa/idviews.js index ee522467501986116c759ef7150db294b9e34157..57fcc490a4579227d14b790548f786ec769b5379 100644 --- a/install/ui/src/freeipa/idviews.js +++ b/install/ui/src/freeipa/idviews.js @@ -20,6 +20,7 @@ */ define([ + 'dojo/on', './ipa', './jquery', './menu', @@ -31,7 +32,7 @@ define([ './facet', './search', './entity'], - function(IPA, $, menu, phases, reg, rpc, text, mod_details, mod_facet) { + function(on, IPA, $, menu, phases, reg, rpc, text, mod_details, mod_facet) { /** * ID Views module * @class @@ -260,6 +261,9 @@ return { ], adder_dialog: { + policies: [ + { $factory: idviews.idoverride_adder_policy } + ], fields: [ { $type: 'entity_select', @@ -270,6 +274,14 @@ return { editable: true, tooltip: '@i18n:objects.idoverrideuser.anchor_tooltip' }, + { + label: '@i18n:objects.idoverrideuser.anchor_label', + name: 'ipaanchoruuid_default', + param: 'ipaanchoruuid', + tooltip: '@i18n:objects.idoverrideuser.anchor_tooltip_ad', + visible: false, + enabled: false + }, 'uid', 'uidnumber', 'homedirectory', @@ -330,6 +342,9 @@ return { ], adder_dialog: { + policies: [ + { $factory: idviews.idoverride_adder_policy } + ], fields: [ { $type: 'entity_select', @@ -340,6 +355,14 @@ return { editable: true, tooltip: '@i18n:objects.idoverridegroup.anchor_tooltip' }, + { + label: '@i18n:objects.idoverridegroup.anchor_label', + name: 'ipaanchoruuid_default', + param: 'ipaanchoruuid', + tooltip: '@i18n:objects.idoverridegroup.anchor_tooltip_ad', + visible: false, + enabled: false + }, 'cn', 'gidnumber', { @@ -395,6 +418,32 @@ idviews.idview_facet_header = function(spec) { }; /** + * Switches between combobox and textbox for ipaanchoruuid, depending on if + * current view is Default Trust View + * @class idviews.idoverride_adder_policy + * @extends IPA.facet_policy + */ +idviews.idoverride_adder_policy = function (spec) { + var that = IPA.facet_policy(spec); + that.init = function() { + on(that.container, 'open', that.on_open); + }; + + that.on_open = function() { + var d = that.container; // dialog + var default_view = d.pkey_prefix.slice(-1)[0] === idviews.DEFAULT_TRUST_VIEW; + var f1 = d.fields.get_field('ipaanchoruuid'); + var f2 = d.fields.get_field('ipaanchoruuid_default'); + f1.set_enabled(!default_view); + f1.widget.set_visible(!default_view); + f2.set_enabled(default_view); + f2.widget.set_visible(default_view); + }; + + return that; +}; + +/** * Apply Id view on hosts on hostgroup action base class * * @class idviews.apply_action diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json index cfbf277f1b61ba57c398d2f39a9684427269bca0..48bdc1e1fc1022fa31ba98b58e4aa2ab0c81d954 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -370,11 +370,13 @@ }, "idoverrideuser": { "anchor_label": "User to override", - "anchor_tooltip": "Enter trusted or IPA user login. Note: search doesn't list users from trusted domains." + "anchor_tooltip": "Enter trusted or IPA user login. Note: search doesn't list users from trusted domains.", + "anchor_tooltip_ad": "Enter trusted user login." }, "idoverridegroup": { "anchor_label": "Group to override", - "anchor_tooltip": "Enter trusted or IPA group name. Note: search doesn't list groups from trusted domains." + "anchor_tooltip": "Enter trusted or IPA group name. Note: search doesn't list groups from trusted domains.", + "anchor_tooltip_ad": "Enter trusted group name." }, "idview": { "appliesto_tab": "${primary_key} applies to:", diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py index e15448650d7ebb073911c71790cad506c0d07901..3a3ddd50fa689f81120edc5e1dff597af0837672 100644 --- a/ipalib/plugins/internal.py +++ b/ipalib/plugins/internal.py @@ -515,10 +515,12 @@ class i18n_messages(Command): "idoverrideuser": { "anchor_label": _("User to override"), "anchor_tooltip": _("Enter trusted or IPA user login. Note: search doesn't list users from trusted domains."), + "anchor_tooltip_ad": _("Enter trusted user login."), }, "idoverridegroup": { "anchor_label": _("Group to override"), "anchor_tooltip": _("Enter trusted or IPA group name. Note: search doesn't list groups from trusted domains."), + "anchor_tooltip_ad": _("Enter trusted group name."), }, "idview": { "appliesto_tab": _("${primary_key} applies to:"), -- 1.9.3
_______________________________________________ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel