gitprep / templates / auto / reset-password.html.ep /
Newer Older
141 lines | 4.169kb
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
1
<%
2
  
3
  # API
4
  my $api = gitprep_api;
5
  
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
6
  # Parameters
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
7
  my $op = param('op') || '';
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
8
  my $user = param('user');
added reset password feature
Yuki Kimoto authored on 2013-04-10
9

            
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
10
  my $reset_password_conf_on = app->config->{admin}{reset_password};
11
  my $logined_admin = $api->logined_admin;
12
  my $logined_user = $api->logined($user);
13
  
14
  if ($reset_password_conf_on) {
revert encoding support
Yuki Kimoto authored on 2013-11-22
15
    my $admin_user = app->manager->admin_user;
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
16
    $user = $admin_user ? $admin_user->{id} : undef;
added reset password feature
Yuki Kimoto authored on 2013-04-10
17
  }
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
18
  elsif (!$logined_admin && !$logined_user) {
added reset password feature
Yuki Kimoto authored on 2013-04-10
19
    $self->redirect_to('/');
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
20
    return;
added reset password feature
Yuki Kimoto authored on 2013-04-10
21
  }
22
  
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
23
  # Error
24
  my $errors;
25
  
26
  # Reset password
27
  if ($op eq 'reset') {
28
    
cleanup reset-password valid...
Yuki Kimoto authored on 2016-02-09
29
    # Parameters
30
    my $password = param('password');
31
    my $password2 = param('password2');
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
32
    
cleanup reset-password valid...
Yuki Kimoto authored on 2016-02-09
33
    # Validator
34
    my $vc = app->vc;
35
    
36
    # Validation result
37
    my $validation = $vc->validation;
38
    
39
    # "password" check
40
    if (!(defined $password && length $password)) {
41
      $validation->add_failed(password => "Password is empty.");
42
    }
43
    elsif (!$vc->check($password, 'ascii_graphic')) {
44
      $validation->add_failed(password => 'Password contains invalid character.');
45
    }
46
    elsif ($password ne $password2) {
47
      $validation->add_failed(password => "Two password don't match");
48
    }
49
    
50
    if ($validation->is_valid) {
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
51
      
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
52
      # Valid parameters
cleanup reset-password valid...
Yuki Kimoto authored on 2016-02-09
53
      my ($password_encrypted, $salt) = $api->encrypt_password($password);
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
54
      
55
      # Reset password
56
      my $dbi = app->dbi;
cleanup reset-password valid...
Yuki Kimoto authored on 2016-02-09
57
      my $count = $dbi->model('user')->update(
58
        {password => $password_encrypted, salt => $salt},
59
        where => {id => $user}
60
      );
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
61
      
62
      if ($count) {
63
        # Redirect
64
        my $messages = [];
65
        push @$messages, "Success Reset Password: User $user password is changed";
66
        if ($reset_password_conf_on) {
67
          my $message = "Password is reseted. Don't forget"
68
            . " to comment out reset_password option line from config file";
69
          push @$messages, $message;
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
70
        }
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
71
        flash(messages => $messages);
72
        if ($reset_password_conf_on) {
73
          $self->redirect_to('current');
74
        }
75
        elsif ($logined_admin) {
76
          my $url = url_for->query(user => $user);
77
          $self->redirect_to($url);
78
        }
79
        else {
80
          my $url = url_for->query(user => $user);
81
          session(password => $password_encrypted);
82
          $self->redirect_to($url);
83
        }
84
        return;
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
85
      }
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
86
      else { $errors = ["User $user don't exists"] }
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
87
    }
cleanup reset-password valid...
Yuki Kimoto authored on 2016-02-09
88
    else { $errors = $validation->messages }
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
89
  }
90
%>
91

            
add title
Yuki Kimoto authored on 2013-06-12
92
% layout 'common', title => 'Reset password';
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
93

            
94
  %= include '/include/header';
add need_login_always_option
Yuki Kimoto authored on 2013-08-21
95
  
96
  <!-- Reset password page -->
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
97

            
98
  <div class="container">
added reset password feature
Yuki Kimoto authored on 2013-04-10
99
    % if (my $messages = flash('messages')) {
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
100
      <div class="alert alert-success">
101
        <button type="button" class="close" data-dismiss="alert">&times;</button>
added reset password feature
Yuki Kimoto authored on 2013-04-10
102
        % for my $message (@$messages) {
103
          <div><%= $message %></div>
104
        % }
added admin password reset s...
Yuki Kimoto authored on 2013-04-09
105
      </div>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
106
    % }
107
    
108
    % if ($errors) {
109
      <div class="alert alert-error">
110
        <button type="button" class="close" data-dismiss="alert">&times;</button>
111
        % for my $error (@$errors) {
112
          <div><%= $error %></div>
113
        % }
114
      </div>
115
    % }
improve admin page design
Yuki Kimoto authored on 2016-01-23
116
    <div class="topic1" style="text-align:center"><h3>Reset Password</h3></div>
117
    <form class="user-form" action="<%= url_for->query(op => 'reset') %>" method="post">
118
      <div class="user-form-container">
119
        <div>User name</div>
120
        <div style="margin:1px 0 10px 0">
121
          <b><%= $user %></b>
122
          %= hidden_field user => $user;
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
123
        </div>
improve admin page design
Yuki Kimoto authored on 2016-01-23
124
        <div>
125
          <div>Password</div>
126
          <div>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
127
            <%= password_field 'password', id => 'input-password', placeholder => 'Password' %>
128
            <%= password_field 'password2', id => 'input-password', placeholder => 'Password Again' %>
129
          </div>
130
        </div>
improve admin page design
Yuki Kimoto authored on 2016-01-23
131
        <div style="margin-top:20px">
improve button design
Yuki Kimoto authored on 2016-11-30
132
          <button type="submit" class="btn btn-green btn-new">Reset Password</button>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
133
        </div>
improve admin page design
Yuki Kimoto authored on 2016-01-23
134
      </div>
135
    </form>
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
136
    % if ($logined_admin) {
improve admin page design
Yuki Kimoto authored on 2016-01-23
137
      <div style="text-align:center;margin:20px 0;font-size:120%"><a href="<%= url_for('_admin/users') %>">Users</a></div>
changed database column info...
Yuki Kimoto authored on 2013-04-17
138
    % }
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
139
  </div>
140

            
141
  %= include '/include/footer';