PHPackages                             neapoli/christes - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. neapoli/christes

ActiveDrupal-module[Authentication &amp; Authorization](/categories/authentication)

neapoli/christes
================

Chrístes, dal greco utenti, è un modulo Drupal per la gestione degli utenti della scuola

1.0.4(1mo ago)022AGPL-3.0-only

Since Dec 30Pushed 1mo agoCompare

[ Source](https://github.com/neapoli/christes)[ Packagist](https://packagist.org/packages/neapoli/christes)[ Docs](https://github.com/neapoli/christes)[ RSS](/packages/neapoli-christes/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (5)Dependencies (10)Versions (6)Used By (0)

Chrístes
========

[](#chrístes)

**Chrístes** (dal greco *χρήστες*, "utenti") è un modulo Drupal per la **gestione degli utenti della scuola** all'interno della distribuzione Ouitoulía.

Automatizza alcune operazioni ricorrenti sul ciclo di vita degli account del personale scolastico (docenti e ATA): normalizzazione dei dati anagrafici, blocco automatico alla scadenza dell'incarico e alcune personalizzazioni dei form utente.

- **Package:** Neapoli
- **Compatibilità core:** Drupal `^10.3 || ^11`

Funzionalità
------------

[](#funzionalità)

### 1. Blocco automatico alla scadenza dell'incarico (cron)

[](#1-blocco-automatico-alla-scadenza-dellincarico-cron)

Tramite `hook_cron`, ogni esecuzione cerca gli utenti con:

- tipologia incarico **"Tempo determinato"** (campo `field_tipologia_incarico`, vocabolario `tipologia_incarichi`);
- stato **attivo**;
- data di scadenza incarico (`field_data_scadenza_incarico`) **scaduta** (≤ data odierna).

Per ciascuno: rimuove tutti i ruoli, **blocca** l'utente e registra un messaggio nel log del canale `christes`.

> La pianificazione del cron è gestita da **Ultimate Cron** (dipendenza del modulo).

### 2. Normalizzazione dei dati anagrafici (`hook_user_presave`)

[](#2-normalizzazione-dei-dati-anagrafici-hook_user_presave)

Prima di ogni salvataggio utente (da form, import o API):

- `field_nome` e `field_cognome` → iniziale maiuscola di ogni parola (`mb_convert_case`, gestione corretta degli accenti italiani);
- `field_codice_fiscale` → tutto **maiuscolo**.

### 3. Campo "Nome utente" nascondibile nel profilo

[](#3-campo-nome-utente-nascondibile-nel-profilo)

Nel form di **modifica profilo** (`user_form`), il campo *Nome utente* può essere nascosto.

Il comportamento è controllato da un'impostazione in **Amministrazione → Configurazione → Persone → Impostazioni account** (`/admin/config/people/accounts`), sezione **Chrístes**:

- ✅ **flag attivo** (default): campo *Nome utente* nascosto;
- ⬜ **flag disattivo**: campo *Nome utente* visibile.

Il valore è salvato nella config `christes.settings` (chiave `hide_username_field`).

> In fase di **registrazione** il campo nome utente è già gestito (nascosto/auto-generato) dal modulo **Auto Username** (`auto_username`), quindi qui non viene toccato.

### 4. Notifica all'utente in creazione account

[](#4-notifica-allutente-in-creazione-account)

Nel form di registrazione, l'opzione *"Notifica l'utente"* è preselezionata di default.

### 5. Import automatico delle configurazioni in installazione

[](#5-import-automatico-delle-configurazioni-in-installazione)

All'installazione (`hook_install`) il modulo importa e **sovrascrive** le configurazioni presenti in:

- `config/optional/`
- `config/install/override/`

e infine svuota le cache. Utile per forzare configurazioni di base anche su siti già esistenti.

Dipendenze
----------

[](#dipendenze)

ModuloScopo`user`Gestione utenti (core)`auto_username`Generazione automatica dello username`conditional_fields`Campi condizionali nei form`login_emailusername`Login con email o username`mailsystem`Astrazione invio email`phpmailer_smtp`Invio email via SMTP`pathauto`Alias URL automatici`theme_change`Cambio tema per contesto/utente`ultimate_cron`Pianificazione dei task cronConfigurazione
--------------

[](#configurazione)

ConfigChiaveDefaultDescrizione`christes.settings``hide_username_field``true`Nasconde il campo *Nome utente* nel form di modifica profiloL'impostazione è modificabile da `/admin/config/people/accounts`.

Installazione
-------------

[](#installazione)

Il modulo fa parte della distribuzione e viene installato tramite Composer come dipendenza del progetto.

```
drush en christes -y
drush cr
```

Struttura del modulo
--------------------

[](#struttura-del-modulo)

```
christes/
├── christes.info.yml      # Definizione modulo e dipendenze
├── christes.module        # Hook: cron, form alter, presave
├── christes.install       # hook_install + import configurazioni
├── composer.json          # Metadati e requisiti Composer
├── config/
│   ├── install/           # christes.settings.yml (default)
│   └── schema/            # christes.schema.yml (validazione config)
└── README.md

```

Licenza
-------

[](#licenza)

AGPL-3.0-only — Maintainer: Crescenzo Velleca.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance90

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 94.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~46 days

Total

5

Last Release

45d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3673810?v=4)[Crescenzo](/maintainers/Crescenzo)[@crescenzo](https://github.com/crescenzo)

---

Top Contributors

[![OProf77](https://avatars.githubusercontent.com/u/58259159?v=4)](https://github.com/OProf77 "OProf77 (18 commits)")[![neapoli](https://avatars.githubusercontent.com/u/241985908?v=4)](https://github.com/neapoli "neapoli (1 commits)")

---

Tags

drupalmoduleChrístes

### Embed Badge

![Health badge](/badges/neapoli-christes/health.svg)

```
[![Health](https://phpackages.com/badges/neapoli-christes/health.svg)](https://phpackages.com/packages/neapoli-christes)
```

###  Alternatives

[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6943.5M449](/packages/drupal-core-recommended)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
