return $self->load_myopac_payments if $path =~ m|opac/myopac/main_payments|;
return $self->load_myopac_main if $path =~ m|opac/myopac/main|;
return $self->load_myopac_update_email if $path =~ m|opac/myopac/update_email|;
+ return $self->load_myopac_update_password if $path =~ m|opac/myopac/update_password|;
return $self->load_myopac_update_username if $path =~ m|opac/myopac/update_username|;
return $self->load_myopac_bookbags if $path =~ m|opac/myopac/lists|;
return $self->load_myopac_bookbag_update if $path =~ m|opac/myopac/list/update|;
my $ctx = $self->ctx;
my $email = $self->cgi->param('email') || '';
+ return Apache2::Const::OK
+ unless $self->cgi->request_method eq 'POST';
+
unless($email =~ /.+\@.+\..+/) { # TODO better regex?
$ctx->{invalid_email} = $email;
return Apache2::Const::OK;
my $ctx = $self->ctx;
my $username = $self->cgi->param('username') || '';
+ return Apache2::Const::OK
+ unless $self->cgi->request_method eq 'POST';
+
unless($username and $username !~ /\s/) { # any other username restrictions?
$ctx->{invalid_username} = $username;
return Apache2::Const::OK;
return $self->generic_redirect($url);
}
+sub load_myopac_update_password {
+ my $self = shift;
+ my $e = $self->editor;
+ my $ctx = $self->ctx;
+
+ return Apache2::Const::OK
+ unless $self->cgi->request_method eq 'POST';
+
+ my $current_pw = $self->cgi->param('current_pw') || '';
+ my $new_pw = $self->cgi->param('new_pw') || '';
+ my $new_pw2 = $self->cgi->param('new_pw2') || '';
+
+ unless($new_pw eq $new_pw2) {
+ $ctx->{password_nomatch} = 1;
+ return Apache2::Const::OK;
+ }
+
+ my $pw_regex = $ctx->{get_org_setting}->($e->requestor->home_ou, 'global.password_regex');
+
+ if($pw_regex and $new_pw !~ /$pw_regex/) {
+ $ctx->{password_invalid} = 1;
+ return Apache2::Const::OK;
+ }
+
+ my $evt = $U->simplereq(
+ 'open-ils.actor',
+ 'open-ils.actor.user.password.update',
+ $e->authtoken, $new_pw, $current_pw);
+
+
+ if($U->event_equals($evt, 'INCORRECT_PASSWORD')) {
+ $ctx->{password_incorrect} = 1;
+ return Apache2::Const::OK;
+ }
+
+ my $url = $self->apache->unparsed_uri;
+ $url =~ s/update_password/prefs/;
+
+ return $self->generic_redirect($url);
+}
+
sub load_myopac_bookbags {
my $self = shift;
my $e = $self->editor;
</div>
</div>[% l("Username") %]
</td>
-
<td class='light_border'>[% ctx.user.usrname | html %]</td>
<td class='light_border'><a href='update_username'>[% l("Change") %]</a></td>
</tr>
-
- <tr id='myopac_update_username_row'
- class='hide_me'>
- <td class='myopac_update_cell'
- colspan='3'><span class=
- 'myopac_update_span'>[% l("Enter new username:") %]</span>
- <input type='text' size='24' id='myopac_new_username' />
- <span class='myopac_update_span'><button><span class=
- 'myopac_update_span'>[% l("Submit") %]</span></button></span>
- <span class='myopac_update_span'><button><span class=
- 'myopac_update_span'>[% l("Cancel") %]</span></button></span>
- </td>
- </tr>
<tr>
- <td class='color_4 light_border'>
- [% l("Password") %]</td>
- <td class='light_border'
- id='myopac_summary_password'>
- [% l("(not shown)") %]</td>
- <td class='light_border'><a href='#'
- class="hide_me"
- style='text-decoration: underline;'>[% l("Change") %]</a></td>
+ <td class='color_4 light_border'>[% l("Password") %]</td>
+ <td class='light_border'>[% l("(not shown)") %]</td>
+ <td class='light_border'><a href='update_password'>[% l("Change") %]</a></td>
</tr>
- <tr class='hide_me'>
- <td class='myopac_update_cell'
- colspan='3'>
- <table>
- <tbody>
- <tr>
- <td>
- <span class= 'myopac_update_span'>
- [% l("Enter current password:") %]
- </span>
- </td>
-
- <td>
- <input type='password'
- size='24' />
- </td>
- </tr>
- <tr>
- <td><span class=
- 'myopac_update_span'>[% l("Enter new password:") %]</span></td>
-
- <td><input type='password' size='24' />
- </td>
- </tr>
-
- <tr>
- <td><span class=
- 'myopac_update_span'>[% l("Re-enter new password:") %]</span></td>
-
- <td>
- <input type='password' size='24' />
- </td>
- </tr>
- </tbody>
- </table><span class=
- 'myopac_update_span'><button><span class=
- 'myopac_update_span'>[% l("Submit") %]</span></button></span>
- <span class='myopac_update_span'><button><span class='myopac_update_span'>
- [% l("Cancel") %]</span></button></span>
- </td>
- </tr>
-
<tr>
<td class='color_4 light_border'>[% l("Email Address") %]</td>
<td class='light_border'>[% ctx.user.email | html %]</td>
--- /dev/null
+[% PROCESS "default/opac/parts/header.tt2";
+ PROCESS "default/opac/parts/misc_util.tt2";
+ WRAPPER "default/opac/parts/myopac/base.tt2";
+ myopac_page = "prefs" %]
+
+<div id='myopac_summary_div' style="padding:0px;">
+
+[% IF ctx.password_invalid %]
+ <div id='account-update-email-error'> <!-- borrow css from update-email page -->
+ [% |l %] New password is invalid. Please try a different password. [% END %]
+ </div>
+
+[% ELSIF ctx.password_nomatch %]
+ <div id='account-update-email-error'>
+ [% |l %] Passwords do not match. [% END %]
+ </div>
+
+[% ELSIF ctx.password_incorrect %]
+ <div id='account-update-email-error'>
+ [% |l %] Your current password was not correct. [% END %]
+ </div>
+[% END %]
+
+<form method='POST' id='account-update-email'>
+ <table>
+ <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw'/></td></tr>
+ <tr><td>[% l('New Password') %]</td><td><input type='password' name='new_pw'/></td></tr>
+ <tr><td>[% l('New Password Again') %]</td><td><input type='password' name='new_pw2'/></td></tr>
+ <tr><td colspan='2' align='center'><input type='submit'/></td></tr>
+ </table>
+</form>
+
+[% END %]