package org.ovirt.engine.core.bll; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.AdElementParametersBase; import org.ovirt.engine.core.common.action.PermissionsOperationsParametes; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.permissions; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.VdcBllMessages; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.CustomLogField; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.CustomLogFields; @CustomLogFields({ @CustomLogField("Role") }) // internal class SetAdGroupRoleCommand : AdGroupsHandlingCommandBase // { // internal SetAdGroupRoleCommand(SetAdGroupRoleParameters parameters) : // base(parameters) // { // } // SetAdGroupRoleParameters SetAdGroupRoleParameters // { // get // { // return Parameters as SetAdGroupRoleParameters; // } // } // public override AuditLogType AuditLogTypeValue // { // get // { // return // Succeeded // ? // SetAdGroupRoleParameters.IsRestored // ? AuditLogType.USER_RESTORED_ROLE_TO_AD_GROUP // : // AuditLogType.USER_SET_ROLE_TO_AD_GROUP // : // AuditLogType.USER_FAILED_SET_ROLE_TO_AD_GROUP; // } // } // public string Role // { // get // { // return SetAdGroupRoleParameters.AdGroup.vdc_role.toString(); // } // } // protected override void ExecuteCommand() // { // if (AdGroup != null) // { // UserCommandBase.ProcessAdElementDefaultRole // (SetAdGroupRoleParameters.AdGroup.id, // SetAdGroupRoleParameters.AdGroup.vdc_role, // SetAdGroupRoleParameters.AdGroup.name); // DbFacade.Instance.updateAdGroup(SetAdGroupRoleParameters.AdGroup); // } // else // { // AddAdGroup(SetAdGroupRoleParameters.AdGroup); // } // Succeeded = true; // } // } public class RemoveAdGroupCommand<T extends AdElementParametersBase> extends AdGroupsHandlingCommandBase<T> { /** * Constructor for command creation when compensation is applied on startup * * @param commandId */ protected RemoveAdGroupCommand(Guid commandId) { super(commandId); } public RemoveAdGroupCommand(T parameters) { super(parameters); } @Override protected void executeCommand() { for (permissions permission : DbFacade.getInstance() .getPermissionDAO() .getAllDirectPermissionsForAdElement(getAdGroup().getid())) { PermissionsOperationsParametes param = new PermissionsOperationsParametes(permission); param.setSessionId(getParameters().getSessionId()); Backend.getInstance().runInternalAction(VdcActionType.RemovePermission, param); } DbFacade.getInstance().getAdGroupDAO().remove(getAdGroup().getid()); setSucceeded(true); } public static boolean CanRemoveAdGroup(Guid groupId, java.util.ArrayList<String> reasons) { boolean returnValue = true; if (MultiLevelAdministrationHandler.isLastSuperUserGroup(groupId)) { returnValue = false; reasons.add(VdcBllMessages.ERROR_CANNOT_REMOVE_LAST_SUPER_USER_ROLE.toString()); } if (groupId.equals(MultiLevelAdministrationHandler.EVERYONE_OBJECT_ID)) { returnValue = false; reasons.add(VdcBllMessages.ACTION_TYPE_FAILED_CANNOT_REMOVE_BUILTIN_GROUP_EVERYONE.name()); } return returnValue; } @Override public AuditLogType getAuditLogTypeValue() { return getSucceeded() ? AuditLogType.USER_REMOVE_AD_GROUP : AuditLogType.USER_REMOVE_AD_GROUP_FAILED; } @Override protected boolean canDoAction() { return CanRemoveAdGroup(getParameters().getAdElementId(), getReturnValue().getCanDoActionMessages()); } }