/** * @param action is the action on the assignment (null means default action) * @param attributeDefName * @param checkSecurity * @return if removed or already not assigned */ private AttributeAssignResult removeAttributeHelper( String action, AttributeDefName attributeDefName, boolean checkSecurity) { if (checkSecurity) { this.assertCanUpdateAttributeDefName(attributeDefName); } AttributeAssignResult attributeAssignResult = new AttributeAssignResult(); attributeAssignResult.setChanged(false); // see if it exists if (!this.hasAttributeHelper(action, attributeDefName, false)) { return attributeAssignResult; } action = StringUtils.defaultIfEmpty(action, AttributeDef.ACTION_DEFAULT); Set<AttributeAssign> attributeAssigns = retrieveAttributeAssignsByOwnerAndAttributeDefNameId(attributeDefName.getId()); Set<AttributeAssign> attributeAssignsToReturn = new LinkedHashSet<AttributeAssign>(); for (AttributeAssign attributeAssign : attributeAssigns) { String currentAttributeAction = attributeAssign.getAttributeAssignAction().getName(); if (StringUtils.equals(action, currentAttributeAction)) { attributeAssignResult.setChanged(true); attributeAssignsToReturn.add(attributeAssign); attributeAssign.delete(); } } attributeAssignResult.setAttributeAssigns(attributeAssignsToReturn); return attributeAssignResult; }
/** * see if the group * * @param action is the action on the assignment (null means default action) * @param attributeDefNameName * @return true if has attribute, false if not */ public boolean hasAttributeByName(String action, String attributeDefNameName) { AttributeDefName attributeDefName = GrouperDAOFactory.getFactory() .getAttributeDefName() .findByNameSecure(attributeDefNameName, true); Set<AttributeAssign> attributeAssigns = retrieveAssignments(attributeDefName); action = StringUtils.defaultIfEmpty(action, AttributeDef.ACTION_DEFAULT); for (AttributeAssign attributeAssign : attributeAssigns) { String currentAttributeAction = attributeAssign.getAttributeAssignAction().getName(); if (StringUtils.equals(action, currentAttributeAction)) { return true; } } return false; }
/** * @param action on the assignment * @param attributeDefName * @param checkSecurity * @return true if has attribute, false if not */ boolean hasAttributeHelper( String action, AttributeDefName attributeDefName, boolean checkSecurity) { if (checkSecurity) { this.assertCanReadAttributeDefName(attributeDefName); } Set<AttributeAssign> attributeAssigns = retrieveAttributeAssignsByOwnerAndAttributeDefNameId(attributeDefName.getId()); action = StringUtils.defaultIfEmpty(action, AttributeDef.ACTION_DEFAULT); for (AttributeAssign attributeAssign : attributeAssigns) { String currentAttributeAction = attributeAssign.getAttributeAssignAction().getName(); if (StringUtils.equals(action, currentAttributeAction)) { return true; } } return false; }
/** * @param action * @param attributeDefName * @param exceptionIfNull * @param attributeAssigns * @return assignment */ private AttributeAssign retrieveAssignmentHelper( String action, AttributeDefName attributeDefName, boolean exceptionIfNull, Set<AttributeAssign> attributeAssigns) { AttributeAssign attributeAssignResult = null; action = StringUtils.defaultIfEmpty(action, AttributeDef.ACTION_DEFAULT); for (AttributeAssign attributeAssign : attributeAssigns) { String currentAttributeAction = attributeAssign.getAttributeAssignAction().getName(); if (StringUtils.equals(action, currentAttributeAction)) { if (attributeAssignResult != null) { throw new RuntimeException( "Multiple assignments exist: " + attributeDefName + ", " + action + ", " + this); } attributeAssignResult = attributeAssign; } } if (exceptionIfNull && attributeAssignResult == null) { throw new RuntimeException( "Cant find assignment: " + action + ", " + attributeDefName + ", " + this); } return attributeAssignResult; }