affichage des détails d'une zone et mise à jour
parent
3c78751240
commit
f45b7afc4c
|
@ -92,6 +92,12 @@ sub delete_domain {
|
|||
$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 {
|
||||
my ($self, $login, $zone, $domain) = @_;
|
||||
my $ze = app::zone::edit->new(zname => $domain, zdir => $self->zdir);
|
||||
|
|
|
@ -70,6 +70,27 @@ sub update {
|
|||
$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
|
||||
sub new_tmp {
|
||||
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
|
||||
unless( session('login') && param('domain'))
|
||||
{
|
||||
|
@ -117,30 +118,41 @@ get '/details' => sub {
|
|||
else
|
||||
{
|
||||
my $app = initco();
|
||||
my ($auth_ok, $user, $isadmin) = $app->auth( param('login') );
|
||||
my @zones = ();
|
||||
my $zone_properties;
|
||||
#say 'dump : ' . dump $user->get_zone( param('domain') );
|
||||
my ($auth_ok, $user, $isadmin) = $app->auth(param('login'),
|
||||
param('password') );
|
||||
|
||||
for( $user->get_zone( param('domain') ) )
|
||||
{
|
||||
$app->update_domain_raw(session('login')
|
||||
, param('zoneupdated')
|
||||
, param('domain'));
|
||||
|
||||
if( ref($_) eq 'HASH' and exists $_->{addr} ) {
|
||||
push( @zones, $_ ) when $_->{addr} ne '@';
|
||||
$zone_properties = $_ when $_->{addr} eq '@';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
template details => {
|
||||
login => session('login')
|
||||
, domain => param('domain')
|
||||
, zones => \@zones
|
||||
, zone_properties => $zone_properties };
|
||||
redirect '/mapage';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
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 {
|
||||
unless( session('login') )
|
||||
|
|
|
@ -1,105 +1,25 @@
|
|||
<div id="sidebar">
|
||||
Welcome <% login %> !
|
||||
<form action='logout' method="get" accept-charset="utf-8">
|
||||
Welcome <% login %> !
|
||||
<form action='logout' method="post" accept-charset="utf-8">
|
||||
<input type="submit" name="logout" value="Déconnexion">
|
||||
</form>
|
||||
<% IF admin == 1 %>
|
||||
<a href='administration'>Page d'administration</a>
|
||||
<% END %>
|
||||
<a href='/'>Accueil</a>
|
||||
<% IF admin == 1 %>
|
||||
<a href='administration'>Page d'administration</a>
|
||||
<% END %>
|
||||
<a href='/'>Accueil</a>
|
||||
</div>
|
||||
|
||||
<div id="page">
|
||||
<% IF domain && domain.size %>
|
||||
<table border='1px'>
|
||||
<caption>Les zones de <%domain%></caption>
|
||||
<tr>
|
||||
<th>Host</th>
|
||||
<th>Adress</th>
|
||||
<th>Type</th>
|
||||
<th>Domain</th>
|
||||
</tr>
|
||||
<% FOREACH zone in zones %>
|
||||
<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 %>
|
||||
|
||||
<h3>Fichier de zone de <% domain %></h3>
|
||||
|
||||
<form action='/domainupdate/<% domain %>' method="post" >
|
||||
<label for='zone'>Votre zone :</label>
|
||||
<br />
|
||||
<textarea id='zone' name="zoneupdated" rows="20" cols="100"><% domain_zone %></textarea>
|
||||
<br />
|
||||
<input type="submit" value="Mettre à jour la zone">
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,20 +1,24 @@
|
|||
<div id="sidebar">
|
||||
<% IF logged == 1 %>
|
||||
<div id="sidebar">
|
||||
|
||||
<% IF logged == 1 %>
|
||||
Welcome <% login %> !
|
||||
<form action='logout' method="get" accept-charset="utf-8">
|
||||
<input type="submit" name="logout" value="Déconnexion">
|
||||
</form>
|
||||
<a href='mapage'>Votre page de configuration</a><br />
|
||||
<% IF admin == 1 %>
|
||||
<a href='administration'>Page d'administration</a><br />
|
||||
<% END %>
|
||||
<% IF domains %>
|
||||
Liens rapides :<br />
|
||||
<% FOREACH domain IN domains %>
|
||||
<a href="details?domain=<% domain %>"><% domain %> </a><br />
|
||||
<% END %>
|
||||
<% END %>
|
||||
<% ELSE %>
|
||||
|
||||
<a href='mapage'>Votre page de configuration</a><br />
|
||||
<% IF admin == 1 %>
|
||||
<a href='administration'>Page d'administration</a><br />
|
||||
<% END %>
|
||||
|
||||
<% IF domains %>
|
||||
Liens rapides :<br />
|
||||
<% FOREACH domain IN domains %>
|
||||
<a href="details/<% domain %>"><% domain %></a><br />
|
||||
<% END %>
|
||||
<% END %>
|
||||
|
||||
<% ELSE %>
|
||||
<form action="login" method="post" accept-charset="utf-8">
|
||||
<label for="login">Votre login : </label>
|
||||
<input type="text" name="login" value="" />
|
||||
|
@ -22,23 +26,31 @@
|
|||
<input type="password" name="password" value="" />
|
||||
<p><input type="submit" value="Connexion →" /></p>
|
||||
</form>
|
||||
<% END %>
|
||||
</div>
|
||||
<div id="page">
|
||||
<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>
|
||||
<br />
|
||||
<h2>Pourquoi ?</h2>
|
||||
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 />
|
||||
Remarque : ce site ne fera pas d'hébergement, il founira uniquement un serveur de nom de domaine automatisé.
|
||||
<h2>Qui sommes-nous ?</h2>
|
||||
<p>Une bande d'informaticiens passionnés, voulant aider la communauté.</p>
|
||||
<h2>Ce qui sera proposé</h2>
|
||||
À 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>
|
||||
<% END %>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="page">
|
||||
|
||||
<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>
|
||||
<br />
|
||||
|
||||
<h2>Pourquoi ?</h2>
|
||||
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 />
|
||||
Remarque : ce site ne fera pas d'hébergement, il founira uniquement un serveur de nom de domaine automatisé.
|
||||
|
||||
<h2>Qui sommes-nous ?</h2>
|
||||
<p>Une bande d'informaticiens passionnés, voulant aider la communauté.</p>
|
||||
<h2>Ce qui sera proposé</h2>
|
||||
|
||||
À 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 %>
|
||||
<tr>
|
||||
<td>
|
||||
<%domain%>
|
||||
<a href="details/<%domain%>" ><%domain%></a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="domaindel/<%domain%>">Supprimer</a>
|
||||
|
|
Reference in New Issue