The service certificate management UI has been generalized and moved into certificate.js. The host details page is now using the same code to manage certificates. The host.py has been modified to return host certificate info. The Get/Revoke/View buttons behavior has been modified such that they are visible only if there is a valid certificate. The Get dialog box has been fixed to show the correct certificate header and footer. The ipa.css has been modified to store the style of the status bullets. New unit tests for certificate has been added. The test data has been modified to include sample host certificate.
85 lines
2.9 KiB
JavaScript
85 lines
2.9 KiB
JavaScript
/* Authors:
|
|
* Pavel Zuna <pzuna@redhat.com>
|
|
*
|
|
* Copyright (C) 2010 Red Hat
|
|
* see file 'COPYING' for use and warranty information
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; version 2 only
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
/* REQUIRES: ipa.js, details.js, search.js, add.js, entity.js */
|
|
|
|
ipa_entity_set_search_definition('host', [
|
|
['fqdn', 'Name', null],
|
|
['description', 'Description', null],
|
|
['enrolled', 'Enrolled?', null],
|
|
['manages', 'Manages?', null],
|
|
['quick_links', 'Quick Links', ipa_entity_quick_links]
|
|
]);
|
|
|
|
ipa_entity_set_add_definition('host', [
|
|
'dialog-add-host', 'Add New Host', [
|
|
['fqdn', 'Name', null]
|
|
]
|
|
]);
|
|
|
|
ipa_entity_set_details_definition('host', [
|
|
ipa_stanza({name:'details', label:'Host Details'}).
|
|
input({name:'fqdn', label:'Fully Qualified Domain Name'}).
|
|
input({name:'krbprincipalname', label:'Kerberos Principal'}).
|
|
input({name:'serverhostname', label:'Server Host Name'}),
|
|
ipa_stanza({name:'enrollment', label:'Enrollment'}).
|
|
input({name:'enrollment_status', label:'Status',
|
|
load:host_enrollment_status_load}),
|
|
ipa_stanza({name:'certificate', label:'Host Certificate'}).
|
|
input({name:'certificate_status', label:'Status',
|
|
load:host_usercertificate_load})
|
|
]);
|
|
|
|
ipa_entity_set_association_definition('host', {
|
|
'hostgroup': { associator: SerialAssociator },
|
|
'rolegroup': { associator: SerialAssociator }
|
|
});
|
|
|
|
function host_enrollment_status_load(container, dt, result) {
|
|
// skip enrollment_status
|
|
}
|
|
|
|
function host_usercertificate_load(container, dt, result) {
|
|
|
|
var panel = certificate_status_panel({
|
|
'entity_type': 'host',
|
|
'entity_label': 'Host',
|
|
'result': result,
|
|
'get_entity_pkey': function(result) {
|
|
var values = result['fqdn'];
|
|
return values ? values[0] : null;
|
|
},
|
|
'get_entity_name': function(result) {
|
|
return this.get_entity_pkey(result);
|
|
},
|
|
'get_entity_principal': function(result) {
|
|
var values = result['krbprincipalname'];
|
|
return values ? values[0] : null;
|
|
},
|
|
'get_entity_certificate': function(result) {
|
|
var values = result['usercertificate'];
|
|
return values ? values[0].__base64__ : null;
|
|
}
|
|
});
|
|
|
|
var dd = ipa_create_first_dd(this.name, panel);
|
|
dt.after(dd);
|
|
}
|