PersonalizzazioneDiSerWeb
SerWeb è una applicazione PHP usata per creare ed amministrare gli account Sapientel.
Una volta risolti alcuni problemi legati alla suo corretto funzionamento, si può procedere alla sua integrazione completa con Sapientel
- localizzando i testi per la lingua italiana
- inserendo un footer che rimandi al wiki di SapienTel.
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, modificando il codice PHP di serweb, intervenendo sui file:
- function.php. Si inserisce la variabile
$reg_validate_email_uniroma1 = "^[^@]+@[^,;@ ]*uniroma1\.it$"
nell'intestazione, e poi$reg_validate_email_uniroma1
e$this->uniroma1 = $reg_validate_email_uniroma1
nella funzioneCreg()
- 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 la modifica del codice PHP di serweb, intervenendo sui file :
- 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>
- 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;'"));
validate_form
:if ($_POST['codice'] != "*********") { $errors[]=$lang_str['fe_invalid_token']; return false;}
- 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.
Semplificazione
Noto inoltre che il SerWeb in uso a Ekiga è molto più scarno, ma servono tutte le opzioni che forniamo noi ? E poi.. perché mi continua dire "DB Error: no such table" ?
Pagine che puntano a questa: