use of com.zimbra.cs.account.accesscontrol.Right in project zm-mailbox by Zimbra.
the class TestACLAll method testRight.
/*
* test a particular right for all target types and grantee types
*/
private void testRight() throws Exception {
SKIP_FOR_REAL_LDAP_SERVER(SkipTestReason.LONG_TEST);
Right right = ACLTestUtil.ADMIN_COMBO_ACCOUNT;
int totalTests = TargetType.values().length * TestGranteeType.TEST_GRANTEE_TYPES.size() * rights.size();
int curTest = 1;
for (TargetType targetType : TargetType.values()) {
for (TestGranteeType granteeType : TestGranteeType.TEST_GRANTEE_TYPES) {
boolean skip = EXCLUDE_GRANTEE_TYPES.contains(granteeType.getCode());
doTest((curTest++) + "/" + totalTests, targetType, granteeType, right, skip);
}
}
}
use of com.zimbra.cs.account.accesscontrol.Right in project zm-mailbox by Zimbra.
the class ZMailboxUtil method doListRights.
private void doListRights() throws ServiceException {
for (Right r : RightManager.getInstance().getAllUserRights().values()) {
stdout.println(" " + r.getName() + ": " + r.getDesc());
stdout.println();
}
}
use of com.zimbra.cs.account.accesscontrol.Right in project zm-mailbox by Zimbra.
the class SoapProvisioning method getAllRights.
@Override
public List<Right> getAllRights(String targetType, boolean expandAllAttrs, String rightClass) throws ServiceException {
GetAllRightsResponse resp = invokeJaxb(new GetAllRightsRequest(targetType, expandAllAttrs, rightClass));
List<Right> rights = new ArrayList<Right>();
for (RightInfo rInfo : resp.getRights()) {
// Note: Hack which ignores rInfo details and gets right
// directly from Rights manager by name
rights.add(RightCommand.RightNameToRight(rInfo.getName()));
}
return rights;
}
use of com.zimbra.cs.account.accesscontrol.Right in project zm-mailbox by Zimbra.
the class DiscoverRights method discoverRights.
public static void discoverRights(Account account, Set<Right> rights, Element eParent, boolean onMaster) throws ServiceException {
AccessManager accessMgr = AccessManager.getInstance();
Map<Right, Set<Entry>> discoveredRights = accessMgr.discoverUserRights(account, rights, onMaster);
Locale locale = account.getLocale();
for (Map.Entry<Right, Set<Entry>> targetsForRight : discoveredRights.entrySet()) {
Right right = targetsForRight.getKey();
Set<Entry> targets = targetsForRight.getValue();
List<Entry> sortedTargets = Entry.sortByDisplayName(targets, locale);
boolean isDelegatedSendRight = isDelegatedSendRight(right);
Element eTargets = eParent.addElement(AccountConstants.E_TARGETS);
eTargets.addAttribute(AccountConstants.A_RIGHT, right.getName());
for (Entry target : sortedTargets) {
TargetType targetType = TargetType.getTargetType(target);
Element eTarget = eTargets.addElement(AccountConstants.E_TARGET);
eTarget.addAttribute(AccountConstants.A_TYPE, targetType.getCode());
if (isDelegatedSendRight) {
if (target instanceof Account || target instanceof Group) {
String[] addrs = AccountUtil.getAllowedSendAddresses((NamedEntry) target);
NamedEntry entry = (NamedEntry) target;
for (String addr : addrs) {
Element eEmail = eTarget.addElement(AccountConstants.E_EMAIL);
eEmail.addAttribute(AccountConstants.A_ADDR, addr);
}
if (target instanceof Account) {
eTarget.addAttribute(AccountConstants.A_DISPLAY, ((Account) entry).getDisplayName());
} else if (target instanceof Group) {
eTarget.addAttribute(AccountConstants.A_DISPLAY, ((Group) entry).getDisplayName());
}
} else {
throw ServiceException.FAILURE("internal error, target for " + " delegated send rights must be account or group", null);
}
} else {
if (target instanceof NamedEntry) {
NamedEntry entry = (NamedEntry) target;
eTarget.addAttribute(AccountConstants.A_ID, entry.getId());
eTarget.addAttribute(AccountConstants.A_NAME, entry.getName());
if (target instanceof Account) {
eTarget.addAttribute(AccountConstants.A_DISPLAY, ((Account) entry).getDisplayName());
} else if (target instanceof Group) {
eTarget.addAttribute(AccountConstants.A_DISPLAY, ((Group) entry).getDisplayName());
}
} else {
eTarget.addAttribute(AccountConstants.A_NAME, target.getLabel());
}
}
}
}
}
use of com.zimbra.cs.account.accesscontrol.Right in project zm-mailbox by Zimbra.
the class GetAllRights method handle.
@Override
public Element handle(Element request, Map<String, Object> context) throws ServiceException {
ZimbraSoapContext zsc = getZimbraSoapContext(context);
Account account = getRequestedAccount(zsc);
String targetType = request.getAttribute(AdminConstants.A_TARGET_TYPE, null);
boolean expandAllAtrts = request.getAttributeBool(AdminConstants.A_EXPAND_ALL_ATTRS, false);
String rightClass = request.getAttribute(AdminConstants.A_RIGHT_CLASS, null);
List<Right> rights = RightCommand.getAllRights(targetType, rightClass);
Element response = zsc.createElement(AdminConstants.GET_ALL_RIGHTS_RESPONSE);
for (Right right : rights) RightCommand.rightToXML(response, right, expandAllAtrts, account.getLocale());
return response;
}
Aggregations