package org.ovirt.engine.core.bll;
import org.ovirt.engine.core.bll.context.CompensationContext;
import org.ovirt.engine.core.common.action.AdGroupElementParametersBase;
import org.ovirt.engine.core.common.action.PermissionsOperationsParametes;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.businessentities.ad_groups;
import org.ovirt.engine.core.common.businessentities.permissions;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
public abstract class AdGroupsHandlingOperationBase<T extends AdGroupElementParametersBase> extends
AdGroupsHandlingCommandBase<T> {
public AdGroupsHandlingOperationBase(T parameters) {
super(parameters);
}
@Override
protected ad_groups getAdGroup() {
return getParameters().getAdGroup();
}
public static void AddAdGroupToDBWithPermissionIfNeeded(ad_groups AdGroup,
String sessionId,
CompensationContext compensationContext) {
ad_groups currentGroup = DbFacade.getInstance().getAdGroupDAO().get(AdGroup.getid());
if (currentGroup == null) {
// if group still not in db - add it
Guid regularUser = new Guid("00000000-0000-0000-0001-000000000001");
permissions userPermission = new permissions();
userPermission.setad_element_id(AdGroup.getid());
userPermission.setrole_id(regularUser);
PermissionsOperationsParametes permissionsParams = new PermissionsOperationsParametes(userPermission,
AdGroup);
permissionsParams.setSessionId(sessionId);
Backend.getInstance().runInternalAction(
VdcActionType.AddPermission, permissionsParams, compensationContext);
}
}
}