gitprep / templates / auto / reset-password.html.ep /
Newer Older
140 lines | 4.323kb
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
    
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
29
    # Validation
30
    my $params = $api->params;
31
    my $rule = [
32
      password => [
added tests and move delete ...
Yuki Kimoto authored on 2013-05-18
33
        ['not_blank' => 'Password is empty.'],
34
        ['ascii' => 'Password contains invalid character.'],
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
35
        [{'length' => {max => 20}} => 'Password is too long.']
36
      ],
37
      {password_check => [qw/password password2/]}
38
        => {copy => 0}
39
        => [
40
          ['duplication' => "Two password don't match"]
41
        ]
42
    ];
rename validator to vc to up...
Yuki Kimoto authored on 2013-12-02
43
    my $vresult = $self->app->vc->validate($params, $rule);
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
44
    
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
45
    if ($vresult->is_ok) {
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
46
      
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
47
      # Valid parameters
48
      my $valid_params = $vresult->data;
49
      my ($password_encrypted, $salt)
50
        = $api->encrypt_password($valid_params->{password});
51
      
52
      # Reset password
53
      my $dbi = app->dbi;
54
      my $count = $dbi->model('user')
55
        ->update({password => $password_encrypted, salt => $salt}, id => $user);
56
      
57
      if ($count) {
58
        # Redirect
59
        my $messages = [];
60
        push @$messages, "Success Reset Password: User $user password is changed";
61
        if ($reset_password_conf_on) {
62
          my $message = "Password is reseted. Don't forget"
63
            . " to comment out reset_password option line from config file";
64
          push @$messages, $message;
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
65
        }
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
66
        flash(messages => $messages);
67
        if ($reset_password_conf_on) {
68
          $self->redirect_to('current');
69
        }
70
        elsif ($logined_admin) {
71
          my $url = url_for->query(user => $user);
72
          $self->redirect_to($url);
73
        }
74
        else {
75
          my $url = url_for->query(user => $user);
76
          session(password => $password_encrypted);
77
          $self->redirect_to($url);
78
        }
79
        return;
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
80
      }
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
81
      else { $errors = ["User $user don't exists"] }
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
82
    }
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
83
    else { $errors = $vresult->messages }
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
84
  }
85
%>
86

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

            
89
  %= include '/include/header';
add need_login_always_option
Yuki Kimoto authored on 2013-08-21
90
  
91
  <!-- Reset password page -->
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
92

            
93
  <div class="container">
added reset password feature
Yuki Kimoto authored on 2013-04-10
94
    % if (my $messages = flash('messages')) {
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
95
      <div class="alert alert-success">
96
        <button type="button" class="close" data-dismiss="alert">&times;</button>
added reset password feature
Yuki Kimoto authored on 2013-04-10
97
        % for my $message (@$messages) {
98
          <div><%= $message %></div>
99
        % }
added admin password reset s...
Yuki Kimoto authored on 2013-04-09
100
      </div>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
101
    % }
102
    
103
    % if ($errors) {
104
      <div class="alert alert-error">
105
        <button type="button" class="close" data-dismiss="alert">&times;</button>
106
        % for my $error (@$errors) {
107
          <div><%= $error %></div>
108
        % }
109
      </div>
110
    % }
added reset password feature
Yuki Kimoto authored on 2013-04-10
111
    <div class="text-center"><h3>Reset Password</h3></div>
cleanup
Yuki Kimoto authored on 2013-05-13
112
    <div class="well" style="background:white;padding-top:15px;padding-left:60px;width:300px;margin-left:auto;margin-right:auto">
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
113
      <form action="<%= url_for->query(op => 'reset') %>" method="post">
114
        <div class="control-group">
115
          <label class="control-label" for="user-name">User name</label>
116
          <div>
added reset password feature
Yuki Kimoto authored on 2013-04-10
117
            <b><%= $user %></b>
118
            %= hidden_field user => $user;
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
119
          </div>
120
        </div>
121
        <div class="control-group">
122
          <label class="control-label" for="input-password">Password</label>
123
          <div class="controls">
124
            <%= password_field 'password', id => 'input-password', placeholder => 'Password' %>
125
            <%= password_field 'password2', id => 'input-password', placeholder => 'Password Again' %>
126
          </div>
127
        </div>
128
        <div class="control-group">
129
          <div class="controls">
added reset password feature
Yuki Kimoto authored on 2013-04-10
130
            <button type="submit" class="btn">Reset Password</button>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
131
          </div>
132
        </div>
133
      </form>
134
    </div>
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
135
    % if ($logined_admin) {
changed database column info...
Yuki Kimoto authored on 2013-04-17
136
      <div class="text-center" style="margin-bottom:20px;font-size:120%"><a href="<%= url_for('_admin/users') %>">Users</a></div>
137
    % }
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
138
  </div>
139

            
140
  %= include '/include/footer';