| 1019 | | my ($session_key, $email, $name, $nick, $id, $url, $timeout, $blog_id) = @_; |
| | 1020 | my ($session_key, $email, $name, $nick, $id, $url) = @_; |
| | 1021 | my $user; |
| | 1022 | |
| | 1023 | # support for old signature; new signature is $session_key, $user_obj |
| | 1024 | if ( ref($session_key) && $session_key->isa('MT::Author') ) { |
| | 1025 | $user = $session_key; |
| | 1026 | $session_key = $app->make_magic_token; |
| | 1027 | $email = $user->email; |
| | 1028 | $name = $user->name; |
| | 1029 | $nick = $user->nickname || $app->translate('(Display Name not set)'); |
| | 1030 | $id = $user->id; |
| | 1031 | $url = $user->url; |
| | 1032 | } |
| | 1033 | # test |
| | 1034 | $session_key = $app->param('sig') if $user->auth_type eq 'TypeKey'; |
| | 1035 | |
| | 1036 | require MT::Session; |
| | 1037 | my $sess_obj = MT::Session->new(); |
| | 1038 | $sess_obj->id($session_key); |
| | 1039 | $sess_obj->email($email); |
| | 1040 | $sess_obj->name($name); |
| | 1041 | $sess_obj->start(time); |
| | 1042 | $sess_obj->kind("SI"); |
| | 1043 | $sess_obj->set('author_id', $user->id) if $user; |
| | 1044 | $sess_obj->save() |
| | 1045 | or return $app->error($app->translate("The login could not be confirmed because of a database error ([_1])", $sess_obj->errstr)); |
| 1036 | | if (defined $id) { |
| 1037 | | my $banned = 0; |
| 1038 | | my $perm = MT::Permission->load({ blog_id => $blog_id, author_id => $id }); |
| 1039 | | if ($perm) { |
| 1040 | | if (!$perm->can_administer_blog && $perm->is_restricted('comment')) { |
| 1041 | | $banned = 1; |
| 1042 | | } |
| 1043 | | } |
| 1044 | | |
| 1045 | | # my %id_kookee = (-name => "commenter_id", |
| 1046 | | # -value => $id . ':' . $blog_ids, |
| 1047 | | # -path => '/', |
| 1048 | | # ($timeout ? (-expires => $timeout) : ())); |
| 1049 | | # $app->bake_cookie(%id_kookee); |
| 1050 | | } |
| 1051 | | # if (defined($url) && $url) { |
| 1052 | | # my %id_kookee = (-name => "commenter_url", |
| 1053 | | # -value => $url, |
| 1054 | | # -path => '/', |
| 1055 | | # ($timeout ? (-expires => $timeout) : ())); |
| 1056 | | # $app->bake_cookie(%id_kookee); |
| 1057 | | # } |
| 1058 | | |
| 1059 | | require MT::Session; |
| 1060 | | my $sess_obj = MT::Session->new(); |
| 1061 | | $sess_obj->id($session_key); |
| 1062 | | $sess_obj->email($email); |
| 1063 | | $sess_obj->name($name); |
| 1064 | | $sess_obj->start(time); |
| 1065 | | $sess_obj->kind("SI"); |
| 1066 | | $sess_obj->save() |
| 1067 | | or return $app->error($app->translate("The login could not be confirmed because of a database error ([_1])", $sess_obj->errstr)); |
| | 1068 | |
| 1092 | | |
| 1093 | | # my %kookee = (-name => COMMENTER_COOKIE_NAME(), |
| 1094 | | # -value => '', |
| 1095 | | # -path => '/', |
| 1096 | | # -expires => "+${timeout}s"); |
| 1097 | | # $app->bake_cookie(%kookee); |
| 1098 | | # my %url_kookee = (-name => 'commenter_url', |
| 1099 | | # -value => '', |
| 1100 | | # -path => '/', |
| 1101 | | # -expires => "+${timeout}s"); |
| 1102 | | # $app->bake_cookie(%url_kookee); |
| 1103 | | # my %id_kookee = (-name => 'commenter_id', |
| 1104 | | # -value => '', |
| 1105 | | # -path => '/', |
| 1106 | | # -expires => "+${timeout}s"); |
| 1107 | | # $app->bake_cookie(%id_kookee); |
| | 1092 | my %kookee = (-name => COMMENTER_COOKIE_NAME(), |
| | 1093 | -value => '', |
| | 1094 | -path => '/', |
| | 1095 | -expires => "Thu, 01-Jan-70 00:00:01 GMT"); |
| | 1096 | $app->bake_cookie(%kookee); |