/*******************************************************************************
* Copyright (c) 2012 - 2015 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.engine.query.sql;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.hangum.tadpole.commons.exception.TadpoleSQLManagerException;
import com.hangum.tadpole.engine.initialize.TadpoleSystemInitializer;
import com.hangum.tadpole.engine.manager.TadpoleSQLManager;
import com.hangum.tadpole.engine.query.dao.system.TadpoleUserDbRoleDAO;
import com.hangum.tadpole.engine.query.dao.system.accesscontrol.AccessCtlObjectDAO;
import com.hangum.tadpole.engine.query.dao.system.accesscontrol.DBAccessControlDAO;
import com.ibatis.sqlmap.client.SqlMapClient;
/**
* db access control
*
* @author hangum
* @version 1.6.1
* @since 2015. 4. 27.
*
*/
public class TadpoleSystem_AccessControl {
/**
* To save default access control data.
*
*/
public static DBAccessControlDAO saveDBAccessControl(TadpoleUserDbRoleDAO roleDao) throws TadpoleSQLManagerException, SQLException {
DBAccessControlDAO dao = new DBAccessControlDAO();
dao.setDb_role_seq(roleDao.getSeq());
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
dao = (DBAccessControlDAO)sqlClient.insert("saveAccessControl", dao);
return dao;
}
/**
* Get user db access contorl data.
*
* @param roleDao
* @throws TadpoleSQLManagerException, SQLException
*/
public static DBAccessControlDAO getDBAccessControl(TadpoleUserDbRoleDAO roleDao) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
DBAccessControlDAO dbaccessCtl = (DBAccessControlDAO)sqlClient.queryForObject("getAccessControl", roleDao);
if(dbaccessCtl.getIntDetailCnt() == 0) {
dbaccessCtl.setMapSelectAccessCtl(new HashMap<String, AccessCtlObjectDAO>());
} else {
// select 항목이 있다면..
List<AccessCtlObjectDAO> listAccessDetail = sqlClient.queryForList("getAccessCtlDetail", dbaccessCtl.getSeq());
Map<String, AccessCtlObjectDAO> mapAccessDetail = new HashMap<String, AccessCtlObjectDAO>();
for (AccessCtlObjectDAO accessCtlObjectDAO : listAccessDetail) {
mapAccessDetail.put(accessCtlObjectDAO.getObj_name(), accessCtlObjectDAO);
}
dbaccessCtl.setMapSelectAccessCtl(mapAccessDetail);
}
return dbaccessCtl;
}
/**
* Get user db access contorl data.
*
* @param intRoleSeq
* @throws TadpoleSQLManagerException, SQLException
*/
public static DBAccessControlDAO getDBAccessControl(int intRoleSeq) throws TadpoleSQLManagerException, SQLException {
TadpoleUserDbRoleDAO roleDao = new TadpoleUserDbRoleDAO();
roleDao.setSeq(intRoleSeq);
return getDBAccessControl(roleDao);
}
/**
* update db access control
*
* @param dao
* @throws TadpoleSQLManagerException, SQLException
*/
public static void updateDBAccessControl(DBAccessControlDAO dao) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
sqlClient.update("updateAccessControl", dao);
// already data remove and add data
sqlClient.update("removeAccessControlDetail", dao);
for(AccessCtlObjectDAO objecDao : dao.getMapSelectAccessCtl().values()) {
sqlClient.insert("insertAccessControlDetail", objecDao);
}
}
}