Dev /

ConfigurazioneSerWeb

SerWeb è una applicazione PHP usata per creare ed amministrare gli account Sapientel. Qui a Sapientel stiamo usando la versione 0.9.4, e per il suo corretto funzionamento, abbiamo affrontato i seguenti passi di configurazione:


Configurazione email

Per poter creare un nuovo account, SerWeb invia una email all'utente, che contiene un link ad una pagina da cliccare, in modo da confermare che l'utente possieda una email reale. L'email viene inviata facendo uso dell'SMTP della stessa macchina, il quale in genere non viene accettato come mittente dall'SMTP di destinazione, per evidenti restrizioni anti-spam. Per questo, si è modificato il file /etc/mail/sendmail.mc, definendo lo SMART_HOST come l'SMTP dl proprio provider, il quale possiede un RR MX nel DNS, e viene dunque accettato come mittente.

Prerequisiti

Una volta creato l'account, se si desidera gestirlo e si riceve il seguente messaggio di errore "FIFO not running or bad path to it" , accertarsi che Ser sia in esecuzione.

Una volta entrati nell'interfaccia di gestione dell'account, cliccando le sezioni "missed calls" o "accounting" si riceve l'errore "DB Error: syntax error" . Questo e' dovuto al fatto che Serweb richiede una versione MySql >=4, in quanto fa uso di UNIONS. Al momento su smile.ing.uniroma1.it c'e' la versione 3. Allo stato attuale si e' risolto, non facendo visualizzare i tab "missed calls" e "accounting" disabilitandoli nel file config.php

Se si riceve il messaggio di errore "sorry --cannot open write fifo" , accertarsi che il file /tmp/ser_fifo abbia i giusti permessi, eseguendo ad esempio un chmod 666 /tmp/ser_fifo.

Configurazione dei Path

I path vanno settati nel file config_path.php, indicando la directory radice della cartella html di Serweb. Si consiglia di rendere accessibile al webserver la sola cartella html (per esempio impostando un Alias e modificando i permessi).
Nel nostro caso, abbiamo deciso di collocare serweb in /var/www/ e per renderlo accessibile, sono stati modificati i permessi nel seguente modo:

chown apache /var/www/serweb/html/
chgrp root /var/www/serweb/html/
chmod 755 /var/www/serweb/html/

Si e' poi impostato un Alias nel file di configurazione di Apache

Alias /serweb "/var/www/serweb/html"

Mentre nel file config_path.php di Serweb, si e' inserito il path :

$config->root_path="/serweb/";

Localizzazione dei messaggi

Dato che Sapientel si rivolge principalmente ad una utenza di lingua italiana, ci è sembrato opportuno procedere alla traduzione dei files contenenti i messaggi inviati agli intestatari degli account, ed in pieno spirito OpenSource, desideriamo condividere questo sforzo, con coloro a cui può essere utile.

File Completato Data
mail_register.txt26/11/06
terms.txt 
mail_forgot_password_conf.txt26/11/06
mail_forgot_password_pass.txt26/11/06
italiano-utf-8.php.ZIP02/12/06

Restrizione di accesso

Senza ulteriori modifiche, chiunque nel mondo può richiedere un nuovo account di Sapientel, e questo sembra essere esageratamente permissivo. Abbiamo allora individuato due possibili soluzioni:

Controllo sul dominio email è la soluzione proposta in una precedente tesi, e che prevede di accettare solo le richieste da parte di utenti in possesso di una email radicata nel dominio @uniroma1.it. Questo è stato possibile, apportando al codice PHP le modifiche
  • nella intestazione di function.php, si inserisce la variabile
$reg_validate_email_uniroma1 = "^[^@]+@[^,;@ ]*uniroma1\.it$"

mentre nella funzione Creg() si inserisce
$reg_validate_email_uniroma1
$this->uniroma1 = $reg_validate_email_uniroma1
  • in apu_registration.php si inserisce il controllo
"valid_regex"=>$this->reg->uniroma1
Credenziali di autorizzazione. La limitazione precedente può risultare troppo restrittiva, qualora si intenda aprire il servizio a soggetti esterni. Una diversa soluzione consiste allora, nel pretendere che all'atto della richiesta di un nuovo account, venga riempito un ulteriore campo, con il valore di un gettone di autorizzazione, che può essere distributo con altri mezzi, a coloro che si intendono far partecipare alla sperimentazione. Questo ha richiesto le seguenti modifiche al codice PHP:
  • in registration.tpl, si inserisce il codice
<tr>
<td><label for="codice">{$lang_str.ff_codice}:</label></td>
<td>{$form.codice}</td>
</tr>
<tr>
<td> </td>
<td><div -->class="swRegFormDesc">{$lang_str.reg_codice_desc}</div></td>
</tr>
  • in apu_registration.php si inserisce il codice per il nuovo campo
$this->f->add_element(array("type" => "text",
"name" => "codice",
"size" => 10,
"maxlength"=> 10,
"pass" => 1,
"value"=> "",
"extrahtml"=> "style='width:250px;'"));

mentre nella funzione validate_form si inserisce il controllo del valore del gettone:
if ($_POST['codice'] != "metti qui il gettone desiderato") {
$errors[]=$lang_str['fe_invalid_token']; return false;}
  • in italiano-utf-8.php, si inseriscono le scritte di contorno al nuovo campo
$lang_str['ff_codice'] = "gettone di autorizzazione";
$lang_str['reg_codice_desc'] = "Inserisci qui sopra il gettone di autorizzazione che
ti e' stato comunicato. Puoi richiederlo scrivendo al DevTeam.";

Si aggiunge poi un nuovo messaggio di errore, per il caso di gettone di autorizzazione non valido:
$lang_str['fe_invalid_token'] = "Gettone di autorizzazione non valido";

Le due soluzioni possono coesistere in forma alternativa, ma per ora è valida solo la seconda, mentre l'ammissione per tutti i possessori di una email *.uniroma1.it sarà attivata qualora il servizio venga effettivamente adottato dall'ateneo.

Inserimento di un footer comune e rimozione delle linguette non usate

Si e' provveduto ad inserire un footer comune (logo Sapientel)a tutte le pagine, modificando il file /template/_tail.tpl e inserendo il codice:

<p><a href="http://smile.ing.uniroma1.it/sapientel"><img border=0 src="percorso_immagine"</a></p>

Come ilustrato sopra, Serweb richiede una versione MySql >=4, in quanto fa uso di UNIONS. Usando invece la versione 3, si è scelto di non visualizzare i tab "missed calls" e "accounting", disabilitandoli nel file config.php

Links alla documentazione

La documentazione più aggiornata probabilmente si trova presso il CVS, e qui linkiamo quella presente nella distribuzione:




Pagine che puntano a questa: