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

Reply via email to