summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftError.java
blob: ad2511ce8e3a2d03ea82518f35e82f22b9000001 (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                             
                                                       













                                                                                                                                    

                                                                                                      






































                                                                                                                         
package org.openslx.dozmod.thrift;

import java.awt.Component;

import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import org.openslx.bwlp.thrift.iface.AuthorizationError;
import org.openslx.bwlp.thrift.iface.TAuthorizationException;
import org.openslx.bwlp.thrift.iface.TInternalServerError;
import org.openslx.bwlp.thrift.iface.TInvalidDateParam;
import org.openslx.bwlp.thrift.iface.TNotFoundException;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.helper.MessageType;

public class ThriftError {

	public static void showMessage(Component parent, Logger logger, TException ex, String messageText) {
		if (ex instanceof TNotFoundException) {
			messageText += "\n\nNicht gefunden";
		} else if (ex instanceof TAuthorizationException) {
			String reason = getString(((TAuthorizationException) ex).getNumber());
			messageText += "\n\nZugriff verweigert: " + reason + "\n" + ex.getMessage();
		} else if (ex instanceof TInternalServerError) {
			messageText += "\n\nEin serverseitiger Fehler ist aufgetreten. Bitte kontaktieren Sie den lokalen Support.";
		} else if (ex instanceof TInvalidDateParam) {
			messageText += "\n\nEin angegebenes Datum ist ungültig:\n" + ex.getMessage();
		} else {
			messageText += "\n\nUnerwartete Ausnahme " + ex.getClass().getSimpleName() + " ist aufgetreten.";
		}
		logger.warn("A thrift call raised an exception", ex);
		Gui.showMessageBox(parent, messageText, MessageType.ERROR, null, null);
	}

	public static String getString(AuthorizationError error) {
		if (error == null)
			return "(AuthorizationError=null)";
		switch (error) {
		case ACCOUNT_SUSPENDED:
			return "Das Benutzerkonto ist gesperrt";
		case BANNED_NETWORK:
			return "Das Netzwerk, aus dem Sie operieren, ist gesperrt";
		case CHALLENGE_FAILED:
			return "Challenge fehlgeschlagen";
		case GENERIC_ERROR:
			return "Generischer Fehler";
		case INVALID_CREDENTIALS:
			return "Ungültige Zugangsdaten";
		case INVALID_KEY:
			return "Ungültiger Schlüssel";
		case INVALID_ORGANIZATION:
			return "Ungültige oder unbekannte Organisation";
		case INVALID_TOKEN:
			return "Ungültiges Sitzungstoken";
		case NOT_AUTHENTICATED:
			return "Nicht authentifiziert";
		case NO_PERMISSION:
			return "Keine ausreichenden Berechtigungen";
		case ORGANIZATION_SUSPENDED:
			return "Ihre zugehörige Organisation ist gesperrt";
		default:
			return "Unbekannter Fehlercode: " + error.toString();
		}
	}

}