EN · DE · RU · FR · ES

#131: IHKPluginUserRightId.kt

plugins/org.projectforge.plugins.ihk/src/main/kotlin/org/projectforge/plugins/ihk/IHKPluginUserRightId.kt Enum Kotlin / identificador de derecho de usuario, plugins/org.projectforge.plugins.ihk/src/main/kotlin/org/projectforge/plugins/ihk/IHKPluginUserRightId.kt 60 líneas · 24 código · 30 comentarios · 6 en blanco
Enum Kotlin que implementa IUserRightId para definir el único derecho de acceso del plugin IHK. Proporciona una clase interna ProviderService para la indexación de Hibernate Search y el SPI del proveedor de derechos.

Arquitectura

Definición del Enum

@Indexed
@TypeBinding(binder = TypeBinderRef(type = HibernateSearchUserRightIdTypeBinder::class))
enum class IHKPluginUserRightId(
    override val id: String,
    override val orderString: String,
    override val i18nKey: String
) : IUserRightId {
    IHK("PLUGIN_IHK", "plugin70", "plugins.ihk");
}
ParámetroValorSignificado
id"PLUGIN_IHK"Identificador único entre todos los plugins; almacenado en la base de datos para asignaciones de derechos de usuario
orderString"plugin70"Clave de ordenación para la tabla de derechos de UserEditPage; el patrón pluginnn asegura que los plugins se ordenen después de los derechos incorporados
i18nKey"plugins.ihk"Clave para el nombre mostrado del derecho en la interfaz de usuario; resuelta mediante IHKI18nResources.properties

Integración con Hibernate Search

Las anotaciones @Indexed y @TypeBinding vinculan este enum a HibernateSearchUserRightIdTypeBinder, permitiendo la búsqueda de texto completo en las asignaciones de derechos de usuario. Cuando una consulta de Hibernate Search escanea entidades PFUserDO en busca de derechos, este enlazador de tipos sabe cómo indexar IDs de derechos basados en enum.

ProviderService (SPI)

La clase interna ProviderService implementa RightRightIdProviderService, una interfaz SPI de Java. Su método getUserRightIds() devuelve las entradas del enum mediante Arrays.asList(*entries.toTypedArray()). Esto es cargado por el ServiceLoader y contribuye con el derecho IHK al registro global de todos los derechos de usuario conocidos en el sistema.

class ProviderService : RightRightIdProviderService {
    override fun getUserRightIds(): Collection<IUserRightId> {
        return Arrays.asList<IUserRightId>(*entries.toTypedArray())
    }
}

Decisiones de diseño

Historial de Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024-> 2025.
067a4cbb1 Migración en progreso...
b1560ca43 Migración en progreso...