Closed Meetings

Non c'è niente di più gratificante al mondo del darsi da soli una bella e vigorosa martellata sugli alluci.
Perchè aspettare che siano gli altri ad assestarcela? Il buon Dio ci ha dotato di arti superiori prensili: usiamoli!!!
Io in questo sono avanti, gente. Molto avanti.
Ho sviluppato un'abilità particolare nel mirare bene, colpire con forza ma molto rapidamente. E non sbaglio praticamente mai.
L'ultima volta giusto pochi giorni fa allorquando mi sono ritrovato ad approntare in tempi rapidi un server di videoconferenza
Inutile dire quanto fossi felice. Ho sempre nutrito un amore sperticato nei confronti di questo tipo di interazione: non solo sono costretto ad ascoltare le cazzate che dicono n persone, ma devo farlo guardandole tutte in faccia...

Fantastico!!!
L'unico lato positivo che sono riuscito a trovare è che, in fondo, l'accrocchio dovevo solo prepararlo, non utilizzarlo in prima persona...

Con aria giuliva e morale alle stelle, installato il sistema operativo e poi OpenMeetings, comincio a darmi da fare con le configurazioni.

Un VirtualHost di qua, due regolette di iptables di là, genero il certificato ssl, abilito il modulo... tutto bene, tutto rapido.
Sento già in bocca il sapore del caffè che andrò a tracannare nel giro di cinque minuti, giusto il tempo di creare gruppi, utenti e stanze...

Faccio il login, qualche prova, do un'occhiata alla lavagna multimediale, un rapido check audio/video col collega del piano di sopra e passo agli utenti e ai gruppi, anzi (per dirla alla OpenMeetings) alle "organisations".
E mi organizzo alla grande: mi doto di un tecnologicissimo foglio di carta da block-notes e di una psichedelica matita consumata. Traccio una riga verticale nel mezzo: a sinistra i gruppi, a destra gli utenti e poi tante belle freccette che si incrociano.
D'altronde così ho visto fare a mia figlia alle prese con i compiti di scuola: paperelle, cagnolini ed uccellini da un lato, laghetti, cucce e nidi dall'altro. Visto che mia figlia la si può a buon titolo definire una "ragazza d'oggi", io che non voglio restare indietro, mi adeguo per cercare di essere sempre un papà moderno al passo con le nuove tecnologie!

Seguendo pedissequamente quello schema, creo i gruppi, creo gli utenti, li assegno alle varie "organisations", creo le stanze per le videoconferenze e le purgo di tutte le funzionalità possibili ed immaginabili... dalla lavagna multimediale alla condivisione desktop.
Faccio questo per seguire il famosissimo approccio filosofico applicato all'informatica chiamato SMESTO, ovvero Sysadmin MEntal Serenity Trough Obscurity. Approccio orientato alla felicità interiore (non a caso è il contrario di... MESTO).
Sebbene tutte queste operazioni erano state abbastanza rapide, il dover soffermarmi così tanto (per me) tra click, finestre gommose e applet java come se piovesse, mi aveva causato un certo senso di nausea. Dovevo accelerare, completare il lavoro e far respirare l'unico neurone che sentivo ansimare all'interno della scatola cranica.

Elimino utente, gruppo e stanza creati per i test col collega, faccio il logout e soddisfatto vado a prendere il caffè.
Al mio ritorno mi comunicano che ci sono altri due utenti da accreditare.
Vado alla schermata di login, username&&password e... "Errore sconosciuto. Contatta il tuo amministratore.".
Forse ho digitato troppo in fretta...
Di nuovo username&&password... "Errore sconosciuto. Contatta il tuo amministratore.".
Echecazzo... (che in antica lingua silicica significa: "va bene, contattiamo questo amministratore così ci facciamo riabilitare il login").
E mi contatto.
Mi telefono, mi esprimo il problema, mi ascolto attentamente e, con linguaggio semplice ma molto professionale, mi mando a fare in culo.

Il login con le altre utenze funziona a dovere solo che sono tutte utenze non-amministrative...
Ovviamente avevo pensato bene di non creare un'altra utenza amministrativa a parte la mia... giusto per seguire un altro famosissimo approccio filosofico applicato all'informatica: SMETTO, ovvero Sysadmin MEntal Tranquillity Trough Obscurity.
E infatti ho smesso, mi sono alzato dalla sedia e mi sono affacciato al balcone.

