aboutsummaryrefslogtreecommitdiff
path: root/juick-server/src/main/java/com/juick/server
diff options
context:
space:
mode:
Diffstat (limited to 'juick-server/src/main/java/com/juick/server')
-rw-r--r--juick-server/src/main/java/com/juick/server/ActivityPubManager.java8
-rw-r--r--juick-server/src/main/java/com/juick/server/api/activity/Profile.java11
2 files changed, 16 insertions, 3 deletions
diff --git a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java
index cbe7f623..c05deb15 100644
--- a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java
+++ b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java
@@ -9,6 +9,7 @@ import com.juick.server.api.activity.model.activities.Accept;
import com.juick.server.api.activity.model.activities.Create;
import com.juick.service.SocialService;
import com.juick.service.activities.ActivityListener;
+import com.juick.service.activities.DeleteUserEvent;
import com.juick.service.activities.FollowEvent;
import com.juick.service.activities.UndoFollowEvent;
import com.juick.service.component.*;
@@ -80,6 +81,13 @@ public class ActivityPubManager implements ActivityListener, NotificationListene
}
@Override
+ public void deleteUserEvent(DeleteUserEvent event) {
+ String acct = event.getUserUri();
+ logger.info("Deleting {} from followers", acct);
+ socialService.removeAccount(acct);
+ }
+
+ @Override
public void processMessageEvent(MessageEvent messageEvent) {
Message msg = messageEvent.getMessage();
User user = msg.getUser();
diff --git a/juick-server/src/main/java/com/juick/server/api/activity/Profile.java b/juick-server/src/main/java/com/juick/server/api/activity/Profile.java
index 622bb08b..bbb7761f 100644
--- a/juick-server/src/main/java/com/juick/server/api/activity/Profile.java
+++ b/juick-server/src/main/java/com/juick/server/api/activity/Profile.java
@@ -6,16 +6,16 @@ import com.juick.server.KeystoreManager;
import com.juick.server.SignatureManager;
import com.juick.server.api.activity.model.*;
import com.juick.server.api.activity.model.activities.Create;
+import com.juick.server.api.activity.model.activities.Delete;
import com.juick.server.api.activity.model.activities.Follow;
import com.juick.server.api.activity.model.activities.Undo;
import com.juick.server.util.HttpNotFoundException;
import com.juick.server.util.UserUtils;
import com.juick.service.MessagesService;
import com.juick.service.UserService;
+import com.juick.service.activities.DeleteUserEvent;
import com.juick.service.activities.FollowEvent;
import com.juick.service.activities.UndoFollowEvent;
-import com.juick.util.MessageUtils;
-import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.http.HttpStatus;
@@ -27,7 +27,6 @@ import org.springframework.web.util.UriComponentsBuilder;
import javax.inject.Inject;
import java.net.URI;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -249,6 +248,12 @@ public class Profile {
applicationEventPublisher.publishEvent(new UndoFollowEvent(this, activity.getActor(), follower));
return new ResponseEntity<>(HttpStatus.OK);
}
+ if (activity instanceof Delete) {
+ if (activity.getObject() instanceof String) {
+ // Delete user
+ applicationEventPublisher.publishEvent(new DeleteUserEvent(this, (String)activity.getObject()));
+ }
+ }
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
return new ResponseEntity<>(HttpStatus.UNAUTHORIZED);