OSDN Git Service

eventd: add user/login and user/logout handler
authorhylom <hylom@users.sourceforge.jp>
Wed, 31 Oct 2018 10:12:35 +0000 (19:12 +0900)
committerhylom <hylom@users.sourceforge.jp>
Wed, 31 Oct 2018 10:12:59 +0000 (19:12 +0900)
src/newslash_web/lib/Newslash/Eventd/Handler/User.pm
src/newslash_web/lib/Newslash/Web/Controller/API/Login.pm
src/newslash_web/lib/Newslash/Web/Controller/Login.pm

index 38c67bf..d9cf9f9 100644 (file)
@@ -22,6 +22,22 @@ sub _reset_password {
     return $token;
 }
 
+sub login {
+    my ($self, $item) = @_;
+    $self->app->log->debug("event user/login processing... uid: $uid");
+
+    $self->inactivate_event($item->{event_id}, 0);
+    return;
+}
+
+sub logout {
+    my ($self, $item) = @_;
+    $self->app->log->debug("event user/logout processing... uid: $uid");
+
+    $self->inactivate_event($item->{event_id}, 0);
+    return;
+}
+
 sub create {
     my ($self, $item) = @_;
 
@@ -55,7 +71,39 @@ sub create {
 
     if (!$rs) {
         # error !
-        $self->app->log->error("event user create faild: sendmail error, uid: $uid");
+        $self->app->log->error("event user/create faild: sendmail error, uid: $uid");
+        $self->inactivate_event($item->{event_id}, -1);
+        return;
+    }
+
+    $self->inactivate_event($item->{event_id}, 0);
+    return;
+}
+
+sub updatepw {
+    my ($self, $item) = @_;
+    my $users = $self->app->model('users');
+    my $uid = $item->{source_user_id};
+    my $the_user = $users->select(uid => $uid);
+
+    # check the user exists
+    if (!$the_user) {
+        # error !
+        $self->app->log->error("event user/updatepw faild: no uid $uid");
+        $self->inactivate_event($item->{event_id}, -1);
+        return;
+    }
+    $self->app->log->debug("event user updatepw processing... uid: $uid");
+
+    # send message
+    my $render_params = { nickname => $the_user->{nickname} };
+    my $rs = $self->app->sendmail(to => $the_user,
+                                  template => "message/password_update",
+                                  params => $render_params);
+
+    if (!$rs) {
+        # error !
+        $self->app->log->error("event user/updatepw faild: sendmail error, uid: $uid");
         $self->inactivate_event($item->{event_id}, -1);
         return;
     }
index 84cc962..c9cdc28 100644 (file)
@@ -20,7 +20,7 @@ sub login {
                 return;
             }
             $c->render(json => { nickname => $nickname });
-            $c->event_que->emit("login", "login", $user->{uid});
+            $c->event_que->emit("user", "login", $user->{uid});
             return;
         }
     }
index fac027c..bd5fbd9 100644 (file)
@@ -31,7 +31,7 @@ sub login {
             return;
         }
         $c->redirect_to($rpath);
-        $c->event_que->emit("login", "login", $user->{uid});
+        $c->event_que->emit("user", "login", $user->{uid});
         return;
     }
 
@@ -48,7 +48,7 @@ sub logout {
 
   #TODO: $c->model('users')->expire_token($session->{token});
   $c->session(expires => 1);
-  $c->event_que->emit("login", "logout", $c->stash('user')->{uid});
+  $c->event_que->emit("user", "logout", $c->stash('user')->{uid});
   $c->redirect_to($rpath);
 }