UI for radius proxy

https://fedorahosted.org/freeipa/ticket/3369

Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
This commit is contained in:
Petr Vobornik
2013-09-13 14:07:22 +02:00
committed by Petr Viktorin
parent fef26fe3d8
commit ea66f48987
6 changed files with 147 additions and 1 deletions

View File

@@ -219,6 +219,7 @@
"classes": [
"aci",
"otptoken",
"radiusproxy",
"user"
]
}

View File

@@ -43,6 +43,7 @@ define([
'./netgroup',
'./otptoken',
'./policy',
'./radiusproxy',
'./realmdomains',
'./rule',
'./selinux',

View File

@@ -134,7 +134,7 @@ var nav = {};
{entity: 'trustconfig'}
]
},
{entity: 'radiusproxy'},
{entity: 'config'}
]}
]

View File

@@ -0,0 +1,138 @@
/* Authors:
* Petr Vobornik <pvoborni@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, either version 3 of the License, or
* (at your option) any later version.
*
* 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, see <http://www.gnu.org/licenses/>.
*/
define([
'./ipa',
'./jquery',
'./menu',
'./phases',
'./reg',
'./details',
'./search',
'./entity',
'./dialogs/password'
],
function(IPA, $, menu, phases, reg) {
/**
* Radius module
* @class
* @singleton
*/
var radiusproxy = IPA.radiusproxy = {};
var make_spec = function() {
return {
name: 'radiusproxy',
enable_test: function() {
return true;
},
facets: [
{
$type: 'search',
columns: [
'cn',
'ipatokenradiusserver',
'ipatokenusermapattribute',
'description'
]
},
{
$type: 'details',
sections: [
{
name: 'details',
label: '@i18n:objects.radiusproxy.details',
fields: [
'cn',
{
$type: 'textarea',
name: 'description'
},
{
$type: 'multivalued',
name: 'ipatokenradiusserver' // TODO: add validation
},
'ipatokenusermapattribute', // TODO: add validation
'ipatokenradiustimeout',
'ipatokenradiusretries'
],
action_panel: {
name: 'radius_actions',
actions: [
'password'
]
}
}
],
actions: [
{
$type: 'password',
dialog: {
password_name: 'ipatokenradiussecret'
}
}
]
}
],
adder_dialog: {
fields: [
'cn',
{
$type: 'multivalued',
name: 'ipatokenradiusserver'
},
{
$type: 'password',
name: 'ipatokenradiussecret'
},
{
$type: 'password',
name: 'secret_verify',
label: '@i18n:password.verify_password',
flags: ['no_command'],
required: true,
validators: [{
$type: 'same_password',
other_field: 'ipatokenradiussecret'
}]
},
'ipatokenusermapattribute'
]
}
};};
/**
* Radius specification object
*/
radiusproxy.spec = make_spec();
/**
* Register radiusproxy entity
*/
radiusproxy.register = function() {
var e = reg.entity;
e.register({type: 'radiusproxy', spec: radiusproxy.spec});
};
phases.on('registration', radiusproxy.register);
return radiusproxy;
});

View File

@@ -397,6 +397,9 @@
"type_ipa": "IPA trust",
"type_winsync": "Active Directory winsync"
},
"radiusproxy": {
"details": "RADIUS Proxy Server Settings"
},
"realmdomains": {
"identity": "Realm Domains",
"check_dns": "Check DNS",

View File

@@ -532,6 +532,9 @@ class i18n_messages(Command):
"type_ipa": _("IPA trust"),
"type_winsync": _("Active Directory winsync"),
},
"radiusproxy": {
"details": _("RADIUS Proxy Server Settings"),
},
"realmdomains": {
"identity": _("Realm Domains"),
"check_dns": _("Check DNS"),