email-templates-library/src/main/java/org/gcube/portal/mailing/templates/TemplateUserRequestedAccess...

66 lines
30 KiB
Java
Raw Normal View History

package org.gcube.portal.mailing.templates;
import java.util.Base64;
import org.gcube.common.portal.GCubePortalConstants;
import org.gcube.common.portal.mailing.templates.AbstractTemplate;
import org.gcube.common.portal.mailing.templates.Template;
import org.gcube.vomanagement.usermanagement.model.GCubeGroup;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
/**
*
* @author Massimiliano Assante, CNR-ISTI
*
*/
public class TemplateUserRequestedAccessVRE extends AbstractTemplate implements Template {
private final String encodedTemplateHTML = "PCEtLSBJbmxpbmVyIEJ1aWxkIFZlcnNpb24gNDM4MGI3NzQxYmI3NTlkNmNiOTk3NTQ1ZjNhZGQyMWFkNDhmMDEwYiAtLT4NCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9Im1pbi1oZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjMgIWltcG9ydGFudDsiPg0KICA8aGVhZD4NCiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4NCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIiAvPg0KICAgIDx0aXRsZT5UaXRsZTwvdGl0bGU+DQogIDwvaGVhZD4NCiAgPGJvZHkgc3R5bGU9IndpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IG1pbi13aWR0aDogMTAwJTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDEuMzsgZm9udC1zaXplOiAxNnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzICFpbXBvcnRhbnQ7IG1hcmdpbjogMDsgcGFkZGluZzogMDsiIGJnY29sb3I9IiNmM2YzZjMgIWltcG9ydGFudCI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk2cHgpIHsNCiAgLnNtYWxsLWZsb2F0LWNlbnRlciB7DQogICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7DQogIH0NCiAgLnNtYWxsLXRleHQtY2VudGVyIHsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsNCiAgfQ0KICAuc21hbGwtdGV4dC1sZWZ0IHsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7DQogIH0NCiAgLnNtYWxsLXRleHQtcmlnaHQgew0KICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7DQogIH0NCiAgLmhpZGUtZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB3aWR0aDogYXV0byAhaW1wb3J0YW50OyBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5oaWRlLWZvci1sYXJnZSB7DQogICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRhYmxlLmNvbnRhaW5lciAucm93LmhpZGUtZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB3aWR0aDogMTAwJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5jYWxsb3V0LWlubmVyLmhpZGUtZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSB0YWJsZS5jb250YWluZXIgLnNob3ctZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IHdpZHRoOiAwOyBtc28taGlkZTogYWxsOyBvdmVyZmxvdzogaGlkZGVuOw0KICB9DQogIHRhYmxlLmJvZHkgaW1nIHsNCiAgICB3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvOw0KICB9DQogIHRhYmxlLmJvZHkgY2VudGVyIHsNCiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IC5jb250YWluZXIgew0KICAgIHdpZHRoOiA5NSUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IC5jb2x1bW5zIHsNCiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1uIHsNCiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1ucyAuY29sdW1uIHsNCiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgLmNvbHVtbnMgLmNvbHVtbnMgew0KICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW4gew0KICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW5zIHsNCiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgLmNvbGxhcHNlIC5jb2x1bW5zIHsNCiAgICBwYWRkaW5nLWxlZnQ6ID
private final String encodedTemplateTEXT = "e3tHQVRFV0FZX05BTUV9fQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Ke3tVU0VSX0ZVTExOQU1FfX0gd291bGQgbGlrZSB0byBhY2Nlc3Mge3tTRUxFQ1RFRF9WUkVfTkFNRX19IFZSRSwgcGxlYXNlIG1hbmFnZSB0aGlzIHJlcXVlc3Q6DQoNCnt7TUFOQUdFX1JFUVVFU1RfVVJMfX0NCg0KRnVydGhlciBpbmZvIGFib3V0IHt7VVNFUl9GVUxMTkFNRX19Og0KDQpFbWFpbDoge3tVU0VSX0VNQUlMfX0NClVzZXJuYW1lOiB7e1VTRVJfSUR9fQ0KT3B0aW9uYWwgbWVzc2FnZToNCnt7T1BUSU9OQUxfTUVTU0FHRX19DQoNCllvdSByZWNlaXZlZCB0aGlzIGVtYWlsIGJlY2F1c2UgeW91IGFyZSBhIG1hbmFnZXIgb2Yge3tTRUxFQ1RFRF9WUkVfTkFNRX19Lg0K";
private GCubeUser theRequestingUser;
private GCubeGroup theRequestingVRE;
private String optionalMessage;
private String manageRequestURL;
public TemplateUserRequestedAccessVRE(GCubeUser theRequestingUser, GCubeGroup theRequestingVRE, String optionalMessage, String gatewayName, String gatewayURL) {
super(gatewayName, gatewayURL);
this.theRequestingUser = theRequestingUser;
this.theRequestingVRE = theRequestingVRE;
this.optionalMessage = optionalMessage;
this.manageRequestURL = new StringBuffer(gatewayURL)
.append(GCubePortalConstants.PREFIX_GROUP_URL)
.append("/").append(theRequestingVRE.getGroupName().toLowerCase())
.append(GCubePortalConstants.MANAGE_USERS_REQUESTS_FRIENDLY_URL).toString();
}
@Override
public String compile(String templateContent) {
long vreLogoId = theRequestingVRE.getLogoId();
String vreLogoURL = getGatewayURL() + getGroupManagerImpl().getGroupLogoURL(vreLogoId);
return new String(Base64.getDecoder().decode(templateContent))
.replace("{{SELECTED_VRE_NAME}}", theRequestingVRE.getGroupName())
.replace("{{VRE_LOGO:URL}}", vreLogoURL)
.replace("{{GATEWAY_LOGO:URL}}", getGatewayLogoURL())
.replace("{{GATEWAY_NAME}}", getGatewayName())
.replace("{{MANAGE_REQUEST_URL}}", manageRequestURL)
.replace("{{USER_EMAIL}}", theRequestingUser.getEmail())
.replace("{{USER_ID}}", theRequestingUser.getUsername())
.replace("{{USER_FULLNAME}}", theRequestingUser.getFullname())
.replace("{{OPTIONAL_MESSAGE}}", optionalMessage);
}
@Override
public String getTextHTML() {
return compile(encodedTemplateHTML);
}
@Override
public String getTextPLAIN() {
return compile(encodedTemplateTEXT);
}
}