summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Vomacka <pvomacka@redhat.com>2016-06-30 14:34:33 +0200
committerPetr Vobornik <pvoborni@redhat.com>2016-07-01 09:39:49 +0200
commit4bc2e3164fbc4fdbbd4ecd1d26001a5d4671dd94 (patch)
tree87f528bf0d5aa5c29403d74d8070da64921948f8
parent2232a5bb09b3e99d10598ab64d0bf5d8ef006df4 (diff)
downloadfreeipa-4bc2e3164fbc4fdbbd4ecd1d26001a5d4671dd94.tar.gz
freeipa-4bc2e3164fbc4fdbbd4ecd1d26001a5d4671dd94.tar.xz
freeipa-4bc2e3164fbc4fdbbd4ecd1d26001a5d4671dd94.zip
Add widgets for kerberos aliases
Create own custom_command_multivalued_widget for kerberos aliases. https://fedorahosted.org/freeipa/ticket/5927 Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
-rw-r--r--install/ui/src/freeipa/widget.js108
-rw-r--r--install/ui/test/data/ipa_init.json6
-rw-r--r--ipaserver/plugins/internal.py6
3 files changed, 120 insertions, 0 deletions
diff --git a/install/ui/src/freeipa/widget.js b/install/ui/src/freeipa/widget.js
index 49d8f141d..9151ebac9 100644
--- a/install/ui/src/freeipa/widget.js
+++ b/install/ui/src/freeipa/widget.js
@@ -1798,6 +1798,110 @@ IPA.custom_command_multivalued_widget = function(spec) {
return that;
};
+/**
+ * Multivalued widget which is used for working with kerberos principal aliases.
+ *
+ * @class
+ * @extends IPA.custom_command_multivalued_widget
+ */
+IPA.krb_principal_multivalued_widget = function (spec) {
+
+ spec = spec || {};
+
+ spec.adder_dialog_spec = spec.adder_dialog_spec || {
+ title: '@i18n:krbaliases.adder_title',
+ fields: [
+ {
+ $type: 'text',
+ name: 'krbprincalname',
+ label: '@i18n:krbaliases.add_krbal_label'
+ }
+ ]
+ };
+
+ var that = IPA.custom_command_multivalued_widget(spec);
+
+ that.create_remove_dialog_title = function(row) {
+ return text.get('@i18n:krbaliases.remove_title');
+ };
+
+ that.create_remove_dialog_message = function(row) {
+ var message = text.get('@i18n:krbaliases.remove_message');
+ message = message.replace('${alias}', row.widget.principal_name);
+
+ return message;
+ };
+
+
+ that.create_remove_args = function(row) {
+ var pkey = that.facet.get_pkey();
+ var krbprincipalname = row.widget.principal_name;
+ krbprincipalname = [ krbprincipalname ];
+
+ var args = [
+ pkey,
+ krbprincipalname
+ ];
+
+ return args;
+ };
+
+ that.create_add_args = function(row) {
+ var pkey = that.facet.get_pkey();
+ var krbprincipalname = that.adder_dialog.get_field('krbprincalname').value;
+
+ var args = [
+ pkey,
+ krbprincipalname
+ ];
+
+ return args;
+ };
+
+ return that;
+};
+
+/**
+ * Widget which is used as row in kerberos aliases multivalued widget.
+ * It contains only string where is the principal alias name and delete button.
+ *
+ * @class
+ * @extends IPA.input_widget
+ */
+IPA.krb_principal_widget = function(spec) {
+ spec = spec || {};
+
+ var that = IPA.input_widget();
+
+ that.create = function(container) {
+ that.widget_create(container);
+
+ that.principal_text = $('<span />', {
+ 'class': 'krb-principal-name',
+ text: ''
+ }).appendTo(container);
+
+ if (that.undo) {
+ that.create_undo(container);
+ }
+
+ that.create_error_link(container);
+ };
+
+ that.update = function(value) {
+
+ var principal_name = value[0] || '';
+
+ that.principal_name = principal_name;
+ that.update_text();
+ };
+
+ that.update_text = function() {
+ that.principal_text.text(that.principal_name);
+ };
+
+ return that;
+};
/**
* Option widget base
@@ -7053,6 +7157,10 @@ exp.register = function() {
w.register('multivalued', IPA.multivalued_widget);
w.register('custom_command_multivalued',
IPA.custom_command_multivalued_widget);
+ w.register('krb_principal_multivalued',
+ IPA.krb_principal_multivalued_widget);
+ w.register('krb_principal',
+ IPA.krb_principal_widget);
w.register('password', IPA.password_widget);
w.register('radio', IPA.radio_widget);
w.register('select', IPA.select_widget);
diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json
index 8768766ed..77d6fce4e 100644
--- a/install/ui/test/data/ipa_init.json
+++ b/install/ui/test/data/ipa_init.json
@@ -170,6 +170,12 @@
"remove_create": "Disallow ${other_entity} to create keytab of ${primary_key}",
"remove_retrieve": "Disallow ${other_entity} to retrieve keytab of ${primary_key}"
},
+ "krbaliases": {
+ "adder_title": "Add Kerberos Principal Alias",
+ "add_krbal_label": "New kerberos principal alias",
+ "remove_title": "Remove Kerberos Alias",
+ "remove_message": "Do you want to remove kerberos alias ${alias}?"
+ },
"krbauthzdata": {
"inherited": "Inherited from server configuration",
"mspac": "MS-PAC",
diff --git a/ipaserver/plugins/internal.py b/ipaserver/plugins/internal.py
index 5eee7572e..ff2926218 100644
--- a/ipaserver/plugins/internal.py
+++ b/ipaserver/plugins/internal.py
@@ -319,6 +319,12 @@ class i18n_messages(Command):
"remove_create": _("Disallow ${other_entity} to create keytab of ${primary_key}"),
"remove_retrieve": _("Disallow ${other_entity} to retrieve keytab of ${primary_key}"),
},
+ "krbaliases": {
+ "adder_title": _("Add Kerberos Principal Alias"),
+ "add_krbal_label": _("New kerberos principal alias"),
+ "remove_title": _("Remove Kerberos Alias"),
+ "remove_message": _("Do you want to remove kerberos alias ${alias}?"),
+ },
"krbauthzdata": {
"inherited": _("Inherited from server configuration"),
"mspac": _("MS-PAC"),