Daniel Quathamer
1 year ago
64 changed files with 64856 additions and 56216 deletions
@ -0,0 +1,343 @@ |
|||||||
|
/* |
||||||
|
* de.superx.etl - a package for controlling ETL routines |
||||||
|
* Copyright (C) 2021 Daniel Quathamer <danielq@memtext.de> |
||||||
|
* |
||||||
|
* This package is licensed under the CampusSource License; |
||||||
|
* http://www.campussource.de/org/license/
|
||||||
|
*/ |
||||||
|
package de.superx.etl; |
||||||
|
|
||||||
|
import java.io.BufferedReader; |
||||||
|
import java.io.BufferedWriter; |
||||||
|
import java.io.File; |
||||||
|
import java.io.FileInputStream; |
||||||
|
import java.io.FileNotFoundException; |
||||||
|
import java.io.FileOutputStream; |
||||||
|
import java.io.IOException; |
||||||
|
import java.io.InputStreamReader; |
||||||
|
import java.io.OutputStreamWriter; |
||||||
|
import java.io.StringReader; |
||||||
|
import java.io.StringWriter; |
||||||
|
import java.io.UnsupportedEncodingException; |
||||||
|
import java.net.URISyntaxException; |
||||||
|
import java.util.Enumeration; |
||||||
|
import java.util.Properties; |
||||||
|
|
||||||
|
import javax.xml.parsers.DocumentBuilder; |
||||||
|
import javax.xml.parsers.DocumentBuilderFactory; |
||||||
|
import javax.xml.parsers.ParserConfigurationException; |
||||||
|
import javax.xml.xpath.XPath; |
||||||
|
import javax.xml.xpath.XPathConstants; |
||||||
|
import javax.xml.xpath.XPathExpressionException; |
||||||
|
import javax.xml.xpath.XPathFactory; |
||||||
|
|
||||||
|
import org.w3c.dom.Document; |
||||||
|
import org.w3c.dom.Node; |
||||||
|
import org.xml.sax.InputSource; |
||||||
|
import org.xml.sax.SAXException; |
||||||
|
|
||||||
|
import de.superx.servlet.SuperXManager; |
||||||
|
|
||||||
|
/** |
||||||
|
|
||||||
|
*/ |
||||||
|
public class EtlUtils { |
||||||
|
public static final String NEWLINE=System.getProperty("line.separator"); |
||||||
|
public static final String PATHSEP=File.separator; |
||||||
|
public static String WEBINFDIR=SuperXManager.getWEB_INFPfad(); |
||||||
|
public static String SUPERX_DIR=(System.getProperties().containsKey("SUPERX_DIR")? System.getProperty("SUPERX_DIR"):""); |
||||||
|
public static String MODUL_ROOT_PFAD=(System.getProperties().containsKey("MODULE_PFAD")? System.getProperty("MODULE_PFAD"):SUPERX_DIR+PATHSEP+"db"+PATHSEP+"module"); |
||||||
|
public static String MODUL_ROHDATEN_SUBPFAD=PATHSEP+"rohdaten"+PATHSEP; |
||||||
|
|
||||||
|
|
||||||
|
public static void main(String args[]) { |
||||||
|
|
||||||
|
try { |
||||||
|
String webinfdir=getWebinfDirectory();; |
||||||
|
System.out.println(webinfdir); |
||||||
|
|
||||||
|
} catch (URISyntaxException e) { |
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace(); |
||||||
|
} catch (Exception e) { |
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static Properties convertStringToProperty(String inp) throws IOException |
||||||
|
{ |
||||||
|
Properties myProps = new Properties(); |
||||||
|
myProps.load(new StringReader(inp)); |
||||||
|
return myProps; |
||||||
|
} |
||||||
|
/* Ein EtlJob hat vordefininierte Parameter, die zur Laufzeit durch die runTimeParams ersetzt werden. |
||||||
|
* Der merge findet hier statt: |
||||||
|
*/ |
||||||
|
public static Properties mergeParamProperties(Properties params, Properties runTimeParams) |
||||||
|
|
||||||
|
{ |
||||||
|
if(params==null) { |
||||||
|
//Job ist noch unbekannt, oder hat keine vordef. Parameter
|
||||||
|
//in diesem Falle werden die Standardparameter übergeben (Modulpfade, SUPERX_DIR)
|
||||||
|
params=runTimeParams; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
String parsedParam; |
||||||
|
Enumeration runTimeParamNames = runTimeParams.propertyNames(); |
||||||
|
while (runTimeParamNames.hasMoreElements()) { |
||||||
|
String runTimeParamName = (String)runTimeParamNames.nextElement(); |
||||||
|
String runTimeParamValue = runTimeParams.getProperty(runTimeParamName); |
||||||
|
Enumeration paramNames = params.propertyNames(); |
||||||
|
while (paramNames.hasMoreElements()) { |
||||||
|
String paramName=(String)paramNames.nextElement(); |
||||||
|
String paramValue=params.getProperty(paramName); |
||||||
|
if(paramName.equals(runTimeParamName) ) { |
||||||
|
paramValue=runTimeParamValue; |
||||||
|
params.setProperty(paramName, paramValue); |
||||||
|
} |
||||||
|
if(paramValue.indexOf("$"+runTimeParamName)>-1) { |
||||||
|
paramValue=de.memtext.util.StringUtils.replace(paramValue,"$"+runTimeParamName, runTimeParamValue); |
||||||
|
params.setProperty(paramName, paramValue); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return params; |
||||||
|
|
||||||
|
} |
||||||
|
public static String parseStringAgainstParams(String targetString, Properties params) |
||||||
|
|
||||||
|
{ |
||||||
|
String parsedParam; |
||||||
|
Enumeration paramNames = params.propertyNames(); |
||||||
|
while (paramNames.hasMoreElements()) { |
||||||
|
String paramName = (String)paramNames.nextElement(); |
||||||
|
String paramValue = params.getProperty(paramName); |
||||||
|
if(targetString.indexOf("$"+paramName)>-1) { |
||||||
|
targetString=de.memtext.util.StringUtils.replace(targetString,"$"+paramName, paramValue); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
return targetString; |
||||||
|
} |
||||||
|
public static void initJobEnvironment() |
||||||
|
{ |
||||||
|
String initVar=""; |
||||||
|
if(System.getProperty("WEBINFDIR") ==null) |
||||||
|
{ |
||||||
|
|
||||||
|
try { |
||||||
|
initVar=de.superx.servlet.SuperXManager.getWEB_INFPfad(); |
||||||
|
if(initVar==null || initVar.equals(".")) |
||||||
|
{ |
||||||
|
//ermittle webinfdir
|
||||||
|
initVar=getWebinfDirectory(); |
||||||
|
|
||||||
|
} |
||||||
|
} catch (Exception e) { |
||||||
|
// do nothing, try another
|
||||||
|
} |
||||||
|
|
||||||
|
WEBINFDIR=initVar; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if(System.getProperty("SUPERX_DIR") ==null) |
||||||
|
{ |
||||||
|
SUPERX_DIR=WEBINFDIR+PATHSEP+"conf"+PATHSEP+"edustore"; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
private static String getJarName() |
||||||
|
{ |
||||||
|
return new File(EtlUtils.class.getProtectionDomain() |
||||||
|
.getCodeSource() |
||||||
|
.getLocation() |
||||||
|
.getPath()) |
||||||
|
.getName(); |
||||||
|
} |
||||||
|
|
||||||
|
private static boolean runningFromJar() |
||||||
|
{ |
||||||
|
String jarName = getJarName(); |
||||||
|
return jarName.contains(".jar"); |
||||||
|
} |
||||||
|
|
||||||
|
public static String getWebinfDirectory() throws URISyntaxException |
||||||
|
{ |
||||||
|
if (runningFromJar()) |
||||||
|
{ |
||||||
|
return getWebinfDirectoryFromJar(); |
||||||
|
} else |
||||||
|
{ |
||||||
|
return getWebinfDirectoryFromClass(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private static String getWebinfDirectoryFromClass() |
||||||
|
{ |
||||||
|
File f= new File(EtlUtils.class.getProtectionDomain() |
||||||
|
.getCodeSource() |
||||||
|
.getLocation() |
||||||
|
.getPath()+PATHSEP+".."); |
||||||
|
String class_path=f.getAbsolutePath(); |
||||||
|
return class_path; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
private static String getWebinfDirectoryFromJar() throws URISyntaxException |
||||||
|
{ |
||||||
|
File f1=new File(EtlUtils.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); |
||||||
|
//now we're got superx.jar, go up one level
|
||||||
|
File f2=new File(f1.getParent()); |
||||||
|
//now we've got WEB-INF/lib, return WEB-INF:
|
||||||
|
|
||||||
|
return f2.getParent(); |
||||||
|
|
||||||
|
} |
||||||
|
/* die folgenden 2 Methoden |
||||||
|
* getFileContentsWithEncoding |
||||||
|
* saveFileContentsWithEncoding |
||||||
|
* sind in kern5.0 in de.superx.util.FileUtils |
||||||
|
* wg. abwärtskompatiblität hierhin kopiert, sollten langfristig wieder weg |
||||||
|
*/ |
||||||
|
public static String getFileContentsWithEncoding(String filePath, String encoding) { |
||||||
|
File f = new File(filePath); |
||||||
|
if (!f.exists()) { |
||||||
|
System.out.println("Fehler: Datei " + filePath + " existiert nicht."); |
||||||
|
return null; |
||||||
|
} |
||||||
|
String fileContents = ""; |
||||||
|
if (encoding == null || encoding.trim().equals("")) { |
||||||
|
encoding = System.getProperty("file.encoding"); |
||||||
|
} |
||||||
|
try { |
||||||
|
// --- IputStream und OutputStream generieren ---//
|
||||||
|
FileInputStream fis = new FileInputStream(f); |
||||||
|
// Wenn Quelldatei Unicode, dann speziellen Reader nutzen
|
||||||
|
BufferedReader in; |
||||||
|
//BufferedReader ist schneller bei großen Dateien
|
||||||
|
in = new BufferedReader(new InputStreamReader(fis, encoding)); |
||||||
|
// --- Output-Stream der temporären Datei erzeugen ---//
|
||||||
|
StringWriter out = new StringWriter(); |
||||||
|
// --- Verarbeiten der Datei ---//
|
||||||
|
String text; |
||||||
|
text = in.readLine(); |
||||||
|
while (text != null) { // Datei nicht leer
|
||||||
|
out.write(text); |
||||||
|
out.write(System.getProperty("line.separator")); |
||||||
|
text = in.readLine(); |
||||||
|
} |
||||||
|
if (!(out == null)) { |
||||||
|
fileContents = out.toString(); |
||||||
|
} |
||||||
|
} catch (FileNotFoundException e) { |
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace(); |
||||||
|
} catch (UnsupportedEncodingException e) { |
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace(); |
||||||
|
} catch (IOException e) { |
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
return fileContents; |
||||||
|
} |
||||||
|
|
||||||
|
public static void saveFileContentsWithEncoding(String filename, String contents, String encoding) throws |
||||||
|
|
||||||
|
FileNotFoundException, |
||||||
|
IOException |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
File f = new File(filename); |
||||||
|
BufferedReader in; |
||||||
|
BufferedWriter out; |
||||||
|
|
||||||
|
//Default encoding ist utf-8
|
||||||
|
if (encoding == null) encoding = System.getProperty("file.encoding"); |
||||||
|
// --- Output-Stream der temporären Datei erzeugen ---//
|
||||||
|
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f), encoding)); |
||||||
|
|
||||||
|
out.write(contents); |
||||||
|
|
||||||
|
out.close(); |
||||||
|
|
||||||
|
|
||||||
|
}//Ende der Methode
|
||||||
|
|
||||||
|
|
||||||
|
/*SAX Document aus XML-Datei erzeugen */ |
||||||
|
public static Document buildDocumentFromXmlFile(String srcFile) |
||||||
|
throws ParserConfigurationException, FileNotFoundException, SAXException, IOException { |
||||||
|
Document mydomres; |
||||||
|
org.xml.sax.InputSource is; |
||||||
|
DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); |
||||||
|
DocumentBuilder builder = dfactory.newDocumentBuilder(); |
||||||
|
FileInputStream in = new FileInputStream(srcFile); |
||||||
|
|
||||||
|
is=new org.xml.sax.InputSource(in); |
||||||
|
mydomres = builder.newDocument(); |
||||||
|
mydomres = builder.parse(is); |
||||||
|
return mydomres; |
||||||
|
} |
||||||
|
/*** |
||||||
|
* TODO: nach merge in master diese Methode löschen, und auf de.memtext.util.XMLUtils.parseXml(String) verweisen |
||||||
|
* @author Witt This function parses XML-containing string into documents while |
||||||
|
* preserving the namespaces and is primarily meant to be used withing |
||||||
|
* (jUnit) test cases |
||||||
|
* @param xmlString |
||||||
|
* @return |
||||||
|
* @throws ParserConfigurationException |
||||||
|
* @throws SAXException |
||||||
|
* @throws IOException |
||||||
|
*/ |
||||||
|
public static Document parseXml(String xmlString) throws ParserConfigurationException, SAXException, IOException { |
||||||
|
DocumentBuilderFactory myFactory = DocumentBuilderFactory.newInstance(); |
||||||
|
myFactory.setNamespaceAware(true); |
||||||
|
DocumentBuilder myBuilder; |
||||||
|
myBuilder = myFactory.newDocumentBuilder(); |
||||||
|
Document myDocument = myBuilder.parse(new InputSource(new StringReader(xmlString))); |
||||||
|
return myDocument; |
||||||
|
} |
||||||
|
/** |
||||||
|
* @param src |
||||||
|
* @param tidInXmlFile |
||||||
|
* @return |
||||||
|
* @throws ParserConfigurationException |
||||||
|
* @throws SAXException |
||||||
|
* @throws IOException |
||||||
|
* @throws XPathExpressionException |
||||||
|
*/ |
||||||
|
public static boolean isNodeValueInXml(String src, String searchPath, String expectedValue) |
||||||
|
throws ParserConfigurationException, SAXException, IOException, XPathExpressionException { |
||||||
|
boolean b=false; |
||||||
|
Document mydomres =de.superx.etl.EtlUtils.parseXml(src); |
||||||
|
XPathFactory factory = new net.sf.saxon.xpath.XPathFactoryImpl(); |
||||||
|
|
||||||
|
XPath xPath = factory.newXPath(); |
||||||
|
|
||||||
|
Node myNode=(Node) xPath.compile(searchPath).evaluate( |
||||||
|
mydomres, XPathConstants.NODE); |
||||||
|
if(myNode!=null) |
||||||
|
{ |
||||||
|
String foundValue=de.memtext.util.XMLUtils.getTheValue(myNode); |
||||||
|
if(!(foundValue==null) && foundValue.trim().equals(expectedValue)) |
||||||
|
b=true; |
||||||
|
} |
||||||
|
return b; |
||||||
|
|
||||||
|
} |
||||||
|
public static String translateReturnCode(int returnCode) |
||||||
|
{ |
||||||
|
String returnString="Fehlerhaft"; |
||||||
|
if(returnCode==0) |
||||||
|
returnString="Erfolg"; |
||||||
|
return returnString; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
package de.superx.sec; |
||||||
|
|
||||||
|
import java.util.regex.Matcher; |
||||||
|
import java.util.regex.Pattern; |
||||||
|
/* |
||||||
|
* Check for letters, numbers and characters that don't cause problems in SQL when enclosed in '' |
||||||
|
*/ |
||||||
|
public class StringCheck implements InputCheck { |
||||||
|
public static String STRING_CHECK = "string"; |
||||||
|
private static String LETTER = "\\p{gc=L}"; // Unicode General Category "Letter"
|
||||||
|
private static String DECIMAL = "\\p{gc=Nd}"; // Unicode General Category "Decimal Number"
|
||||||
|
private static String SEPARATOR = "\\p{gc=Z}"; // Unicode General Category "Separator,space"
|
||||||
|
private static String CURRENCY = "\\p{gc=Sc}"; // Unicode General Category "Currency"
|
||||||
|
private static String ALLOWED_CHARS="()\\[\\]&/$§=\\,!#*~"; //Characters that don't cause problems in SQL when enclosed in ''
|
||||||
|
private static Pattern STRING = Pattern.compile("\\A[" + LETTER + DECIMAL + SEPARATOR + CURRENCY + ALLOWED_CHARS+"\\.:\\-\\_/\\n\\r@\\^]*\\z"); |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean check(String input) { |
||||||
|
if (input.equals("--leer--")) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
Matcher matcher = STRING.matcher(input); |
||||||
|
return matcher.find(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,113 @@ |
|||||||
|
package de.superx.sxrest; |
||||||
|
import javax.ws.rs.GET; |
||||||
|
import javax.ws.rs.Path; |
||||||
|
import javax.ws.rs.PathParam; |
||||||
|
import javax.ws.rs.Produces; |
||||||
|
import javax.ws.rs.QueryParam; |
||||||
|
import javax.ws.rs.core.Context; |
||||||
|
import javax.ws.rs.core.MediaType; |
||||||
|
import javax.ws.rs.core.Request; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
import de.memtext.util.DateUtils; |
||||||
|
import de.memtext.util.FileUtils; |
||||||
|
import de.superx.common.SxUser; |
||||||
|
import de.superx.servlet.SuperXManager; |
||||||
|
|
||||||
|
@Path("/logs") |
||||||
|
|
||||||
|
public class LogsProvider { |
||||||
|
@Context |
||||||
|
Request request; |
||||||
|
|
||||||
|
@GET |
||||||
|
@Path("/{logtype}") |
||||||
|
@Produces(MediaType.TEXT_PLAIN) |
||||||
|
public String printLogs(@PathParam("logtype") String logtype, |
||||||
|
@QueryParam("loglines") Integer loglines, |
||||||
|
@Context HttpServletRequest request) { |
||||||
|
String returntext=""; |
||||||
|
SxUser user = (SxUser) request.getSession().getAttribute("user"); |
||||||
|
String mandantenid= (String) request.getSession().getAttribute("MandantenID"); |
||||||
|
if(mandantenid==null || mandantenid.equals("")) |
||||||
|
mandantenid="default"; |
||||||
|
|
||||||
|
if (user == null || !user.isAdmin()) { |
||||||
|
returntext="Fehlende Rechte"; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if(logtype.equals("activity")|| logtype.equals("fmsql")|| logtype.equals("sql") || logtype.equals("xml")) |
||||||
|
{ |
||||||
|
returntext = getMaskLogs(mandantenid,logtype); |
||||||
|
} |
||||||
|
else |
||||||
|
returntext=getTomcatLogs(mandantenid,logtype,loglines); |
||||||
|
} |
||||||
|
|
||||||
|
return returntext; |
||||||
|
} |
||||||
|
private String getMaskLogs(String mandantenid,String logtype) |
||||||
|
{ |
||||||
|
String logString; |
||||||
|
if(mandantenid.equalsIgnoreCase(SuperXManager.getLastMaskenSqlMandantid())) |
||||||
|
{ |
||||||
|
switch (logtype) { |
||||||
|
case "activity" : |
||||||
|
logString=SuperXManager.activityLog.toString().replace("<br>", "\n"); |
||||||
|
break; |
||||||
|
case "fmsql" : |
||||||
|
logString=SuperXManager.getLastFMMaskenSql(); |
||||||
|
break; |
||||||
|
case "sql" : |
||||||
|
logString=SuperXManager.getLastMaskenSql(); |
||||||
|
break; |
||||||
|
case "xml" : |
||||||
|
logString=SuperXManager.getLastXml(); |
||||||
|
break; |
||||||
|
default : |
||||||
|
logString="Protokoll "+logtype+ " kann nicht gelesen werden"; |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
logString="Bitte wiederholen Sie den Aufruf mit dem jew. Mandant"; |
||||||
|
return logString; |
||||||
|
} |
||||||
|
private String getTomcatLogs(String mandantenid,String logtype, Integer loglines) |
||||||
|
{ |
||||||
|
String logFilePath=""; |
||||||
|
if(loglines==null ) |
||||||
|
loglines=100; |
||||||
|
switch (logtype) { |
||||||
|
case "serverlog" : |
||||||
|
logFilePath=System.getProperty("catalina.base")+File.separator+ "logs"+File.separator+"catalina.out"; |
||||||
|
break; |
||||||
|
case "serverlogsql" : |
||||||
|
logFilePath=System.getProperty("catalina.base")+File.separator+ "logs"+File.separator+"superx_"+mandantenid+".log"; |
||||||
|
break; |
||||||
|
case "serverlogxml" : |
||||||
|
logFilePath=System.getProperty("catalina.base")+File.separator+ "logs"+File.separator+"superx_"+mandantenid+"_xml.log"; |
||||||
|
break; |
||||||
|
default: |
||||||
|
throw new RuntimeException("Logtype " + logtype + " not supported!"); |
||||||
|
} |
||||||
|
String logString="Protokoll "+logFilePath+ " kann nicht gelesen werden"; |
||||||
|
|
||||||
|
File logfile = new File(logFilePath); |
||||||
|
if(logfile.exists()) |
||||||
|
{ |
||||||
|
try { |
||||||
|
logString=FileUtils.tail(logfile,Integer.valueOf(loglines)); |
||||||
|
} |
||||||
|
catch (Exception e) |
||||||
|
{ |
||||||
|
logString+=": "+ e.toString(); |
||||||
|
} |
||||||
|
} |
||||||
|
return logString; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -1,63 +0,0 @@ |
|||||||
package de.superx.sxrest; |
|
||||||
import javax.ws.rs.GET; |
|
||||||
import javax.ws.rs.Path; |
|
||||||
import javax.ws.rs.PathParam; |
|
||||||
import javax.ws.rs.Produces; |
|
||||||
import javax.ws.rs.core.Context; |
|
||||||
import javax.ws.rs.core.MediaType; |
|
||||||
import javax.ws.rs.core.Request; |
|
||||||
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest; |
|
||||||
import de.memtext.util.DateUtils; |
|
||||||
import de.superx.common.SxUser; |
|
||||||
import de.superx.servlet.SuperXManager; |
|
||||||
|
|
||||||
@Path("/masklogs") |
|
||||||
|
|
||||||
public class MaskLogs { |
|
||||||
@Context |
|
||||||
Request request; |
|
||||||
|
|
||||||
@GET |
|
||||||
@Path("/{param}") |
|
||||||
@Produces(MediaType.TEXT_PLAIN) |
|
||||||
public String printLogs(@PathParam("param") String logtype,@Context HttpServletRequest request) { |
|
||||||
String returntext=""; |
|
||||||
SxUser user = (SxUser) request.getSession().getAttribute("user"); |
|
||||||
String mandantenid= (String) request.getSession().getAttribute("MandantenID"); |
|
||||||
if(mandantenid==null || mandantenid.equals("")) |
|
||||||
mandantenid="default"; |
|
||||||
|
|
||||||
if (user == null || !user.isAdmin()) { |
|
||||||
returntext="Fehlende Rechte"; |
|
||||||
} |
|
||||||
else |
|
||||||
{ |
|
||||||
if(mandantenid.equalsIgnoreCase(SuperXManager.getLastMaskenSqlMandantid())) |
|
||||||
{ |
|
||||||
if(logtype.equals("activity")) |
|
||||||
{ |
|
||||||
returntext += SuperXManager.activityLog.toString().replace("<br>", "\n"); |
|
||||||
} |
|
||||||
if(logtype.equals("fmsql")) |
|
||||||
{ |
|
||||||
returntext += SuperXManager.getLastFMMaskenSql(); |
|
||||||
} |
|
||||||
if(logtype.equals("sql")) |
|
||||||
{ |
|
||||||
returntext += SuperXManager.getLastMaskenSql(); |
|
||||||
} |
|
||||||
if(logtype.equals("xml")) |
|
||||||
{ |
|
||||||
returntext = SuperXManager.getLastXml(); |
|
||||||
} |
|
||||||
} |
|
||||||
else |
|
||||||
returntext="Bitte wiederholen Sie den Aufruf mit dem jew. Mandant"; |
|
||||||
} |
|
||||||
|
|
||||||
return returntext; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1 +1 @@ |
|||||||
21.02.2022 |
16.08.2023 |
||||||
|
@ -1,135 +0,0 @@ |
|||||||
=Schnittstellen kern= |
|
||||||
{| class="prettytable" border="1" |
|
||||||
|- |
|
||||||
|SuperX-Version |
|
||||||
|2 |
|
||||||
|
|
||||||
|- |
|
||||||
|Modulversion |
|
||||||
|4.9 |
|
||||||
|
|
||||||
|- |
|
||||||
|Sachgebiet |
|
||||||
|Administration id 0 |
|
||||||
|
|
||||||
|- |
|
||||||
|Systeminfo |
|
||||||
|Administration id 9 |
|
||||||
|
|
||||||
|- |
|
||||||
|Thema |
|
||||||
|Administration |
|
||||||
|
|
||||||
|- |
|
||||||
|Themenbaum-Ast |
|
||||||
|Abfragen |
|
||||||
|
|
||||||
|} |
|
||||||
==Ladeschritt 1: tmp_hochschulinfo== |
|
||||||
Die Tabelle tmp_hochschulinfo wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 2: tmp_userinfo== |
|
||||||
Die Tabelle tmp_userinfo wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 3: tmp_user_group_bez== |
|
||||||
Die Tabelle tmp_user_group_bez wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 4: tmp_user_institution== |
|
||||||
Die Tabelle tmp_user_institution wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 5: tmp_user_masken_bez== |
|
||||||
Die Tabelle tmp_user_masken_bez wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 6: tmp_user_pw== |
|
||||||
Die Tabelle tmp_user_pw wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 7: tmp_user_sachgeb_bez== |
|
||||||
Die Tabelle tmp_user_sachgeb_bez wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 8: tmp_user_sichtarten== |
|
||||||
Die Tabelle tmp_user_sichtarten wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 9: tmp_user_sichten== |
|
||||||
Die Tabelle tmp_user_sichten wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 10: tmp_group_field_pref== |
|
||||||
Die Tabelle tmp_group_field_pref wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 11: tmp_group_masken_bez== |
|
||||||
Die Tabelle tmp_group_masken_bez wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 12: tmp_group_sachgeb_bez== |
|
||||||
Die Tabelle tmp_group_sachgeb_bez wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 13: tmp_group_sichtarten== |
|
||||||
Die Tabelle tmp_group_sichtarten wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 14: tmp_group_sichten== |
|
||||||
Die Tabelle tmp_group_sichten wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 15: tmp_groupinfo== |
|
||||||
Die Tabelle tmp_groupinfo wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 16: tmp_fin_user_kam== |
|
||||||
Die Tabelle tmp_fin_user_kam wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 17: tmp_konstanten== |
|
||||||
Die Tabelle tmp_konstanten wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 18: tmp_unload_params== |
|
||||||
Die Tabelle tmp_unload_params wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 19: tmp_sx_repository== |
|
||||||
Die Tabelle tmp_sx_repository wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 20: tmp_themenbaum== |
|
||||||
Die Tabelle tmp_themenbaum wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 21: tmp_maskeninfo== |
|
||||||
Die Tabelle tmp_maskeninfo wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 22: tmp_felderinfo== |
|
||||||
Die Tabelle tmp_felderinfo wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 23: tmp_masken_felder_bez== |
|
||||||
Die Tabelle tmp_masken_felder_bez wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 24: tmp_maske_system_bez== |
|
||||||
Die Tabelle tmp_maske_system_bez wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 25: tmp_sachgeb_maske_bez== |
|
||||||
Die Tabelle tmp_sachgeb_maske_bez wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 26: tmp_sx_stylesheets== |
|
||||||
Die Tabelle tmp_sx_stylesheets wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 27: tmp_sx_mask_style== |
|
||||||
Die Tabelle tmp_sx_mask_style wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 28: tmp_stylesheet_field== |
|
||||||
Die Tabelle tmp_stylesheet_field wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 29: tmp_macro_masken_bez== |
|
||||||
Die Tabelle tmp_macro_masken_bez wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 30: tmp_macro_feld_wert== |
|
||||||
Die Tabelle tmp_macro_feld_wert wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 31: tmp_sx_captions== |
|
||||||
Die Tabelle tmp_sx_captions wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 32: tmp_sichten== |
|
||||||
Die Tabelle tmp_sichten wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 33: tmp_man_catalogue== |
|
||||||
Die Tabelle tmp_man_catalogue wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 34: tmp_man_catalogue_rpt== |
|
||||||
Die Tabelle tmp_man_catalogue_rpt wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 35: tmp_man_zahl_wert== |
|
||||||
Die Tabelle tmp_man_zahl_wert wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
||||||
==Ladeschritt 36: tmp_kenn_zahl_wert== |
|
||||||
Die Tabelle tmp_kenn_zahl_wert wird nur temporär werdend des Ladens erzeugt. |
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +1,2 @@ |
|||||||
71681^Berichts ID^1^0^0^150^70^1^sql^200^0^0^^^^ |
71681^Berichts ID^1^0^0^150^70^1^sql^200^0^0^^^^ |
||||||
71682^Berichts Name^1^0^0^150^70^1^sql^200^0^0^^^^ |
71682^Berichts Name^1^0^0^150^70^1^sql^200^0^0^^^^ |
||||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
Loading…
Reference in new issue