HasNewsletterUnsubscribedPredicate.java
1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* javax.jcr.Node
* javax.jcr.Property
* javax.jcr.Session
* org.apache.commons.collections.Predicate
* org.apache.jackrabbit.api.security.user.Authorizable
* org.slf4j.Logger
* org.slf4j.LoggerFactory
*/
package com.day.cq.mcm.core.predicate;
import javax.jcr.Node;
import javax.jcr.Property;
import javax.jcr.Session;
import org.apache.commons.collections.Predicate;
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HasNewsletterUnsubscribedPredicate
implements Predicate {
private static final Logger log = LoggerFactory.getLogger(HasNewsletterUnsubscribedPredicate.class);
private Session session = null;
private static final String PROPERTY_STOP_ALL = "newsletter/stopAll";
public HasNewsletterUnsubscribedPredicate(Session session) {
this.session = session;
}
public boolean evaluate(Object object) {
boolean hasUnsubscribed = true;
if (object instanceof Authorizable) {
Authorizable authorizable = (Authorizable)object;
try {
Node authorizedNode = this.session.getNode(authorizable.getPath());
if (authorizedNode.hasNode("profile")) {
Node profileNode = authorizedNode.getNode("profile");
hasUnsubscribed = profileNode.hasProperty("newsletter/stopAll") ? profileNode.getProperty("newsletter/stopAll").getBoolean() : false;
}
}
catch (Exception e) {
log.warn(e.getMessage(), (Throwable)e);
hasUnsubscribed = true;
}
}
return hasUnsubscribed;
}
}