Moved function to delete an entry to app::app
parent
59cf727e28
commit
e18f8a1a3a
67
app/app.pm
67
app/app.pm
|
@ -168,4 +168,71 @@ sub new_tmp {
|
||||||
$ze->new_tmp();
|
$ze->new_tmp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub delete_entry {
|
||||||
|
my ($self, $login, $domain, $entryToDelete) = @_;
|
||||||
|
|
||||||
|
my $name = $entryToDelete->{'name'};
|
||||||
|
my $type = $entryToDelete->{'type'};
|
||||||
|
my $ttl = $entryToDelete->{'ttl'};
|
||||||
|
my $host = $entryToDelete->{'host'};
|
||||||
|
|
||||||
|
my $zone = $self->get_domain($login , $domain);
|
||||||
|
my $dump = $zone->dump;
|
||||||
|
|
||||||
|
my $record;
|
||||||
|
my $found = 0;
|
||||||
|
|
||||||
|
given( lc $type )
|
||||||
|
{
|
||||||
|
when ('a')
|
||||||
|
{
|
||||||
|
$record = $zone->a;
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
when ('aaaa')
|
||||||
|
{
|
||||||
|
$record = $zone->aaaa;
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
when ('cname')
|
||||||
|
{
|
||||||
|
$record = $zone->cname;
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
when ('ns')
|
||||||
|
{
|
||||||
|
$record = $zone->ns;
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
when ('mx')
|
||||||
|
{
|
||||||
|
$record = $zone->mx;
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
when ('ptr')
|
||||||
|
{
|
||||||
|
$record = $zone->ptr;
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( $found )
|
||||||
|
{
|
||||||
|
|
||||||
|
foreach my $i ( 0 .. scalar @{$record}-1 )
|
||||||
|
{
|
||||||
|
|
||||||
|
delete $record->[$i]
|
||||||
|
if( $record->[$i]->{'name'} eq $name &&
|
||||||
|
$record->[$i]->{'host'} eq $host &&
|
||||||
|
$record->[$i]->{'ttl'} == $ttl );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->update_domain( $login, $zone, $domain );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -363,68 +363,17 @@ prefix '/domain' => sub {
|
||||||
else {
|
else {
|
||||||
# Load :domain and search for corresponding data
|
# Load :domain and search for corresponding data
|
||||||
my $app = initco();
|
my $app = initco();
|
||||||
my ($auth_ok, $user, $isadmin) = $app->auth(param('login'),
|
# my ($auth_ok, $user, $isadmin) = $app->auth(param('login'),
|
||||||
param('password') );
|
# param('password') );
|
||||||
|
|
||||||
my $zone = $app->get_domain(session('login') , param('domain'));
|
$app->delete_entry( session('login'),
|
||||||
my $dump = $zone->dump;
|
param('domain'),
|
||||||
|
|
||||||
my $record;
|
|
||||||
my $found = false;
|
|
||||||
|
|
||||||
given( lc param('type') )
|
|
||||||
{
|
{
|
||||||
when ('a')
|
type => param('type'),
|
||||||
{
|
name => param('name'),
|
||||||
$record = $zone->a;
|
host => param('host'),
|
||||||
$found = true;
|
ttl => param('ttl')
|
||||||
}
|
});
|
||||||
when ('aaaa')
|
|
||||||
{
|
|
||||||
$record = $zone->aaaa;
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
when ('cname')
|
|
||||||
{
|
|
||||||
$record = $zone->cname;
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
when ('ns')
|
|
||||||
{
|
|
||||||
$record = $zone->ns;
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
when ('mx')
|
|
||||||
{
|
|
||||||
$record = $zone->mx;
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
when ('ptr')
|
|
||||||
{
|
|
||||||
$record = $zone->ptr;
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( $found )
|
|
||||||
{
|
|
||||||
|
|
||||||
foreach my $i ( 0 .. scalar @{$record}-1 )
|
|
||||||
{
|
|
||||||
|
|
||||||
if( $record->[$i]->{'name'} eq param('name') &&
|
|
||||||
$record->[$i]->{'host'} eq param('host') &&
|
|
||||||
$record->[$i]->{'ttl'} == param('ttl') )
|
|
||||||
{
|
|
||||||
delete $record->[$i];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$app->update_domain( session('login'), $zone, param('domain') );
|
|
||||||
}
|
|
||||||
|
|
||||||
redirect '/domain/details/'. param('domain');
|
redirect '/domain/details/'. param('domain');
|
||||||
}
|
}
|
||||||
|
@ -462,6 +411,8 @@ any ['get', 'post'] => '/admin' => sub {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
prefix '/user' => sub {
|
prefix '/user' => sub {
|
||||||
|
|
||||||
get '/logout' => sub {
|
get '/logout' => sub {
|
||||||
|
@ -663,5 +614,4 @@ prefix '/user' => sub {
|
||||||
redirect '/home';
|
redirect '/home';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Reference in New Issue