use of org.xwiki.security.authorization.Right in project xwiki-platform by xwiki.
the class DefaultAuthorizationSettlerTest method configure.
@Before
public void configure() throws Exception {
defaultAccess = XWikiSecurityAccess.getDefaultAccess();
denyAllAccess = new XWikiSecurityAccess();
for (Right right : Right.values()) {
denyAllAccess.deny(right);
}
this.authorizationSettler = authorizationSettlerMocker.getComponentUnderTest();
}
use of org.xwiki.security.authorization.Right in project xwiki-platform by xwiki.
the class PrioritizingAuthorizationSettler method settle.
@Override
protected XWikiSecurityAccess settle(UserSecurityReference user, Collection<GroupSecurityReference> groups, SecurityRuleEntry entry, Policies policies) {
XWikiSecurityAccess access = new XWikiSecurityAccess();
Map<Right, Integer> priorities = new RightMap<Integer>();
SecurityReference reference = entry.getReference();
Set<Right> enabledRights = Right.getEnabledRights(reference.getSecurityType());
// Evaluate rules from current level
for (Right right : enabledRights) {
for (SecurityRule obj : entry.getRules()) {
if (obj.match(right)) {
resolveLevel(right, user, groups, obj, access, policies, priorities);
if (access.get(right) == ALLOW) {
implyRights(right, access, reference, policies, priorities);
}
}
}
}
return access;
}
use of org.xwiki.security.authorization.Right in project xwiki-platform by xwiki.
the class XWikiSecurityAccess method getDefaultAccess.
/**
* @return the default access, using the default value of all rights.
*/
public static synchronized XWikiSecurityAccess getDefaultAccess() {
if (defaultAccess == null || Right.size() != defaultAccessSize) {
defaultAccessSize = Right.size();
defaultAccess = new XWikiSecurityAccess();
for (Right right : Right.values()) {
defaultAccess.set(right, right.getDefaultState());
}
}
return defaultAccess;
}
use of org.xwiki.security.authorization.Right in project xwiki-platform by xwiki.
the class XWikiSecurityAccess method toString.
@Override
public String toString() {
StringBuilder b = new StringBuilder();
boolean first = true;
for (Right r : Right.values()) {
if (first) {
first = false;
} else {
b.append(", ");
}
b.append(r).append(": ").append(get(r));
}
return b.toString();
}
use of org.xwiki.security.authorization.Right in project xwiki-platform by xwiki.
the class DefaultAuthorizationSettlerTest method assertAccess.
private void assertAccess(String message, UserSecurityReference user, SecurityReference entity, SecurityAccess access, SecurityAccessEntry actual) {
assertThat(message + " - user", actual.getUserReference(), equalTo(user));
assertThat(message + " - entity", actual.getReference(), equalTo(entity));
for (Right right : Right.values()) {
if (access.get(right) != UNDETERMINED) {
assertThat(message + " - Right(" + right.getName() + ")", actual.getAccess().get(right), equalTo(access.get(right)));
}
}
}
Aggregations