gitprep / templates / auto / _login.html.ep /
Newer Older
150 lines | 3.919kb
added login page
Yuki Kimoto authored on 2013-02-11
1
<%
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
2
  # API
3
  my $api = gitprep_api;
4
  
5
  # Operator
added login page
Yuki Kimoto authored on 2013-02-11
6
  my $op = param('op') || '';
7
  
8
  # DBI
9
  my $dbi = $self->app->dbi;
10
  
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
11
  # Errors
12
  my $error;
13
  
14
  # Login
added login page
Yuki Kimoto authored on 2013-02-11
15
  if ($op eq 'login') {
16
    
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
17
    # Validation
18
    my $params = $api->params;
rename validator to vc to up...
Yuki Kimoto authored on 2013-12-02
19
    my $vc = $self->app->vc;
added login page
Yuki Kimoto authored on 2013-02-11
20
    my $password_check = sub {
21
      my $values = shift;
22
      
23
      my ($id, $password) = @$values;
24
      
changed database column info...
Yuki Kimoto authored on 2013-04-17
25
      my $row
26
        = $dbi->model('user')->select(['password', 'salt'], id => $id)->one;
added login page
Yuki Kimoto authored on 2013-02-11
27
      
changed database column info...
Yuki Kimoto authored on 2013-04-17
28
      return unless defined $password;
fixed bug that password chec...
Yuki Kimoto authored on 2013-04-12
29

            
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
30
      my $is_valid = $api->check_password(
31
        $password,
changed database column info...
Yuki Kimoto authored on 2013-04-17
32
        $row->{salt},
33
        $row->{password}
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
34
      );
35
      
36
      return $is_valid;
added login page
Yuki Kimoto authored on 2013-02-11
37
    };
38
    my $rule = [
39
      id => [
40
        'any'
41
      ],
42
      password => [
43
        'any'
44
      ],
45
      {password_check => [qw/id password/]}
46
        => {copy => 0},
47
        => [
48
          $password_check
add auto login
Yuki Kimoto authored on 2013-06-12
49
        ],
50
      save => {require => 0} => [
51
        'defined'
52
      ]
added login page
Yuki Kimoto authored on 2013-02-11
53
    ];
rename validator to vc to up...
Yuki Kimoto authored on 2013-12-02
54
    my $vresult = $self->app->vc->validate($params, $rule);
added login page
Yuki Kimoto authored on 2013-02-11
55
    
56
    if ($vresult->is_ok) {
57
      
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
58
      # Login success
add auto login
Yuki Kimoto authored on 2013-06-12
59
      my $safe_params = $vresult->data;
60
      my $id = $safe_params->{id};
61
      my $password = $safe_params ->{password};
changed database column info...
Yuki Kimoto authored on 2013-04-17
62
      my $row = $self->app->dbi->model('user')->select(['admin', 'password'], id => $id)->one;
63
      my $password_encrypted = $row->{password};
64
      my $admin = $row->{admin};
added reset password feature
Yuki Kimoto authored on 2013-04-10
65
      session(user => $id);
66
      session(password => $password_encrypted);
added login page
Yuki Kimoto authored on 2013-02-11
67
      
add auto login
Yuki Kimoto authored on 2013-06-12
68
      if ($safe_params->{save}) {
69
        # 2 weeks save
70
        session(expires => time + 60 * 60 * 24 * 14);
71
      }
72
      
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
73
      # Go to admin page
added login page
Yuki Kimoto authored on 2013-02-11
74
      if ($admin) {
75
        $self->redirect_to('/_admin');
cleanup login page
Yuki Kimoto authored on 2013-03-16
76
        return 1;
added login page
Yuki Kimoto authored on 2013-02-11
77
      }
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
78
      # Go to user page
added login page
Yuki Kimoto authored on 2013-02-11
79
      else {
80
        $self->redirect_to("/$id");
cleanup login page
Yuki Kimoto authored on 2013-03-16
81
        return 1;
added login page
Yuki Kimoto authored on 2013-02-11
82
      }
83
    }
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
84
    else { $error = 'User name or password is wrong' }
added login page
Yuki Kimoto authored on 2013-02-11
85
  }
86
%>
87

            
add title
Yuki Kimoto authored on 2013-06-12
88
% layout 'common', title => 'Sign in';
improved header design
Yuki Kimoto authored on 2013-02-15
89

            
add need_login_always_option
Yuki Kimoto authored on 2013-08-21
90
  <!-- Login page -->
added _start page tests
Yuki Kimoto authored on 2013-05-16
91
  
cleanup login page
Yuki Kimoto authored on 2013-03-16
92
  %= include '/include/header';
added start page
Yuki Kimoto authored on 2013-02-09
93

            
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
94
  <div class="container">
95
    % my $id = '';
96
    % if (flash('admin_user_created')) {
97
      % $id = 'admin';
98
      <div class="alert alert-success">
99
        <button type="button" class="close" data-dismiss="alert">&times;</button>
100
        Admin user is created. Let's login as admin user.
cleanup login page
Yuki Kimoto authored on 2013-03-16
101
      </div>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
102
    % }
103

            
fixed bug reset-password don...
Yuki Kimoto authored on 2013-05-17
104
    % if (my $messages = flash('messages')) {
105
      <div class="alert alert-success">
106
        <button type="button" class="close" data-dismiss="alert">&times;</button>
107
        % for my $message (@$messages) {
108
          <p><%= $message %></p>
109
        % }
110
      </div>
111
    % }
112
    
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
113
    % if ($error) {
114
      <div class="alert alert-error">
115
        <button type="button" class="close" data-dismiss="alert">&times;</button>
116
        <div><%= $error %></div>
cleanup login page
Yuki Kimoto authored on 2013-03-16
117
      </div>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
118
    % }
119
      
120
    <div class="well border-gray"
cleanup
Yuki Kimoto authored on 2013-05-13
121
      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
122
    >
123
      <form action="<%= url_for->query(op => 'login') %>" method="post">
124
        <div class="control-group">
125
          <label class="control-label" for="user-name">User name</label>
126
          <div class="controls">
127
            <%= input_tag id => $id, type => 'text', placeholder => 'User', id =>'user-name'%>
128
          </div>
improved sign in page design
Yuki Kimoto authored on 2013-02-15
129
        </div>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
130
        <div class="control-group">
131
          <label class="control-label" for="input-password">Password</label>
132
          <div class="controls">
133
            <%= password_field 'password', id => 'input-password', placeholder => 'Password' %>
134
          </div>
135
        </div>
add auto login
Yuki Kimoto authored on 2013-06-12
136
        <div class="control-group">
137
          <label class="checkbox">
138
            <input type="checkbox" name="save" value="1"> Save
139
          </label>
140
        </div>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
141
        <div class="control-group">
142
          <div class="controls">
143
            <button type="submit" class="btn">Sign in</button>
144
          </div>
145
        </div>
146
      </form>
147
    </div>
cleanup login page
Yuki Kimoto authored on 2013-03-16
148
  </div>
improved password encrypt sy...
Yuki Kimoto authored on 2013-04-09
149

            
150
  %= include '/include/footer';