1 contributor
<%
my $api = gitprep_api;
my $user = param('user');
my $op = param('op') || '';
my $errors;
if ($op eq 'delete') {
unless ($api->logined) {
return $self->render_exception;
}
# Validation
my $params = $api->params;
my $validator = $self->app->validator;
my $rule = [
user => [
['not_blank' => 'User name is empty.'],
[{'regex' => qr/^[a-zA-Z0-9_]+$/} => 'User name contain invalid character.'],
[{'length' => {max => 20}} => 'User name is too long.']
]
];
my $vresult = $validator->validate($params, $rule);
if ($vresult->is_ok) {
# Valid parameters
my $params = $vresult->data;
my $user = $params->{user};
# Delete user
eval { app->manager->delete_user($user) };
if ($@) {
app->log->error($@);
$errors = ['Internal Error'];
}
else {
$self->flash(user_deleted => 1);
$self->flash(user => $user);
$self->redirect_to('/_admin/users');
}
}
else { $errors = $vresult->messages }
}
%>
% layout 'common';
%= include '/include/header';
<div class="container">
<div class="alert">
<button type="button" class="close" data-dismiss="alert">×</button>
<p>
<big>
<big>
If you click delete button, user and all of user's repositories is deleted.
Be careful!
</big>
</big>
</p>
</div>
% my $id = '';
% if (flash('success')) {
<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
Success: User <b><%= flash('user') %></b> is deleted.
</div>
% }
% if ($errors) {
<div class="alert">
<button type="button" class="close" data-dismiss="alert">×</button>
% for my $error (@$errors) {
<p><%= $error %></p>
% }
</div>
% }
<div class="text-center"><h3>Delete User</h3></div>
<div class="well" style="background:white;padding-top:15px;padding-left:60px;width:300px;margin-left:auto;margin-right:auto">
<form action="<%= url_for->query(op => 'delete') %>" method="post">
<div class="control-group">
<label class="control-label" for="user-name">User name</label>
<b><big><big><%= $user %></big></big></b>
</div>
%= hidden_field user => $user;
<div class="control-group">
<div class="controls">
<button type="submit" class="btn">Delete user and repositories</button>
</div>
</div>
</form>
</div>
<div class="text-center" style="margin-bottom:20px"><big><a href="<%= url_for('/_admin/users') %>">Users</a></big></div>
</div>
%= include '/include/footer';