package com.mossle.auth.support;
import java.util.Map;
import com.mossle.api.tenant.TenantHolder;
import org.springframework.jdbc.core.JdbcTemplate;
public class Exporter {
private JdbcTemplate jdbcTemplate;
private TenantHolder tenantHolder;
public String execute() {
StringBuilder buff = new StringBuilder();
buff.append("ref:\n").append(tenantHolder.getTenantDto().getRef())
.append("\n\n");
buff.append("code:\n").append(tenantHolder.getTenantCode())
.append("\n\n");
buff.append("userRepoRef:\n").append(tenantHolder.getUserRepoRef())
.append("\n\n");
buff.append("permType:\n");
for (Map<String, Object> map : jdbcTemplate.queryForList(
"select name,type from auth_perm_type where tenant_id=?",
tenantHolder.getTenantId())) {
buff.append(map.get("name")).append(",").append(map.get("type"))
.append("\n");
}
buff.append("\n");
buff.append("perm:\n");
for (Map<String, Object> map : jdbcTemplate.queryForList(
"select ap.code as code,apt.name as type from auth_perm ap,auth_perm_type apt"
+ " where ap.perm_type_id=apt.id and ap.tenant_id=?",
tenantHolder.getTenantId())) {
buff.append(map.get("code")).append(",").append(map.get("type"))
.append("\n");
}
buff.append("\n");
buff.append("method:\n");
for (Map<String, Object> map : jdbcTemplate
.queryForList(
"select aa.value as resc,ap.code as perm from auth_access aa,auth_perm ap "
+ "where aa.perm_id=ap.id and aa.type='METHOD' and aa.tenant_id=?",
tenantHolder.getTenantId())) {
buff.append(map.get("resc")).append(",").append(map.get("perm"))
.append("\n");
}
buff.append("\n");
buff.append("url:\n");
for (Map<String, Object> map : jdbcTemplate
.queryForList(
"select aa.value as resc,ap.code as perm from auth_access aa,auth_perm ap "
+ "where aa.perm_id=ap.id and aa.type='URL' and aa.tenant_id=?",
tenantHolder.getTenantId())) {
buff.append(map.get("resc")).append(",").append(map.get("perm"))
.append("\n");
}
buff.append("\n");
buff.append("role:\n");
for (Map<String, Object> map : jdbcTemplate
.queryForList(
"select ar.name as name,ap.code as perm,sc.ref as tenant "
+ "from auth_role ar,auth_role_def ard,auth_perm_role_def aprd,auth_perm ap,tenant_info sc "
+ "where ar.role_def_id=ard.id and ard.id=aprd.role_def_id and aprd.perm_id=ap.id "
+ "and ar.tenant_id=? and sc.id=ard.tenant_id",
tenantHolder.getTenantId())) {
buff.append(map.get("name")).append(",").append(map.get("perm"))
.append(",").append(map.get("tenant")).append("\n");
}
buff.append("\n");
buff.append("user:\n");
for (Map<String, Object> map : jdbcTemplate
.queryForList(
"select aus.username as username,aus.reference as ref,ar.name as role"
+ " from auth_role ar,auth_user_status aus,auth_user_role aur "
+ "where ar.id=aur.role_id and aur.user_status_id=aus.id and aus.tenant_id=?",
tenantHolder.getTenantId())) {
buff.append(map.get("username")).append(",").append(map.get("ref"))
.append(",").append(map.get("role")).append("\n");
}
buff.append("\n");
return buff.toString();
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void setTenantHolder(TenantHolder tenantHolder) {
this.tenantHolder = tenantHolder;
}
}