1
package EBox::CGI::OpenVPN::CreateClient;
5
use base 'EBox::CGI::ClientBase';
11
use Perl6::Junction qw(any);
15
sub new # (error=?, msg=?, cgi=?)
18
my $self = $class->SUPER::new('title' => __('OpenVPN'),
19
'template' => '/openvpn/createClient.mas',
22
$self->{domain} = 'ebox-openvpn';
28
sub requiredParameters
31
if ($self->param('create')) {
32
[qw(create name proto caCertificatePath certificatePath certificateKey serverAddr serverPort service)];
41
sub optionalParameters
44
if ($self->param('create')) {
59
if ($self->param('create')) {
60
my $openVPN = EBox::Global->modInstance('openvpn');
62
my $anyParamWithUpload = any(qw(caCertificatePath certificatePath certificateKey));
67
foreach my $param (@{ $self->params() }) {
68
if ($param eq 'name') {
69
$name = $self->param('name');
74
if ($param eq $anyParamWithUpload) {
75
$paramValue = $self->upload($param);
78
$paramValue = $self->param($param);
81
$params{$param} = $paramValue;
85
# for now we only suport one server
86
my $serverAddr = delete $params{serverAddr};
87
my $serverPort = delete $params{serverPort};
89
[$serverAddr => $serverPort],
92
# remove blank parameters
93
while (my ($key, $value) = each %params) {
98
$openVPN->newClient($name, servers => \@servers, %params);
101
$self->setMsg(__x("New client {name} created", name => $name) );
102
$self->{chain} = 'OpenVPN/Index';