[system] / trunk / webwork-modperl / lib / WeBWorK / DB / Auth.pm Repository:
ViewVC logotype

Diff of /trunk/webwork-modperl/lib/WeBWorK/DB/Auth.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 344 Revision 345
125 my $user = shift; 125 my $user = shift;
126 return unless $self->{keys_db}->connect("ro"); 126 return unless $self->{keys_db}->connect("ro");
127 my $result = $self->{keys_db}->hashRef->{$user}; 127 my $result = $self->{keys_db}->hashRef->{$user};
128 $self->{keys_db}->disconnect; 128 $self->{keys_db}->disconnect;
129 my ($key, $timestamp) = defined $result ? split /\s+/, $result : (undef, undef); 129 my ($key, $timestamp) = defined $result ? split /\s+/, $result : (undef, undef);
130 return ($key, $timestamp); 130 if (time <= $timestamp+$self->{key_timeout}) {
131 return $key;
132 } else {
133 $self->deleteKey($user);
134 return 0;
135 }
131} 136}
132 137
133sub setKey($$$$) { 138sub setKey($$$) {
134 my $self = shift; 139 my $self = shift;
135 my $user = shift; 140 my $user = shift;
136 my $key = shift; 141 my $key = shift;
137 my $timestamp = shift;
138 my $key_string = "$key $timestamp";
139 $self->{keys_db}->connect("rw"); 142 $self->{keys_db}->connect("rw");
140 $self->{keys_db}->hashRef->{$user} = $key_string; 143 $self->{keys_db}->hashRef->{$user} = "$key " . time;
141 $self->{keys_db}->disconnect; 144 $self->{keys_db}->disconnect;
142} 145}
143 146
144sub verifyKey($$$$$) { 147sub verifyKey($$$) {
145 my $self = shift; 148 my $self = shift;
146 my $user = shift; 149 my $user = shift;
147 my $key = shift; 150 my $key = shift;
148 my $timestamp = shift;
149 my ($real_key, $real_timestamp) = $self->getKey($user); 151 my $real_key = $self->getKey($user);
150 return unless defined $real_key and defined $real_timestamp; 152 return unless defined $real_key;
151 if ($key eq $real_key and $timestamp <= $real_timestamp+$self->{key_timeout}) { 153 if ($key eq $real_key) {
152 # update timestamp 154 # update timestamp
153 $self->setKey($user, $key, $timestamp); 155 $self->setKey($user, $real_key);
154 return 1; 156 return 1;
155 } else { 157 } else {
156 return 0; 158 return 0;
157 } 159 }
158} 160}

Legend:
Removed from v.344  
changed lines
  Added in v.345

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9