<% # API my $api = gitprep_api; my $admin_user = app->manager->admin_user; if (defined $admin_user && $admin_user ne '') { $self->redirect_to('/'); return; } # Operator my $op = param('op') || ''; my $errors; if ($op eq 'create') { # Parameters my $password = param('password'); my $password2 = param('password2'); # Validator my $vc = app->vc; # Validation my $validation = $vc->validation; # "user" if (defined $admin_user) { $validation->add_failed('Admin user already exists.'); } # "password" if (!(defined $password && length $password)) { $validation->add_failed('Password is empty.'); } elsif (!$vc->check($password, 'ascii_graphic')) { $validation->add_failed("Password contains invalid character."); } elsif ($password ne $password2) { $validation->add_failed("Two password don't match."); } if ($validation->is_valid) { # Valida parameters my $new_user = {}; $new_user->{id} = 'admin'; $new_user->{admin} = 1; my ($password_encryped, $salt) = $api->encrypt_password($password); $new_user->{password} = $password_encryped; $new_user->{salt} = $salt; $new_user->{email} = ''; # Create admin user $self->app->dbi->model('user')->insert($new_user); # Redirect $self->flash(admin_user_created => 1); $self->redirect_to('/_login'); return; } else { $errors = $validation->messages } } layout 'common', title => 'Start page'; %> %= include '/include/header';
% if ($errors) {
% for my $error (@$errors) {
<%= $error %>
% }
% }

Create Admin User

User name
admin
Password
<%= password_field 'password', id => 'input-password', placeholder => 'Password' %> <%= password_field 'password2', id => 'input-password', placeholder => 'Password Again' %>
%= include '/include/footer';