use of org.wso2.carbon.database.utils.jdbc.JdbcTemplate in project carbon-identity-framework by wso2.
the class UserFunctionalityManagerDAOImpl method getFunctionalityLockStatus.
/**
* {@inheritDoc}
*/
@Override
public FunctionalityLockStatus getFunctionalityLockStatus(String userId, int tenantId, String functionalityIdentifier) throws UserFunctionalityManagementServerException {
FunctionalityLockStatus functionalityLockStatus;
JdbcTemplate jdbcTemplate = JdbcUtils.getNewTemplate();
try {
functionalityLockStatus = jdbcTemplate.fetchSingleRecord(UserFunctionalityMgtConstants.SqlQueries.GET_FUNCTIONALITY_LOCK_STATUS, ((resultSet, i) -> new FunctionalityLockStatus(resultSet.getBoolean("IS_FUNCTIONALITY_LOCKED"), resultSet.getLong("FUNCTIONALITY_UNLOCK_TIME"), resultSet.getString("FUNCTIONALITY_LOCK_REASON_CODE"), resultSet.getString("FUNCTIONALITY_LOCK_REASON"))), preparedStatement -> {
preparedStatement.setString(1, userId);
preparedStatement.setInt(2, tenantId);
preparedStatement.setString(3, functionalityIdentifier);
});
} catch (DataAccessException e) {
String message = String.format("Error occurred while retrieving functionality lock status from DB for " + "functionality identifier: %s, user Id: %s and tenant Id: %d.", functionalityIdentifier, userId, tenantId);
if (log.isDebugEnabled()) {
log.debug(message, e);
}
throw new UserFunctionalityManagementServerException(message, e);
}
return functionalityLockStatus;
}
use of org.wso2.carbon.database.utils.jdbc.JdbcTemplate in project carbon-identity-framework by wso2.
the class UserFunctionalityPropertyDAOImpl method deleteAllPropertiesForTenant.
/**
* {@inheritDoc}
*/
@Override
public void deleteAllPropertiesForTenant(int tenantId) throws UserFunctionalityManagementServerException {
JdbcTemplate jdbcTemplate = JdbcUtils.getNewTemplate();
try {
String query;
if (isOracleDB()) {
if (StringUtils.isEmpty(TABLE_NAME)) {
TABLE_NAME = getOracleTableName();
}
query = String.format(UserFunctionalityMgtConstants.SqlQueries.DELETE_ALL_PROPERTIES_FOR_TENANT_ORACLE, TABLE_NAME);
} else {
query = UserFunctionalityMgtConstants.SqlQueries.DELETE_ALL_PROPERTIES_FOR_TENANT;
}
jdbcTemplate.executeUpdate(query, preparedStatement -> {
preparedStatement.setInt(1, tenantId);
});
} catch (DataAccessException e) {
String message = String.format("Error occurred while deleting functionality lock properties from DB for tenant" + " Id: %d.", tenantId);
if (log.isDebugEnabled()) {
log.debug(message, e);
}
throw new UserFunctionalityManagementServerException(message, e);
}
}
use of org.wso2.carbon.database.utils.jdbc.JdbcTemplate in project carbon-identity-framework by wso2.
the class UserFunctionalityPropertyDAOImpl method addProperties.
/**
* {@inheritDoc}
*/
@Override
public void addProperties(String userId, int tenantId, String functionalityIdentifier, Map<String, String> propertiesToAdd) throws UserFunctionalityManagementServerException {
JdbcTemplate jdbcTemplate = JdbcUtils.getNewTemplate();
for (Map.Entry<String, String> entry : propertiesToAdd.entrySet()) {
String propertyName = entry.getKey();
String propertyValue = entry.getValue();
try {
String query;
if (isOracleDB()) {
if (StringUtils.isEmpty(TABLE_NAME)) {
TABLE_NAME = getOracleTableName();
}
query = String.format(UserFunctionalityMgtConstants.SqlQueries.INSERT_PROPERTY_ORACLE, TABLE_NAME);
} else {
query = UserFunctionalityMgtConstants.SqlQueries.INSERT_PROPERTY;
}
jdbcTemplate.executeUpdate(query, preparedStatement -> {
preparedStatement.setString(1, UUID.randomUUID().toString());
preparedStatement.setString(2, userId);
preparedStatement.setInt(3, tenantId);
preparedStatement.setString(4, functionalityIdentifier);
preparedStatement.setString(5, propertyName);
preparedStatement.setString(6, propertyValue);
});
} catch (DataAccessException e) {
String message = String.format("Error occurred while adding the property: %s for functionality: %s in user: %s," + " tenant id: %d", propertyName, functionalityIdentifier, userId, tenantId);
if (log.isDebugEnabled()) {
log.debug(message, e);
}
throw new UserFunctionalityManagementServerException(message, e);
}
}
}
use of org.wso2.carbon.database.utils.jdbc.JdbcTemplate in project carbon-identity-framework by wso2.
the class TemplateManagerDAOImpl method addTemplate.
/**
* Add a {@link Template}.
*
* @param template {@link Template} to insert.
* @return Inserted {@link TemplateInfo}.
* @throws TemplateManagementException If error occurs while adding the {@link Template}.
*/
public Template addTemplate(Template template) throws TemplateManagementException {
Template templateResult;
JdbcTemplate jdbcTemplate = JdbcUtils.getNewTemplate();
try {
jdbcTemplate.executeUpdate(TemplateMgtConstants.SqlQueries.INSERT_TEMPLATE, preparedStatement -> {
preparedStatement.setInt(1, template.getTenantId());
preparedStatement.setString(2, template.getTemplateName());
preparedStatement.setString(3, template.getDescription());
InputStream inputStream = IOUtils.toInputStream(template.getTemplateScript());
try {
preparedStatement.setBinaryStream(4, inputStream, inputStream.available());
} catch (IOException e) {
// SQLException is thrown since the QueryFilter throws an SQLException
throw TemplateMgtUtils.handleSQLException(ERROR_CODE_INSERT_TEMPLATE, template.getTemplateName(), e);
}
});
} catch (DataAccessException e) {
throw TemplateMgtUtils.handleServerException(ERROR_CODE_INSERT_TEMPLATE, template.getTemplateName(), e);
}
templateResult = new Template(template.getTenantId(), template.getTemplateName(), template.getDescription(), template.getTemplateScript());
return templateResult;
}
use of org.wso2.carbon.database.utils.jdbc.JdbcTemplate in project carbon-identity-framework by wso2.
the class TemplateManagerDAOImpl method deleteTemplate.
/**
* Delete {@link Template} for a given template name and a tenant Id.
*
* @param templateName name of the {@link Template} to be deleted.the tenant
* @param tenantId tenant Id of the tenant which the {@link Template} resides.
* @return TemplateInfo of the deleted {@link Template}.
* @throws TemplateManagementException If error occurs while deleting the {@link Template}
*/
public TemplateInfo deleteTemplate(String templateName, Integer tenantId) throws TemplateManagementException {
JdbcTemplate jdbcTemplate = JdbcUtils.getNewTemplate();
try {
jdbcTemplate.executeUpdate(DELETE_TEMPLATE, preparedStatement -> {
preparedStatement.setString(1, templateName);
preparedStatement.setInt(2, tenantId);
});
} catch (DataAccessException e) {
throw new TemplateManagementServerException(String.format(ERROR_CODE_DELETE_TEMPLATE.getMessage(), tenantId.toString(), templateName), ERROR_CODE_DELETE_TEMPLATE.getCode(), e);
}
return new TemplateInfo(tenantId, templateName);
}
Aggregations