- Timestamp:
- 07/30/12 01:04:24 (12 years ago)
- Location:
- web
- Files:
-
- 3 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
web/Makefile.PL
r435 r461 31 31 requires 'Catalyst::View::JSON' => '0'; 32 32 requires 'Catalyst::View::GD' => '0'; 33 requires 'Catalyst::View::Email' => '0'; 33 34 requires 'Catalyst::Model::DBIC::Schema'; 34 35 requires 'Catalyst::Authentication::Store::DBIx::Class'; -
web/Sophie.spec.in
r436 r461 54 54 Requires: perl(Catalyst::View::JSON) 55 55 Requires: perl(Catalyst::View::GD) 56 Requires: perl(Catalyst::View::Email) 56 57 Requires: perl(Catalyst::Plugin::Compress::Zlib) 57 58 Requires: perl-Catalyst-Plugin-Server -
web/lib/Sophie.pm
r443 r461 79 79 }, 80 80 }, 81 'View::Email' => { 82 default => { 83 charset => 'utf-8', 84 content_type => 'text/plain', 85 }, 86 sender => { 87 mailer => 'SMTP', 88 mailer_args => { 89 host => 'localhost', 90 }, 91 }, 92 } 81 93 ); 82 94 -
web/lib/Sophie/Controller/Login.pm
r460 r461 56 56 my ($self, $c, $mail) = @_; 57 57 58 my $valid_code = join('', map { printf("%02x", rand(256)) } (0 .. 15));58 my $valid_code = join('', map { sprintf("%02x", rand(256)) } (0 .. 15)); 59 59 60 60 $c->model('Base::AccountRequest')->create({ 61 61 mail => $mail, 62 62 valid_code => $valid_code, 63 ip_address => $c->req->address, 63 64 }); 65 $c->model('Base')->storage->dbh->commit; 66 67 return $valid_code; 64 68 } 65 69 … … 67 71 my ($self, $c) = @_; 68 72 69 warn $c->req->param('valid');70 warn $c->session->{valid_create_user};71 73 if ((my $valid = $c->req->param('valid')) && $c->req->param('username')) { 74 # create a login request 75 my $valid_code = $c->forward('create_request', [ $c->req->param('username') ],); 76 72 77 if ($valid == $c->session->{valid_create_user}) { 73 my $res = $c->forward('/admin/create_user', 74 [ 75 $c->req->param('username'), 76 $c->req->param('password'), 77 ] 78 ); 79 if ($res) { 80 $c->res->redirect($c->uri_for('/login', 81 { username => $c->req->param('username') } 82 )); 83 } 84 } 78 $c->stash->{email} = { 79 header => [ 80 to => $c->req->param('username'), 81 from => 'sophie@zarb.org', 82 subject => 'Sophie.zarb.org confirm request', 83 ], 84 body => " 85 Someone, hopefully you, request an account on Sophe web site. 86 87 To complete your subscription follow the link bellow: 88 89 " . $c->uri_for('/login/confirm', { id => $valid_code }) . " 90 91 If this is an error, simply ignore this mail. 92 93 ", 94 }; 95 $c->forward( $c->view('Email') ); 96 } 85 97 } 86 98 my $aa = (0 .. 9)[rand(9)]; … … 88 100 $c->stash->{valid} = "$aa + $bb"; 89 101 $c->session->{valid_create_user} = $aa + $bb; 102 } 103 104 sub confirm :Local { 105 my ($self, $c) = @_; 106 107 my $reqid = $c->req->param('id'); 108 109 my $request = $c->model('Base::AccountRequest')->find( 110 { 111 valid_code => $reqid, 112 }); 113 if (!$request) { 114 # ERR 115 } 116 $c->stash->{email} = $request->mail; 117 118 if ($c->req->param('password')) { 119 my $res = $c->forward('/admin/create_user', 120 [ 121 $request->mail, 122 $c->req->param('password'), 123 ] 124 ); 125 if ($res) { 126 $request->delete; 127 $c->model('Base')->storage->dbh->commit; 128 # TODO authenticate user directly 129 $c->res->redirect($c->uri_for('/login', 130 { username => $request->mail } 131 )); 132 } 133 } 90 134 } 91 135 -
web/root/templates/html/login/create.tt
r459 r461 6 6 <label for="username">Email:</label> 7 7 <input type="text" id="username" name="username" value="[% c.req.param('username') %]"><br> 8 <label for="password">Password:</label> <input id="password" type="password" name="password"><br>9 8 <p>Please enter the result of:</p> 10 9 <label for="valid">[% valid | html %]:</label>
Note: See TracChangeset
for help on using the changeset viewer.