AccessException.javaprojectforge-business/src/main/java/org/projectforge/framework/access/AccessException.java que contiene código Java para la capa de Componente.Paquete: org.projectforge.framework.access
Clases: AccessException
Extiende: UserException
Métodos (11): getUser, getTaskId, getAccessType, setAccessType, getTaskNode, setClazz, getOperationType, setOperationType, setMessage, setUser, toString
Campos (7): serialVersionUID, taskTree, user, taskId, accessType, message, operationType
Importaciones: 10 paquetes
package org.projectforge.framework.access;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.projectforge.business.task.TaskDO;
import org.projectforge.business.task.TaskNode;
import org.projectforge.business.task.TaskTree;
import org.projectforge.common.i18n.MessageParam;
import org.projectforge.common.i18n.MessageParamType;
import org.projectforge.common.i18n.UserException;
import org.projectforge.framework.persistence.user.api.ThreadLocalUserContext;
import org.projectforge.framework.persistence.user.entities.PFUserDO;
import java.util.ResourceBundle;
/**
* Esta clase será lanzada por AccessChecker si no se concede acceso para la acción solicitada por un usuario.
*
* @author Kai Reinhard (k.reinhard@micromata.de)
*/
public class AccessException extends UserException {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(AccessException.class);
private static final long serialVersionUID = 147795804616526958L;
public final static String I18N_KEY_STANDARD = "access.exception.standard";
public final static String I18N_KEY_STANDARD_WITH_TASK = "access.exception.standardWithTask";
private TaskTree taskTree;
protected PFUserDO user = null;
protected Long taskId = null;
protected AccessType accessType = null;
protected String message = null;
protected OperationType operationType = null;
protected Class<?> clazz = null;
public AccessException(final String i18nKey, final Object... params) {
this(ThreadLocalUserContext.getLoggedInUser(), i18nKey, params);
}
public AccessException(final PFUserDO user, final String i18nKey, final Object... params) {
super(i18nKey, params);
this.user = user;
log.info("AccessException: " + this);
}
public AccessException(final AccessType accessType, final OperationType operationType) {
this(ThreadLocalUserContext.getLoggedInUser(), accessType, operationType);
}
public AccessException(final PFUserDO user, final AccessType accessType,
final OperationType operationType) {
super(I18N_KEY_STANDARD, new MessageParam[]{new MessageParam(accessType), new MessageParam(operationType)});
this.user = user;
this.accessType = accessType;
this.operationType = operationType;
log.info("AccessException: " + this);
}
public AccessException(final Long taskId, final AccessType accessType,
final OperationType operationType) {
this(ThreadLocalUserContext.getLoggedInUser(), taskId, accessType, operationType);
}
public AccessException(final PFUserDO user, final Long taskId, final AccessType accessType,
final OperationType operationType) {
super(I18N_KEY_STANDARD_WITH_TASK,
new MessageParam[]{new MessageParam(taskId), new MessageParam(accessType),
new MessageParam(operationType)});
this.user = user;
this.taskId = taskId;
this.accessType = accessType;
this.operationType = operationType;
log.info("AccessException: " + this);
}
/**
* El orden de los argumentos es id de tarea, accessType y operationType.
*
* @return los argumentos para el formateador de mensajes de tipo Object[3].
*/
public Object[] getMessageArgs(final ResourceBundle bundle) {
final Object[] result = new Object[3];
if (taskTree != null && this.taskId != null) {
final TaskDO task = TaskTree.getInstance().getTaskById(taskId);
if (task != null) {
result[0] = task.getTitle();
} else {
result[0] = taskId;
}
} else {
result[0] = taskId;
}
if (accessType != null) {
result[1] = bundle.getString(accessType.getI18nKey());
}
if (operationType != null) {
result[2] = bundle.getString(operationType.getI18nKey());
}
return result;
}
public MessageParam[] getMessageArgs() {
final MessageParam[] result = new MessageParam[3];
if (taskTree != null && this.taskId != null) {
final TaskDO task = TaskTree.getInstance().getTaskById(taskId);
if (task != null) {
result[0] = new MessageParam(task.getTitle());
} else {
result[0] = new MessageParam(taskId);
}
} else {
result[0] = new MessageParam(taskId);
// ... (truncado, total 224 líneas)
868d6abb7 2025 -> 2026 63081666f Encabezados de archivos fuente: 2024 -> 2025. 67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (renombrado para evitar malentendidos en el código). 4c04cfd65 CAMBIO MAYOR: Migración de identificadores enteros a identificadores Long (incluyendo claves foráneas, etc.) b6092df09 Derechos de autor 2023 -> 2024