affichage des détails d'une zone et mise à jour
This commit is contained in:
parent
3c78751240
commit
f45b7afc4c
@ -92,6 +92,12 @@ sub delete_domain {
|
|||||||
$ze->del();
|
$ze->del();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub update_domain_raw {
|
||||||
|
my ($self, $login, $zone, $domain) = @_;
|
||||||
|
my $ze = app::zone::edit->new(zname => $domain, zdir => $self->zdir);
|
||||||
|
$ze->update_raw($zone);
|
||||||
|
}
|
||||||
|
|
||||||
sub update_domain {
|
sub update_domain {
|
||||||
my ($self, $login, $zone, $domain) = @_;
|
my ($self, $login, $zone, $domain) = @_;
|
||||||
my $ze = app::zone::edit->new(zname => $domain, zdir => $self->zdir);
|
my $ze = app::zone::edit->new(zname => $domain, zdir => $self->zdir);
|
||||||
|
@ -70,6 +70,27 @@ sub update {
|
|||||||
$rndc->reload($self->zname);
|
$rndc->reload($self->zname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
=pod
|
||||||
|
udpate via the raw content of the zonefile
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub update_raw {
|
||||||
|
my ($self, $zonetext) = @_;
|
||||||
|
|
||||||
|
my $file = '/tmp/'.$self->zname;
|
||||||
|
|
||||||
|
# write the updated zone file to disk
|
||||||
|
my $newzone;
|
||||||
|
open($newzone, '>', $file) or die "error";
|
||||||
|
print $newzone $zonetext;
|
||||||
|
close $newzone;
|
||||||
|
|
||||||
|
my $zonefile = DNS::ZoneParse->new($file, $self->zname);
|
||||||
|
unlink($file);
|
||||||
|
|
||||||
|
$self->update($zonefile);
|
||||||
|
}
|
||||||
|
|
||||||
# sera utile plus tard, pour l'interface
|
# sera utile plus tard, pour l'interface
|
||||||
sub new_tmp {
|
sub new_tmp {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
|
@ -108,7 +108,8 @@ get '/mapage' => sub {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
get '/details' => sub {
|
any ['post', 'get'] => '/domainupdate/:domain' => sub {
|
||||||
|
|
||||||
# check if user is logged & if domain parameter is set
|
# check if user is logged & if domain parameter is set
|
||||||
unless( session('login') && param('domain'))
|
unless( session('login') && param('domain'))
|
||||||
{
|
{
|
||||||
@ -117,30 +118,41 @@ get '/details' => sub {
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
my $app = initco();
|
my $app = initco();
|
||||||
my ($auth_ok, $user, $isadmin) = $app->auth( param('login') );
|
my ($auth_ok, $user, $isadmin) = $app->auth(param('login'),
|
||||||
my @zones = ();
|
param('password') );
|
||||||
my $zone_properties;
|
|
||||||
#say 'dump : ' . dump $user->get_zone( param('domain') );
|
|
||||||
|
|
||||||
for( $user->get_zone( param('domain') ) )
|
$app->update_domain_raw(session('login')
|
||||||
{
|
, param('zoneupdated')
|
||||||
|
, param('domain'));
|
||||||
|
|
||||||
if( ref($_) eq 'HASH' and exists $_->{addr} ) {
|
redirect '/mapage';
|
||||||
push( @zones, $_ ) when $_->{addr} ne '@';
|
|
||||||
$zone_properties = $_ when $_->{addr} eq '@';
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
template details => {
|
|
||||||
login => session('login')
|
|
||||||
, domain => param('domain')
|
|
||||||
, zones => \@zones
|
|
||||||
, zone_properties => $zone_properties };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
get '/details/:domain' => sub {
|
||||||
|
|
||||||
|
# check if user is logged & if domain parameter is set
|
||||||
|
unless( session('login') && param('domain'))
|
||||||
|
{
|
||||||
|
redirect '/';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
my $app = initco();
|
||||||
|
my ($auth_ok, $user, $isadmin) = $app->auth(param('login'),
|
||||||
|
param('password') );
|
||||||
|
|
||||||
|
my $zone = $app->get_domain(session('login') , param('domain'));
|
||||||
|
|
||||||
|
template details => {
|
||||||
|
login => session('login')
|
||||||
|
, domain => param('domain')
|
||||||
|
, domain_zone => $zone->output() };
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
any ['get', 'post'] => '/administration' => sub {
|
any ['get', 'post'] => '/administration' => sub {
|
||||||
unless( session('login') )
|
unless( session('login') )
|
||||||
|
@ -1,105 +1,25 @@
|
|||||||
<div id="sidebar">
|
<div id="sidebar">
|
||||||
Welcome <% login %> !
|
Welcome <% login %> !
|
||||||
<form action='logout' method="get" accept-charset="utf-8">
|
<form action='logout' method="post" accept-charset="utf-8">
|
||||||
<input type="submit" name="logout" value="Déconnexion">
|
<input type="submit" name="logout" value="Déconnexion">
|
||||||
</form>
|
</form>
|
||||||
<% IF admin == 1 %>
|
<% IF admin == 1 %>
|
||||||
<a href='administration'>Page d'administration</a>
|
<a href='administration'>Page d'administration</a>
|
||||||
<% END %>
|
<% END %>
|
||||||
<a href='/'>Accueil</a>
|
<a href='/'>Accueil</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="page">
|
<div id="page">
|
||||||
<% IF domain && domain.size %>
|
|
||||||
<table border='1px'>
|
<h3>Fichier de zone de <% domain %></h3>
|
||||||
<caption>Les zones de <%domain%></caption>
|
|
||||||
<tr>
|
<form action='/domainupdate/<% domain %>' method="post" >
|
||||||
<th>Host</th>
|
<label for='zone'>Votre zone :</label>
|
||||||
<th>Adress</th>
|
<br />
|
||||||
<th>Type</th>
|
<textarea id='zone' name="zoneupdated" rows="20" cols="100"><% domain_zone %></textarea>
|
||||||
<th>Domain</th>
|
<br />
|
||||||
</tr>
|
<input type="submit" value="Mettre à jour la zone">
|
||||||
<% FOREACH zone in zones %>
|
</form>
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<% IF zone.host %>
|
|
||||||
<% zone.host %>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% IF zone.addr %>
|
|
||||||
<% zone.addr %>
|
|
||||||
<% END %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% IF zone.type %>
|
|
||||||
<% zone.type %>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% IF zone.domain %>
|
|
||||||
<% zone.domain %>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<% END %>
|
|
||||||
</table>
|
|
||||||
<br/>
|
|
||||||
<table border='1px'>
|
|
||||||
<caption>Domain Properties</caption>
|
|
||||||
<tr>
|
|
||||||
<th>Admin de la zone</th>
|
|
||||||
<th>Serial</th>
|
|
||||||
<th>Primary</th>
|
|
||||||
<th>Retry</th>
|
|
||||||
<th>Domain</th>
|
|
||||||
<th>Refresh</th>
|
|
||||||
<th>Address</th>
|
|
||||||
<th>Expire</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<% IF zone_properties.admin %>
|
|
||||||
<%zone_properties.admin%><br/>
|
|
||||||
<%END%>
|
|
||||||
<td>
|
|
||||||
<% IF zone_properties.serial %>
|
|
||||||
<%zone_properties.serial%>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% IF zone_properties.primary %>
|
|
||||||
<%zone_properties.primary%>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% IF zone_properties.retry %>
|
|
||||||
<%zone_properties.retry%>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% IF zone_properties.domain %>
|
|
||||||
<%zone_properties.domain%>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% IF zone_properties.refresh %>
|
|
||||||
<%zone_properties.refresh%>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% IF zone_properties.addr %>
|
|
||||||
<%zone_properties.addr%>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% IF zone_properties.expire %>
|
|
||||||
<%zone_properties.expire%>
|
|
||||||
<%END%>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<% ELSE %>
|
|
||||||
Vous n'avez pas encore de noms de domaines… Voulez-vous en réserver un ?
|
|
||||||
<% END %>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1,20 +1,24 @@
|
|||||||
<div id="sidebar">
|
<div id="sidebar">
|
||||||
<% IF logged == 1 %>
|
|
||||||
|
<% IF logged == 1 %>
|
||||||
Welcome <% login %> !
|
Welcome <% login %> !
|
||||||
<form action='logout' method="get" accept-charset="utf-8">
|
<form action='logout' method="get" accept-charset="utf-8">
|
||||||
<input type="submit" name="logout" value="Déconnexion">
|
<input type="submit" name="logout" value="Déconnexion">
|
||||||
</form>
|
</form>
|
||||||
<a href='mapage'>Votre page de configuration</a><br />
|
|
||||||
<% IF admin == 1 %>
|
<a href='mapage'>Votre page de configuration</a><br />
|
||||||
<a href='administration'>Page d'administration</a><br />
|
<% IF admin == 1 %>
|
||||||
<% END %>
|
<a href='administration'>Page d'administration</a><br />
|
||||||
<% IF domains %>
|
<% END %>
|
||||||
Liens rapides :<br />
|
|
||||||
<% FOREACH domain IN domains %>
|
<% IF domains %>
|
||||||
<a href="details?domain=<% domain %>"><% domain %> </a><br />
|
Liens rapides :<br />
|
||||||
<% END %>
|
<% FOREACH domain IN domains %>
|
||||||
<% END %>
|
<a href="details/<% domain %>"><% domain %></a><br />
|
||||||
<% ELSE %>
|
<% END %>
|
||||||
|
<% END %>
|
||||||
|
|
||||||
|
<% ELSE %>
|
||||||
<form action="login" method="post" accept-charset="utf-8">
|
<form action="login" method="post" accept-charset="utf-8">
|
||||||
<label for="login">Votre login : </label>
|
<label for="login">Votre login : </label>
|
||||||
<input type="text" name="login" value="" />
|
<input type="text" name="login" value="" />
|
||||||
@ -22,23 +26,31 @@
|
|||||||
<input type="password" name="password" value="" />
|
<input type="password" name="password" value="" />
|
||||||
<p><input type="submit" value="Connexion →" /></p>
|
<p><input type="submit" value="Connexion →" /></p>
|
||||||
</form>
|
</form>
|
||||||
<% END %>
|
<% END %>
|
||||||
</div>
|
|
||||||
<div id="page">
|
</div>
|
||||||
<h1 style="text-align:center">Bienvenue sur netlib.re ! </h1>
|
|
||||||
<p style="text-align:center;">Netlib.re est un projet qui permettra à tout un chacun d'obtenir un sous-domaine de netlib.re, gratuitement et simplement. </p>
|
<div id="page">
|
||||||
<br />
|
|
||||||
<h2>Pourquoi ?</h2>
|
<h1 style="text-align:center">Bienvenue sur netlib.re !</h1>
|
||||||
Nous pensons qu'Internet est et doit rester un lieu où l'utilisateur crée le contenu. Ce projet permettra donc d'apporter un peu notre pierre à l'édifice en aidant les gens n'ayant pas forcément de compétences en informatique de créer un nom de domaine.<br />
|
<p style="text-align:center;">Netlib.re est un projet qui permettra à tout un chacun d'obtenir un sous-domaine de netlib.re, gratuitement et simplement. </p>
|
||||||
Remarque : ce site ne fera pas d'hébergement, il founira uniquement un serveur de nom de domaine automatisé.
|
<br />
|
||||||
<h2>Qui sommes-nous ?</h2>
|
|
||||||
<p>Une bande d'informaticiens passionnés, voulant aider la communauté.</p>
|
<h2>Pourquoi ?</h2>
|
||||||
<h2>Ce qui sera proposé</h2>
|
Nous pensons qu'Internet est et doit rester un lieu où l'utilisateur crée le contenu.
|
||||||
À venir sur le site :
|
Ce projet permettra donc d'apporter un peu notre pierre à l'édifice en aidant les gens n'ayant pas forcément de compétences en informatique de créer un nom de domaine.<br />
|
||||||
<ul>
|
Remarque : ce site ne fera pas d'hébergement, il founira uniquement un serveur de nom de domaine automatisé.
|
||||||
<li>visualisation de la liste des domaines déjà réservés et utilisés ; </li>
|
|
||||||
<li>création d'un compte vous permettant de demander un nom de domaine en *.netlib.re (un administrateur devra le valider) ;</li>
|
<h2>Qui sommes-nous ?</h2>
|
||||||
<li>nous aimerions également proposer une mise à jour dynamique de votre adresse (dyndns).</li>
|
<p>Une bande d'informaticiens passionnés, voulant aider la communauté.</p>
|
||||||
</ul>
|
<h2>Ce qui sera proposé</h2>
|
||||||
<p>En résumé : cherchez votre nom de domaine, réservez-le, on s'occupe du reste ! </p>
|
|
||||||
</div>
|
À venir sur le site :
|
||||||
|
<ul>
|
||||||
|
<li>visualisation de la liste des domaines déjà réservés et utilisés ; </li>
|
||||||
|
<li>création d'un compte vous permettant de demander un nom de domaine en *.netlib.re (un administrateur devra le valider) ;</li>
|
||||||
|
<li>nous aimerions également proposer une mise à jour dynamique de votre adresse (dyndns).</li>
|
||||||
|
</ul>
|
||||||
|
<p>En résumé : cherchez votre nom de domaine, réservez-le, on s'occupe du reste ! </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<% FOREACH domain in domains %>
|
<% FOREACH domain in domains %>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<%domain%>
|
<a href="details/<%domain%>" ><%domain%></a>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="domaindel/<%domain%>">Supprimer</a>
|
<a href="domaindel/<%domain%>">Supprimer</a>
|
||||||
|
Reference in New Issue
Block a user