Non nascondo che il pensiero di andare a ravanare tra i log di OpenMeetings mi faceva guardare in basso e mi faceva pensare ad un insano gesto, ma poi, vuoi l'essere a piano terra, vuoi il fermo proposito di portare a termine il corso di "Epistemologia e gnoseologia del cavo UTP" che sto seguendo con estremo interesse, ho desistito, sono tornato al mio posto e... sigh... sono andato a ravanare in quel javesco girone infernale...

Poco prima di svenire, noto in mezzo a quella discarica alfanumerica:

root@debvideo:~# cat /usr/lib/red5/log/openmeetings.log
...
DEBUG 05-17 10:27:39.727 Sessionmanagement.java 1760014 221 org.openmeetings.app.data.basic.Sessionmanagement  - updateUser User: 1 || 6a1130a179131e74aa7d769d756f34f9
DEBUG 05-17 10:27:39.729 Sessionmanagement.java 1760016 241 org.openmeetings.app.data.basic.Sessionmanagement  - Found session to update: 6a1130a179131e74aa7d769d756f34f9 userId: 1
DEBUG 05-17 10:27:39.730 Usermanagement.java 1760017 309 org.openmeetings.app.data.user.Usermanagement  - loginUser 
ERROR 05-17 10:27:39.732 Usermanagement.java 1760019 324 org.openmeetings.app.data.user.Usermanagement  - :
java.lang.Exception: No Organization assigned to user
...

Mumble muble... No Organization assigned to user... mumble mumble...

Anni e anni di studio e di esperienza professionale ad altissimi livelli mi fanno balenare in mente l'inghippo: "qualcuno" ha eliminato, tra le tante cose, quel gruppo inutile creato per i test. Questo "qualcuno" però non ha tenuto in conto che quello era l'unico gruppo al quale apparteneva l'utente amministratore.
OpenMeetings permette che tu non appartenga a nessuna organisation, solo che poi non ti fa fare login!
Questo "qualcuno" è da prendere a calci...

Mentre guardo quelle odiose applet azzurrognole, ringrazio il cielo che il genere umano, tanti anni fa, ha ricevuto in dono il bene più prezioso di cui disponiamo: la riga di comando.

root@videoconf:~# mysql -u omuser -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
...
...
mysql> use omdb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select user_id,login,level_id from users;
+---------+--------------+----------+
| user_id | login        | level_id |
+---------+--------------+----------+
|       1 | paperone     |        3 |
|       2 | pluto        |        2 |
|       3 | pippo        |        1 |
|       4 | rockerduck   |        2 |
|       5 | paperino     |        2 |
|       6 | qui          |        1 |
|       7 | quo          |        1 |
|       8 | qua          |        1 |
|       9 | topolino     |        1 |
|      10 | topolina     |        1 |
|      11 | orazio       |        1 |
|      12 | clarabella   |        1 |
|      13 | paperina     |        1 |
|      14 | paperoga     |        1 |
+---------+--------------+----------+
14 rows in set (0.00 sec)

mysql> select user_id,organisation_id from organisation_users;
+---------+-----------------+
| user_id | organisation_id |
+---------+-----------------+
|       2 |               2 |
|       3 |               2 |
|       6 |               1 |
|       5 |               2 |
|       7 |               1 |
|       8 |               1 |
|       9 |               1 |
|      11 |               1 |
|      12 |               1 |
|      13 |               1 |
|      10 |               1 |
|      14 |               2 |
|       4 |               2 |
+---------+-----------------+
15 rows in set (0.00 sec)

E già, paperone (level_id=3 aka admin dell'accrocchio) nella tabella organisation_users non c'è proprio.
All'inizio penso di inserirlo direttamente ma quella tabella ha così tanti campi (e molti obbligatori) che mi rendo conto di non poter rimanere sveglio a scrivere una query così lunga (ho un'età perbacco) e desisto.
Così, visto che sto vivendo il mio periodo di massimo fulgore tamarro-computazionale, scelgo una strada computazionalmente tamarra:

mysql> update users SET level_id=3 WHERE user_id=4;

ovvero, nomino rockerduck co-amministratore!
Faccio login come rockerduck, assegno un gruppo a paperone e alla fine ripristino i privilegi originari di rockerduck.
E vaffanculo ai puristi!

Adesso tutto è tornato a posto.
Saluto commosso il magico mondo delle applet e dei log di java e me ne torno triste e solitario alla mia realtà di reietto delle piattaforme di comunicazione.
Nessuno mi videochiama mai...

Sarà perchè studio troppa filosofia?