use of com.zimbra.soap.admin.type.RightModifierInfo in project zm-mailbox by Zimbra.
the class TestServerEnumeration method grantRightToAdmin.
private static void grantRightToAdmin(SoapProvisioning adminSoapProv, TargetType targetType, String targetName, String granteeName, String rightName) throws ServiceException {
GranteeSelector grantee = new GranteeSelector(GranteeType.usr, GranteeBy.name, granteeName);
EffectiveRightsTargetSelector target = null;
if (targetName == null) {
target = new EffectiveRightsTargetSelector(targetType, null, null);
} else {
target = new EffectiveRightsTargetSelector(targetType, TargetBy.name, targetName);
}
RightModifierInfo right = new RightModifierInfo(rightName);
GrantRightResponse grResp = adminSoapProv.invokeJaxb(new GrantRightRequest(target, grantee, right));
assertNotNull("GrantRightResponse for " + right.getValue(), grResp);
}
use of com.zimbra.soap.admin.type.RightModifierInfo in project zm-mailbox by Zimbra.
the class TestDomainAdmin method grantRight.
private void grantRight(SoapProvisioning soapProv, TargetType targetType, String targetName, GranteeType granteeType, String granteeName, String rightName) throws ServiceException {
GranteeSelector grantee;
EffectiveRightsTargetSelector target;
RightModifierInfo right;
GrantRightResponse grResp;
grantee = new GranteeSelector(granteeType, GranteeBy.name, granteeName);
target = new EffectiveRightsTargetSelector(targetType, TargetBy.name, targetName);
right = new RightModifierInfo(rightName);
grResp = soapProv.invokeJaxb(new GrantRightRequest(target, grantee, right));
assertNotNull("GrantRightResponse for " + right.getValue(), grResp);
}
use of com.zimbra.soap.admin.type.RightModifierInfo in project zm-mailbox by Zimbra.
the class TestDomainAdmin method failToGrantRight.
private void failToGrantRight(SoapProvisioning soapProv, TargetType targetType, String targetName, String granteeName, String rightName, String expectedFailureReason) throws ServiceException {
GranteeSelector grantee;
EffectiveRightsTargetSelector target;
RightModifierInfo right;
grantee = new GranteeSelector(GranteeType.usr, GranteeBy.name, granteeName);
target = new EffectiveRightsTargetSelector(targetType, TargetBy.name, targetName);
right = new RightModifierInfo(rightName);
try {
soapProv.invokeJaxb(new GrantRightRequest(target, grantee, right));
fail(String.format("granting %s right succeeded when it shouldn't have", rightName));
} catch (SoapFaultException sfe) {
checkSoapReason(sfe, expectedFailureReason);
}
}
use of com.zimbra.soap.admin.type.RightModifierInfo in project zm-mailbox by Zimbra.
the class GrantRight method handle.
@Override
public Element handle(Element request, Map<String, Object> context) throws ServiceException {
ZimbraSoapContext zsc = getZimbraSoapContext(context);
GrantRightRequest grReq = JaxbUtil.elementToJaxb(request);
RightModifierInfo modifierInfo = grReq.getRight();
if (modifierInfo == null) {
throw ServiceException.INVALID_REQUEST("No information specified on what right to assign", null);
}
RightModifier rightModifier = getRightModifier(modifierInfo);
// right checking is done in RightCommand
EffectiveRightsTargetSelector erTargSel = grReq.getTarget();
RightCommand.grantRight(Provisioning.getInstance(), getAuthenticatedAccount(zsc), erTargSel, grReq.getGrantee(), modifierInfo.getValue(), rightModifier);
// Bug 100965 Avoid Cross server delegate admin being broken after initial creation due to stale caches
if (com.zimbra.soap.type.TargetType.domain == erTargSel.getType()) {
TargetBy by = erTargSel.getBy();
if ((TargetBy.id == by) || (TargetBy.name == by)) {
CacheSelector cacheSel = new CacheSelector(true, /* allServers */
CacheEntryType.domain.toString());
CacheEntrySelector ceSel = new CacheEntrySelector((TargetBy.id == erTargSel.getBy()) ? CacheEntryBy.id : CacheEntryBy.name, erTargSel.getValue());
cacheSel.addEntry(ceSel);
FlushCacheRequest fcReq = new FlushCacheRequest(cacheSel);
try {
FlushCache.doFlushCache(this, context, fcReq);
} catch (ServiceException se) {
ZimbraLog.acl.info("Problem flushing acl cache for domain %s/%s after granting rights", erTargSel.getBy(), erTargSel.getValue(), se);
}
}
}
Element response = zsc.createElement(AdminConstants.GRANT_RIGHT_RESPONSE);
return response;
}
use of com.zimbra.soap.admin.type.RightModifierInfo in project zm-mailbox by Zimbra.
the class TestLockoutMailbox method grantRightToAdmin.
private static void grantRightToAdmin(SoapProvisioning adminSoapProv, TargetType targetType, String targetName, String granteeName, String rightName) throws ServiceException {
GranteeSelector grantee = new GranteeSelector(GranteeType.usr, GranteeBy.name, granteeName);
EffectiveRightsTargetSelector target = null;
if (targetName == null) {
target = new EffectiveRightsTargetSelector(targetType, null, null);
} else {
target = new EffectiveRightsTargetSelector(targetType, TargetBy.name, targetName);
}
RightModifierInfo right = new RightModifierInfo(rightName);
GrantRightResponse grResp = adminSoapProv.invokeJaxb(new GrantRightRequest(target, grantee, right));
assertNotNull("GrantRightResponse for " + right.getValue(), grResp);
}
Aggregations