EN · DE · RU · FR · ES

#131 : IHKPluginUserRightId.kt

plugins/org.projectforge.plugins.ihk/src/main/kotlin/org/projectforge/plugins/ihk/IHKPluginUserRightId.kt Énumération Kotlin / identifiant de droit utilisateur, plugins/org.projectforge.plugins.ihk/src/main/kotlin/org/projectforge/plugins/ihk/IHKPluginUserRightId.kt 60 lignes · 24 code · 30 commentaires · 6 vides
Énumération Kotlin implémentant IUserRightId pour définir le droit d'accès unique du plugin IHK. Fournit une classe interne ProviderService pour l'indexation Hibernate Search et le fournisseur de droits via SPI.

Architecture

Définition de l'énumération

@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");
}
ParamètreValeurSignification
id"PLUGIN_IHK"Identifiant unique parmi tous les plugins ; stocké en base de données pour les affectations de droits utilisateur
orderString"plugin70"Clé de tri pour le tableau des droits de la page UserEditPage ; le motif pluginnn garantit que les plugins sont triés après les droits intégrés
i18nKey"plugins.ihk"Clé pour le nom affiché du droit dans l'interface utilisateur ; résolue via IHKI18nResources.properties

Intégration Hibernate Search

Les annotations @Indexed et @TypeBinding lient cette énumération à HibernateSearchUserRightIdTypeBinder, permettant la recherche en texte intégral sur les affectations de droits utilisateur. Lorsqu'une requête Hibernate Search parcourt les entités PFUserDO pour les droits, ce binder sait comment indexer les identifiants de droits basés sur une énumération.

ProviderService (SPI)

La classe interne ProviderService implémente RightRightIdProviderService, une interface SPI Java. Sa méthode getUserRightIds() renvoie les entrées de l'énumération via Arrays.asList(*entries.toTypedArray()). Elle est chargée par le ServiceLoader et contribue au registre global de tous les droits utilisateur connus dans le système.

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

Décisions de conception

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers source : 2024 -> 2025.
067a4cbb1 Migration en cours...
b1560ca43 Migration en cours...