package org.xcolab.view.pages.messaging.utils;
import org.xcolab.client.members.MessagingClient;
import org.xcolab.client.members.PermissionsClient;
import org.xcolab.client.members.pojo.Member;
import org.xcolab.view.pages.messaging.beans.MessageBean;
public class MessagingPermissions {
private final Member loggedInMember;
private final boolean isLoggedIn;
private MessageBean message;
public MessagingPermissions(Member loggedInMember) {
this.loggedInMember = loggedInMember;
this.isLoggedIn = loggedInMember != null;
}
public MessagingPermissions(Member loggedInMember, MessageBean message) {
this(loggedInMember);
this.message = message;
}
public boolean getCanSendMessage() {
return getCanAdminAll()
|| (isLoggedIn && MessagingClient.canMemberSendMessage(loggedInMember.getId_(), 1));
}
public boolean getCanViewMessage() {
return isRecipient() || isSender();
}
public boolean isSender() {
return isLoggedIn && message != null
&& message.getFrom().getUserId() == loggedInMember.getId_();
}
public boolean isRecipient() {
return isLoggedIn && message != null
&& message.getTo().stream()
.anyMatch(recipient -> recipient.getId_() == loggedInMember.getId_());
}
public boolean getCanAdminAll() {
return PermissionsClient.canAdminAll(loggedInMember);
}
}