blob: 0d46af7c69001fe795c7d8ec01461cb51826045f [file] [log] [blame]
/*
* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 1998-2014 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted only as authorized by the OpenLDAP
* Public License.
*
* A copy of this license is available in the file LICENSE in the
* top-level directory of the distribution or, alternatively, at
* <http://www.OpenLDAP.org/license.html>.
*/
package org.openldap.enmasse;
import org.openldap.fortress.DelAdminMgr;
import org.openldap.fortress.DelAdminMgrFactory;
import org.openldap.fortress.SecurityException;
import org.openldap.fortress.rbac.AdminRole;
import org.openldap.fortress.rbac.AdminRoleRelationship;
import org.openldap.fortress.rbac.OrgUnit;
import org.openldap.fortress.rbac.OrgUnitRelationship;
import org.openldap.fortress.rbac.UserAdminRole;
import org.openldap.fortress.rest.FortRequest;
import org.openldap.fortress.rest.FortResponse;
import org.apache.log4j.Logger;
/**
* Utility for EnMasse Server. This class is thread safe.
*
* @author Shawn McKinney
*/
class DelegatedAdminMgrImpl
{
private static final String CLS_NM = DelegatedAdminMgrImpl.class.getName();
private static final Logger log = Logger.getLogger(CLS_NM);
/**
* ************************************************************************************************************************************
* BEGIN DELEGATEDADMINMGR
* **************************************************************************************************************************************
*/
FortResponse addAdminRole(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
AdminRole inRole = (AdminRole) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
AdminRole retRole = delegatedAdminMgr.addRole(inRole);
response.setEntity(retRole);
response.setErrorCode(0);
}
catch (org.openldap.fortress.SecurityException se)
{
log.info(CLS_NM + " caught " + se + " warnId=" + se.getErrorId());
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse deleteAdminRole(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
AdminRole inRole = (AdminRole) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.deleteRole(inRole);
response.setEntity(inRole);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse updateAdminRole(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
AdminRole inRole = (AdminRole) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
AdminRole retRole = delegatedAdminMgr.updateRole(inRole);
response.setEntity(retRole);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se + " errorId=" + se.getErrorId());
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse assignAdminUser(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
UserAdminRole inRole = (UserAdminRole) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.assignUser(inRole);
response.setEntity(inRole);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse deassignAdminUser(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
UserAdminRole inRole = (UserAdminRole) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.deassignUser(inRole);
response.setEntity(inRole);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse addAdminDescendant(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
AdminRoleRelationship relationship = (AdminRoleRelationship) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.addDescendant(relationship.getParent(), relationship.getChild());
response.setEntity(relationship);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse addAdminAscendant(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
AdminRoleRelationship relationship = (AdminRoleRelationship) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.addAscendant(relationship.getChild(), relationship.getParent());
response.setEntity(relationship);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse addAdminInheritance(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
AdminRoleRelationship relationship = (AdminRoleRelationship) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.addInheritance(relationship.getParent(), relationship.getChild());
response.setEntity(relationship);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse deleteAdminInheritance(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
AdminRoleRelationship relationship = (AdminRoleRelationship) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.deleteInheritance(relationship.getParent(), relationship.getChild());
response.setEntity(relationship);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse addOrg(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
OrgUnit inOrg = (OrgUnit) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
OrgUnit retOrg = delegatedAdminMgr.add(inOrg);
response.setEntity(retOrg);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse updateOrg(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
OrgUnit inOrg = (OrgUnit) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
OrgUnit retOrg = delegatedAdminMgr.update(inOrg);
response.setEntity(retOrg);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse deleteOrg(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
OrgUnit inOrg = (OrgUnit) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
OrgUnit retOrg = delegatedAdminMgr.delete(inOrg);
response.setEntity(retOrg);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse addOrgDescendant(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
OrgUnitRelationship relationship = (OrgUnitRelationship) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.addDescendant(relationship.getParent(), relationship.getChild());
response.setEntity(relationship);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse addOrgAscendant(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
OrgUnitRelationship relationship = (OrgUnitRelationship) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.addAscendant(relationship.getChild(), relationship.getParent());
response.setEntity(relationship);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse addOrgInheritance(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
OrgUnitRelationship relationship = (OrgUnitRelationship) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.addInheritance(relationship.getParent(), relationship.getChild());
response.setEntity(relationship);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
FortResponse deleteOrgInheritance(FortRequest request)
{
FortResponse response = new FortResponse();
try
{
OrgUnitRelationship relationship = (OrgUnitRelationship) request.getEntity();
DelAdminMgr delegatedAdminMgr = DelAdminMgrFactory.createInstance(request.getContextId());
delegatedAdminMgr.setAdmin(request.getSession());
delegatedAdminMgr.deleteInheritance(relationship.getParent(), relationship.getChild());
response.setEntity(relationship);
response.setErrorCode(0);
}
catch (SecurityException se)
{
log.info(CLS_NM + " caught " + se);
response.setErrorCode(se.getErrorId());
response.setErrorMessage(se.getMessage());
}
return response;
}
}