summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2014-01-15 18:01:02 +0100
committerMartin Kosek <mkosek@redhat.com>2014-01-21 12:24:54 +0100
commit622f9ab11f12187c4453f9b7c748a6c9865591ed (patch)
treebe6552aec63f4560c6d4ab717567feb40538ffae
parent3e0ae972685aefa20ec619b17a7c2b7f7c2f50d9 (diff)
downloadfreeipa-622f9ab11f12187c4453f9b7c748a6c9865591ed.tar.gz
freeipa-622f9ab11f12187c4453f9b7c748a6c9865591ed.tar.xz
freeipa-622f9ab11f12187c4453f9b7c748a6c9865591ed.zip
Trust domains Web UI
Add Web UI counterpart of following CLI commands: * trust-fetch-domains Refresh list of the domains associated with the trust * trustdomain-del Remove infromation about the domain associated with the trust. * trustdomain-disable Disable use of IPA resources by the domain of the trust * trustdomain-enable Allow use of IPA resources by the domain of the trust * trustdomain-find Search domains of the trust https://fedorahosted.org/freeipa/ticket/4119
-rw-r--r--install/ui/src/freeipa/search.js11
-rw-r--r--install/ui/src/freeipa/trust.js68
-rw-r--r--install/ui/test/data/ipa_init.json1
-rw-r--r--ipalib/plugins/internal.py1
4 files changed, 77 insertions, 4 deletions
diff --git a/install/ui/src/freeipa/search.js b/install/ui/src/freeipa/search.js
index 680f0268c..3c2fca715 100644
--- a/install/ui/src/freeipa/search.js
+++ b/install/ui/src/freeipa/search.js
@@ -470,20 +470,23 @@ IPA.batch_items_action = function(spec) {
that.execute_action = function(facet, on_success, on_error) {
var entity = facet.managed_entity;
- var pkeys = facet.get_selected_values();
+ var selected_keys = facet.get_selected_values();
+ var pkeys = facet.get_pkeys();
+ if (!pkeys[0]) pkeys = []; // correction for search facet
that.batch = IPA.batch_command({
name: entity.name + '_batch_'+ that.method,
on_success: that.get_on_success(facet, on_success)
});
- for (var i=0; i<pkeys.length; i++) {
- var pkey = pkeys[i];
+ for (var i=0; i<selected_keys.length; i++) {
+ var item_keys = pkeys.splice(0);
+ item_keys.push(selected_keys[i]);
var command = IPA.command({
entity: entity.name,
method: that.method,
- args: [pkey]
+ args: item_keys
});
that.batch.add_command(command);
diff --git a/install/ui/src/freeipa/trust.js b/install/ui/src/freeipa/trust.js
index b2fe567f8..51cfefb99 100644
--- a/install/ui/src/freeipa/trust.js
+++ b/install/ui/src/freeipa/trust.js
@@ -48,6 +48,7 @@ return {
dest_facet: 'search'
}
],
+ facet_groups: [ 'settings', 'trustdomain' ],
facets: [
{
$type: 'search',
@@ -56,6 +57,63 @@ return {
]
},
{
+ $type: 'nested_search',
+ $pre_ops: [
+ // trustdomain-add is hidden, remove add button
+ { $del: [[ 'control_buttons', [{ name: 'add'}] ]] }
+ ],
+ nested_entity: 'trustdomain',
+ facet_group: 'trustdomain',
+ name: 'domains',
+ label: '@mo:trustdomain.label',
+ tab_label: '@mo:trustdomain.label',
+ search_all_entries: true,
+ actions: [
+ {
+ $type: 'batch_disable'
+ },
+ {
+ $type: 'batch_enable'
+ },
+ {
+ $type: 'object',
+ name: 'fetch',
+ label: '@i18n:objects.trust.fetch_domains',
+ method: 'fetch_domains'
+ }
+ ],
+ control_buttons: [
+ {
+ name: 'disable',
+ label: '@i18n:buttons.disable',
+ icon: 'fa-minus'
+ },
+ {
+ name: 'enable',
+ label: '@i18n:buttons.enable',
+ icon: 'fa-check'
+ },
+ {
+ name: 'fetch',
+ label: '@i18n:objects.trust.fetch_domains',
+ icon: 'fa-download'
+ }
+ ],
+ columns: [
+ {
+ name: 'cn',
+ link: false
+ },
+ {
+ name: 'domain_enabled',
+ label: '@i18n:status.label',
+ formatter: 'boolean_status'
+ },
+ 'ipantflatname',
+ 'ipanttrusteddomainsid'
+ ]
+ },
+ {
$type: 'details',
sections: [
{
@@ -261,6 +319,13 @@ IPA.trust.adder_dialog = function(spec) {
return that;
};
+
+var make_trustdomain_spec = function() {
+return {
+ name: 'trustdomain',
+ containing_entity: 'trust'
+};};
+
var make_trustconfig_spec = function() {
return {
name: 'trustconfig',
@@ -349,14 +414,17 @@ exp.remove_menu_item = function() {
};
exp.trust_spec = make_trust_spec();
+exp.trustdomain_spec = make_trustdomain_spec();
exp.trustconfig_spec = make_trustconfig_spec();
+
IPA.trust.register = function() {
var e = reg.entity;
var w = reg.widget;
var f = reg.field;
e.register({type: 'trust', spec: exp.trust_spec});
+ e.register({type: 'trustdomain', spec: exp.trustdomain_spec});
e.register({type: 'trustconfig', spec: exp.trustconfig_spec});
w.register('trust_fallbackgroup_select', IPA.trust.fallbackgroup_select_widget);
diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json
index f714fb432..cf13591a5 100644
--- a/install/ui/test/data/ipa_init.json
+++ b/install/ui/test/data/ipa_init.json
@@ -469,6 +469,7 @@
"details": "Trust Settings",
"domain": "Domain",
"establish_using": "Establish using",
+ "fetch_domains": "Fetch domains",
"ipantflatname": "Domain NetBIOS name",
"ipanttrusteddomainsid": "Domain Security Identifier",
"preshared_password": "Pre-shared password",
diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py
index 64464a051..e282dfedf 100644
--- a/ipalib/plugins/internal.py
+++ b/ipalib/plugins/internal.py
@@ -605,6 +605,7 @@ class i18n_messages(Command):
"details": _("Trust Settings"),
"domain": _("Domain"),
"establish_using": _("Establish using"),
+ "fetch_domains": _("Fetch domains"),
"ipantflatname": _("Domain NetBIOS name"),
"ipanttrusteddomainsid": _("Domain Security Identifier"),
"preshared_password": _("Pre-shared password"),