visualisation des users (pour suppr / passage admin), rendu
parent
88d78b00b1
commit
b729f6fc8e
11
app/app.pm
11
app/app.pm
|
@ -55,10 +55,9 @@ sub register_user {
|
||||||
${$self->um}->register_user($login, $passwd);
|
${$self->um}->register_user($login, $passwd);
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO
|
|
||||||
sub set_admin {
|
sub set_admin {
|
||||||
my ($self, $login) = @_;
|
my ($self, $login, $val) = @_;
|
||||||
${$self->um}->set_admin($login);
|
${$self->um}->set_admin($login, $val);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub update_passwd {
|
sub update_passwd {
|
||||||
|
@ -131,6 +130,12 @@ sub get_all_domains {
|
||||||
${$self->um}->get_all_domains;
|
${$self->um}->get_all_domains;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub get_all_users {
|
||||||
|
my ($self) = @_;
|
||||||
|
# % login admin
|
||||||
|
${$self->um}->get_all_users;
|
||||||
|
}
|
||||||
|
|
||||||
sub new_tmp {
|
sub new_tmp {
|
||||||
my ($self, $login, $domain) = @_;
|
my ($self, $login, $domain) = @_;
|
||||||
my $ze = app::zone::edit->new(zname => $domain, zdir => $self->zdir);
|
my $ze = app::zone::edit->new(zname => $domain, zdir => $self->zdir);
|
||||||
|
|
|
@ -153,7 +153,7 @@ sub get_domains {
|
||||||
|
|
||||||
sub get_all_domains {
|
sub get_all_domains {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
my ($sth, $user, %domains);
|
my ($sth, %domains);
|
||||||
|
|
||||||
$sth = $self->dbh->prepare('SELECT domain, login FROM domain');
|
$sth = $self->dbh->prepare('SELECT domain, login FROM domain');
|
||||||
unless ( $sth->execute()) {
|
unless ( $sth->execute()) {
|
||||||
|
@ -169,4 +169,35 @@ sub get_all_domains {
|
||||||
%domains;
|
%domains;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub get_all_users {
|
||||||
|
my ($self) = @_;
|
||||||
|
my ($sth, %users);
|
||||||
|
|
||||||
|
$sth = $self->dbh->prepare('SELECT login, admin FROM user');
|
||||||
|
unless ( $sth->execute()) {
|
||||||
|
$sth->finish();
|
||||||
|
undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
while( my $ref = $sth->fetchrow_arrayref) {
|
||||||
|
$users{@$ref[0]} = @$ref[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
$sth->finish();
|
||||||
|
%users;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub set_admin {
|
||||||
|
my ($self, $login, $val) = @_;
|
||||||
|
|
||||||
|
my $sth = $self->dbh->prepare('update user set admin=? where login=?');
|
||||||
|
unless ( $sth->execute( $val, $login) ) {
|
||||||
|
$sth->finish();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sth->finish();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -234,13 +234,15 @@ any ['get', 'post'] => '/admin' => sub {
|
||||||
else {
|
else {
|
||||||
|
|
||||||
my %alldomains = $app->get_all_domains;
|
my %alldomains = $app->get_all_domains;
|
||||||
|
my %allusers = $app->get_all_users;
|
||||||
my ($success, @domains) = $app->get_domains( session('login') );
|
my ($success, @domains) = $app->get_domains( session('login') );
|
||||||
|
|
||||||
template administration => {
|
template administration => {
|
||||||
login => session('login')
|
login => session('login')
|
||||||
, admin => session('admin')
|
, admin => session('admin')
|
||||||
, domains => [ @domains ]
|
, domains => [ @domains ]
|
||||||
, alldomains => { %alldomains } };
|
, alldomains => { %alldomains }
|
||||||
|
, allusers => { %allusers } };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -287,6 +289,69 @@ prefix '/user' => sub {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
get '/unsetadmin/:user' => sub {
|
||||||
|
|
||||||
|
unless( defined param('user') )
|
||||||
|
{
|
||||||
|
|
||||||
|
# TODO ajouter une erreur à afficher
|
||||||
|
redirect request->referer;
|
||||||
|
|
||||||
|
}
|
||||||
|
elsif(! defined session('login') )
|
||||||
|
{
|
||||||
|
|
||||||
|
redirect '/';
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
my $app = initco();
|
||||||
|
|
||||||
|
my ($auth_ok, $user, $isadmin) = $app->auth(session('login'),
|
||||||
|
session('password') );
|
||||||
|
|
||||||
|
if ( $auth_ok && $isadmin ) {
|
||||||
|
$app->set_admin(param('user'), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
redirect request->referer;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
get '/setadmin/:user' => sub {
|
||||||
|
|
||||||
|
unless( defined param('user') )
|
||||||
|
{
|
||||||
|
|
||||||
|
# TODO ajouter une erreur à afficher
|
||||||
|
redirect request->referer;
|
||||||
|
|
||||||
|
}
|
||||||
|
elsif(! defined session('login') )
|
||||||
|
{
|
||||||
|
|
||||||
|
redirect '/';
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
my $app = initco();
|
||||||
|
|
||||||
|
my ($auth_ok, $user, $isadmin) = $app->auth(session('login'),
|
||||||
|
session('password') );
|
||||||
|
|
||||||
|
if ( $auth_ok && $isadmin ) {
|
||||||
|
$app->set_admin(param('user'), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
redirect request->referer;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -20,11 +20,43 @@
|
||||||
<td><% pair.value %></td>
|
<td><% pair.value %></td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<a href="/domain/del/<% pair.key %>">sup. domaine</a>
|
<a href="/domain/del/<% pair.key %>"><button type="button" class="btn btn-danger">Supprimer le domaine</button></a>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<a href="/user/del/<% pair.value %>">sup. utilisateur</a>
|
<a href="/user/del/<% pair.value %>"><button type="button" class="btn btn-danger">Supprimer l'utilisateur</button></a>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
<% END %>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="utilisateurs">
|
||||||
|
|
||||||
|
<h3>Utilisateurs enregistrés</h3>
|
||||||
|
<table class="table" >
|
||||||
|
<tr>
|
||||||
|
<th>utilisateur</th>
|
||||||
|
<th>supprimer</th>
|
||||||
|
<th>administrateur</th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<% FOREACH pair IN allusers.pairs %>
|
||||||
|
<tr>
|
||||||
|
<td><% pair.key %></td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<a href="/user/del/<% pair.key %>"><button type="button" class="btn btn-danger">Supprimer l'utilisateur</button></a>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<% IF pair.value == 1 %>
|
||||||
|
<a href="/user/unsetadmin/<% pair.key %>"><button type="button" class="btn btn-danger">Passer utilisateur</button></a>
|
||||||
|
<% ELSE %>
|
||||||
|
<a href="/user/setadmin/<% pair.key %>"><button type="button" class="btn btn-primary">Passer administrateur</button></a>
|
||||||
|
<% END %>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -23,12 +23,14 @@
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<% FOREACH domain in domains %>
|
<% FOREACH domain in domains %>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td><% domain %></td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<a href="/domain/details/<% domain %>" ><% domain %></a>
|
<a href="/domain/details/<% domain %>" ><button type="button" class="btn btn-primary">Détails</button></a>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<a href="/domain/del/<% domain %>">Supprimer</a>
|
<a href="/domain/del/<% domain %>" ><button type="button" class="btn btn-danger">Supprimer</button></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% END %>
|
<% END %>
|
||||||
|
|
|
@ -5,11 +5,20 @@
|
||||||
|
|
||||||
<% errmsg %> <br />
|
<% errmsg %> <br />
|
||||||
|
|
||||||
<form action='/user/add/' method="post" >
|
<h3>S'enregistrer</h3>
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
<form class="form" action='/user/add/' method="post" >
|
||||||
<label for='login'>login : </label>
|
<label for='login'>login : </label>
|
||||||
<input type='text' name='login' id='login' />
|
<input type='text' name='login' id='login' />
|
||||||
|
<br />
|
||||||
|
|
||||||
<label for='password'>password : </label>
|
<label for='password'>password : </label>
|
||||||
<input type='password' name='password' id='password' />
|
<input type='password' name='password' id='password' />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<label for='password2'>password (pour être sûr): </label>
|
||||||
|
<input type='password' name='password2' id='password2' />
|
||||||
<input type='submit' name='submit'/>
|
<input type='submit' name='submit'/>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue