Skip to content

Commit

Permalink
site-admin: Add avatar force updater feature
Browse files Browse the repository at this point in the history
  • Loading branch information
doortts committed Aug 10, 2017
1 parent 9be4ad4 commit 028067c
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
51 changes: 51 additions & 0 deletions app/controllers/SiteApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

import com.avaje.ebean.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import controllers.annotation.AnonymousCheck;
import data.DataService;
import info.schleichardt.play2.mailplugin.Mailer;
Expand All @@ -22,6 +24,7 @@
import play.Configuration;
import play.Logger;
import play.db.ebean.Transactional;
import play.libs.Json;
import play.mvc.Controller;
import play.mvc.Http;
import play.mvc.Result;
Expand Down Expand Up @@ -325,4 +328,52 @@ public static Result importData() throws IOException {
}
}

public static Result noAvatarUsers() {
List<User> users = User.find.where().eq("state", UserState.ACTIVE).findList();
List<ObjectNode> usersNode = new ArrayList<>();

ObjectNode result = Json.newObject();

for(User user: users){
if(user.avatarId() == null) {
usersNode.add(composeUserNode(user));
}
}

result.put("users", toJson(usersNode));
return ok(result);
}

private static ObjectNode composeUserNode(User user) {
ObjectNode userNode = Json.newObject();
userNode.put("loginId", user.loginId);
userNode.put("name", user.name);
userNode.put("email", user.email);
return userNode;
}

public static Result setAttachmentToUserAvatar() {
ObjectNode result = Json.newObject();

JsonNode json = request().body().asJson();
if (json == null) {
return badRequest(result.put("message", "Expecting Json data"));
}

long avatarFileId = json.findValue("avatarFileId").asLong();
Attachment attachment = Attachment.find.byId(avatarFileId);
String primary = attachment.mimeType.split("/")[0].toLowerCase();

String targetUserEmail = json.findValue("email").asText();
User targetUser = User.findByEmail(targetUserEmail);

if (primary.equals("image") && !targetUser.isAnonymous()) {
Attachment.deleteAll(targetUser.avatarAsResource());
attachment.moveTo(targetUser.avatarAsResource());
}

result.put("status", 200);
result.put("message", "OK");
return ok(result);
}
}
2 changes: 2 additions & 0 deletions conf/routes
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ POST /resetPassword
GET /verify/:loginId/:verificationCode controllers.UserApp.verifyUser(loginId:String, verificationCode:String)
GET /sites/postList controllers.SiteApp.postList(pageNum: Int ?= 1)
GET /sites/issueList controllers.SiteApp.issueList(pageNum: Int ?= 1)
GET /sites/noAvatarUsers controllers.SiteApp.noAvatarUsers()
POST /sites/setAttachmentToUserAvatar controllers.SiteApp.setAttachmentToUserAvatar()

# Attachments
GET /files controllers.AttachmentApp.getFileList()
Expand Down

0 comments on commit 028067c

Please sign in to comment.