Changeset 530

Show
Ignore:
Timestamp:
04/01/05 16:38:25 (8 years ago)
Author:
fproulx
Message:

2005-04-01 Francois Proulx <francois.proulx@…>

  • EVERYTHING IS NOW UTF-8 YOU MUST EDIT YOUR FILES WITH AN UTF-8 COMPLIANT EDITOR
  • The database will be converted to UTF-8 (version 5)
  • Added select boxes ( or hidden ) html form elements to choose the network for signup, lost password, username
Location:
trunk/wifidog-auth
Files:
30 modified

Legend:

Unmodified
Added
Removed
  • trunk/wifidog-auth/ChangeLog

    r528 r530  
    1 2005-04-01 Benoit Gr�goire  <bock@step.polymtl.ca> 
     12005-04-01 Francois Proulx  <francois.proulx@gmail.com> 
     2        * EVERYTHING IS NOW UTF-8 YOU MUST EDIT YOUR FILES WITH AN UTF-8 COMPLIANT EDITOR 
     3        * The database will be converted to UTF-8 (version 5) 
     4        * Added select boxes ( or hidden ) html form elements to choose the network for signup, lost password, username 
     5         
     62005-04-01 Benoit Grégoire  <bock@step.polymtl.ca> 
    27        * Add constraints to account_origin to detect errors on inserts. 
    38        * Remove IDRC test server 
     
    813        * Removed spaces in AuthenticatorLocalUser.php 
    914         
    10 2005-03-31 Benoit Grgoire  <bock@step.polymtl.ca> 
     152005-03-31 Benoit Grégoire  <bock@step.polymtl.ca> 
    1116        * Remove spaces after php blocks in various files. 
    1217        * Temporarily fix single authentication source not present bug in login smarty template.  All other places where we select the network will be fixed tommorow. 
    1318        * Fix initial schema errors. 
    1419         
    15 2005-03-31 Benoit Grgoire  <bock@step.polymtl.ca> 
     202005-03-31 Benoit Grégoire  <bock@step.polymtl.ca> 
    1621        * More RADIUS install documentation. 
    1722        * Fix schema_validate.php 
     
    2732        * Added PEAR install procedure 
    2833         
    29 2005-03-30 Franois Proulx  <francois.proulx@gmail.com> 
     342005-03-30 François Proulx  <francois.proulx@gmail.com> 
    3035        * Finished RADIUS authentication and accounting 
    3136        * Accounting Unique session ID is now based on the same token we use 
     
    3742        * A few examples on how set different RADIUS or local authenticators can be found in the config.php 
    3843         
    39 2005-03-29 Franois Proulx  <francois.proulx@gmail.com> 
     442005-03-29 François Proulx  <francois.proulx@gmail.com> 
    4045        * schema_validate.php : Modified schema : dropped e-mail + account unique index, dropped email not empty constraint 
    4146        * Schema is now at version 3 
     
    4853        * TODO : Heavy testing possibly with remote RADIUS servers 
    4954         
    50 2005-03-28 Benoit Grgoire  <bock@step.polymtl.ca> 
     552005-03-28 Benoit Grégoire  <bock@step.polymtl.ca> 
    5156        * sql:  Put initial data in a transaction, and specify the wifidog user so you do not have to su to it while using sync_sql_for_svs 
    5257         
    53 2005-03-28 Benoit Grgoire  <bock@step.polymtl.ca> 
     582005-03-28 Benoit Grégoire  <bock@step.polymtl.ca> 
    5459        * common.php:  Add get_guid() function 
    5560        * validate_schema.php: New auto-upgrade script to allow autaumatic schema upgrade.  Note that you must still update dump_initial_data_postgres.sh and use sync_sql_for_cvs.sh so new users aren't left in the cold. 
    5661        * New class Authenticator (and subclasses):  Begin virtualizing the login process. 
    5762          
    58 2005-03-24 Benoit Grgoire  <bock@step.polymtl.ca> 
     632005-03-24 Benoit Grégoire  <bock@step.polymtl.ca> 
    5964        * Statistics.php: Fix getMostGreedyUsers returning bad values when incoming and outgoing for all connections from a user have null values.  
    6065        * wifidog/local_content/default/portal.html: Fix layout so it resizes properly.  This in an interim measure. 
     
    7479 * ./classes/RssPressReview.inc: if rss_source['url'] is blank, ignore the feed. 
    7580  
    76 2005-02-22 Benoit Grgoire  <bock@step.polymtl.ca> 
     812005-02-22 Benoit Grégoire  <bock@step.polymtl.ca> 
    7782        * sql/dump_initial_data_postgres.sh, wifidog-postgres-initial-data.sql, wifidog-postgres-schema.sql:-Widen the connections size to fix int4 wraparound problems.  To update a running server, execute the following sql sniplet:  
    7883BEGIN; 
     
    8691COMMIT; 
    8792        * wifidog/admin/hotspot.php: Missing file from phil's commit. 
    88         * wifidog/locale/fr/LC_MESSAGES/messages.mo, messages.po:  New translation by Benoit St-Andr 
     93        * wifidog/locale/fr/LC_MESSAGES/messages.mo, messages.po:  New translation by Benoit St-André 
    8994 
    90952005-02-14 Philippe April <philippe@ilesansfil.org> 
     
    98103        * Updated TODO with ideas on making config better 
    99104 
    100 2005-01-31 Benoit Grgoire  <bock@step.polymtl.ca> 
     1052005-01-31 Benoit Grégoire  <bock@step.polymtl.ca> 
    101106        * wifidog/templates/hotspot_status.html:  Restore the number of nodes 
    102107        * wifidog/hotspot_status.php: Restore the number of nodes, add formatting and more information to the RSS feed. 
     
    108113        * Remove mgmt_helpers (all done in User class now) 
    109114 
    110 2005-01-25 Benoit Grgoire  <bock@step.polymtl.ca> 
     1152005-01-25 Benoit Grégoire  <bock@step.polymtl.ca> 
    111116        * classes/Node.php:  New file, untested code example 
    112117        * wifidog/admin/admin_common.php: Remove double-defined BASEPATH 
     
    130135        * i18n and smarty'ized parts 
    131136 
    132 2005-01-11 Benoit Grgoire  <bock@step.polymtl.ca> 
     1372005-01-11 Benoit Grégoire  <bock@step.polymtl.ca> 
    133138        * INSTALL: Mandate PHP5 
    134139        * wifidog/hotspot_status.php: Allow export of the list as a RSS feed 
     
    137142        * wifidog/templates/hotspot_status.html:  Add link to the RSS version. 
    138143 
    139 2005-01-11 Benoit Grgoire  <bock@step.polymtl.ca> 
     1442005-01-11 Benoit Grégoire  <bock@step.polymtl.ca> 
    140145        * wifidog/config.php:  Add list of hotspot to network rss feed list (not yet functionnal) 
    141146        * wifidog/hotspot_status.php:  Allow RSS export of the list of deployed HotSpots. 
     
    144149        * wifidog/portal/index.php: Preliminary work to enable smart press review of multiple RSS feeds. 
    145150 
    146 2005-01-10 Benoit Grgoire  <bock@step.polymtl.ca> 
     1512005-01-10 Benoit Grégoire  <bock@step.polymtl.ca> 
    147152        * include/common.php: Fix SSL security warnings.  If SSL is enabled and the page was actually served over SSL, all media in the file will be served over SSL. Add a new define (BASE_NON_SSL_PATH) to allow us to make links that break out of SSL mode.  From now on, use the self adapting BASE_URL_PATH in most circumstance, BASE_SSL_PATH to enter SSL mode, and BASE_URL_PATH to break out of it. 
    148153 
    149 2005-01-10 Benoit Grgoire  <bock@step.polymtl.ca> 
     1542005-01-10 Benoit Grégoire  <bock@step.polymtl.ca> 
    150155        * admin/user_stats.php: Add three top tens to the statistics:  Top ten apetite for bandwidth, top ten travelers, most addicted users. 
    151156 
    152 2005-01-04 Benoit Grgoire  <bock@step.polymtl.ca> 
     1572005-01-04 Benoit Grégoire  <bock@step.polymtl.ca> 
    153158        * wifidog/local_content/default/hotspot_logo_banner.jpg: Make it much thinner. 
    154159        * wifidog/local_content/default/login.html: Remove announcements 
     
    159164        * wifidog/index.php: Make the distinction between the two hotspot status pages clearer. 
    160165 
    161 2004-12-08 Benoit Grgoire  <bock@step.polymtl.ca> 
     1662004-12-08 Benoit Grégoire  <bock@step.polymtl.ca> 
    162167        * wifidog/index.php: Add menu 
    163168        * wifidog/include/user_management_menu.php: Editorial change, make translateable 
    164169        * wifidog/portal/index.php:  Fix RSS feeds 
    165170 
    166 2004-12-03 Benoit Grgoire  <bock@step.polymtl.ca> 
     1712004-12-03 Benoit Grégoire  <bock@step.polymtl.ca> 
    167172        * wifidog/admin/user_stats.php,  wifidog/classes/Statistics.php:  Embryonic aggregate user stats.  Currently allows you to find out the rate at which your users subscribe. 
    168173        * wifidog/config.php, wifidog/local_content/default/login.html, wifidog/include/user_management_menu.php:  Add hotspot status page to login page. 
     
    171176        * wifidog/index.php: Cosmetic. 
    172177 
    173 2004-11-19 Benoit Grgoire  <bock@step.polymtl.ca> 
     1782004-11-19 Benoit Grégoire  <bock@step.polymtl.ca> 
    174179        * TODO: Add email domains to blacklist 
    175180        * wifidog/config.php, wifidog/include/user_management_menu.php: Add tech support email address 
     
    181186        * sql/wifidog-postgres-initial-data.sql, wifidog-postgres-schema.sql: Update with new node information structures. 
    182187 
    183 2004-11-04 Benoit Grgoire  <bock@step.polymtl.ca> 
     1882004-11-04 Benoit Grégoire  <bock@step.polymtl.ca> 
    184189        * wifidog/admin/hotspot_log.php: Add number of currently connected users here as well. 
    185190 
    186 2004-11-03 Benoit Grgoire  <bock@step.polymtl.ca> 
     1912004-11-03 Benoit Grégoire  <bock@step.polymtl.ca> 
    187192        * wifidog/ping/index.php: Log user-agent 
    188193        * extensive statistics work 
    189194        * sql/wifidog-postgres-schema.sql: Add description field for hotspots and log user-agent 
    190195 
    191 2004-10-28 Benoit Grgoire  <bock@step.polymtl.ca> 
     1962004-10-28 Benoit Grégoire  <bock@step.polymtl.ca> 
    192197        * sql/wifidog-postgres-schema.sql:  Add constraints to avoid empty string in email or user_id. 
    193198        * Some statistics fixes 
     
    198203        mainly a missing ' in some HTML. 
    199204 
    200 2004-09-28 Yanik Crpeau <yanik@exScriptis.com> 
     2052004-09-28 Yanik Crépeau <yanik@exScriptis.com> 
    201206        * wifidog/include/common.php: Added commented header with cvs 
    202207        keywords. 
     
    204209        further testing with language/localization issues.  
    205210 
    206 2004-09-27 Benoit Grgoire  <bock@step.polymtl.ca> 
     2112004-09-27 Benoit Grégoire  <bock@step.polymtl.ca> 
    207212        * sql/wifidog-postgres-schema.sql:  Remove non SQL standard "COMMENT ON" comments 
    208213 
    209 2004-09-27 Benoit Grgoire  <bock@step.polymtl.ca> 
     2142004-09-27 Benoit Grégoire  <bock@step.polymtl.ca> 
    210215        * sql/wifidog-postgres-schema.sql:  Drop procedural language stuff 
    211216 
    212 2004-09-27 Benoit Grgoire  <bock@step.polymtl.ca> 
     2172004-09-27 Benoit Grégoire  <bock@step.polymtl.ca> 
    213218        * sql/wifidog-postgres-schema.sql:  Fix layout for the node_owners table 
    214219        * Begin integrating Patrick Tanguay's new layout and generate the css dynamically to allow for background images. 
    215220 
    216 2004-09-22 Benoit Grgoire  <bock@step.polymtl.ca> 
     2212004-09-22 Benoit Grégoire  <bock@step.polymtl.ca> 
    217222        * portal/index.php:  Fix users appearing online at every hotspot. 
    218223        * wifidog/classes/Style.php, wifidog/login/index.php:  Fix some potential cache problems and help with validation. 
    219224         
    220 2004-09-18 Benoit Grgoire  <bock@step.polymtl.ca> 
     2252004-09-18 Benoit Grégoire  <bock@step.polymtl.ca> 
    221226        * wifidog/config.php:  Add VALIDATION_GRACE_TIME configuration parameter. 
    222227        * wifidog/auth/index.php:  Move grace time date arithmetics to the database, fixes validation period not working.  Stop storing VALIDATION_FAILES status to the database.  Add check for validation period expiration at stage login, not just stage counters, this will fix one minute validation period.  
     
    224229        * wifidog/user_management/index.php:  Fix SQL error at new user registration.   
    225230         
    226 2004-09-02 Benoit Grgoire  <bock@step.polymtl.ca> 
     2312004-09-02 Benoit Grégoire  <bock@step.polymtl.ca> 
    227232        * wifidog/node_list.php: Complete the status page 
    228233        * Add images 
    229234        * Add hotspot creation date 
    230235         
    231 2004-08-31 Benoit Grgoire  <bock@step.polymtl.ca> 
     2362004-08-31 Benoit Grégoire  <bock@step.polymtl.ca> 
    232237        * sql/: Update the postgres schemas and add scripts to ease maintaining it. 
    233238        * sql/sync_sql_for_cvs.sh: Should you modify the schema in your db, run this script to the chances will be available in the cvs schemas and initial data. 
     
    235240        * INSTALL:  Update for postgres.  Somebody please test this. 
    236241 
    237 2004-08-31 Benoit Grgoire  <bock@step.polymtl.ca> 
     2422004-08-31 Benoit Grégoire  <bock@step.polymtl.ca> 
    238243        * wifidog/ping/index.php: Implement logging of which hotspot sent the heartbeat, from which ip and when. 
    239244        * wifidog/node_list.php:  Primitive but functionnal hotspot status page. 
     
    243248        * wifidog/user_management/index.php:  Display the menu, will eventually allow us to present proper help text. 
    244249 
    245 2004-08-30 Benoit Grgoire  <bock@step.polymtl.ca> 
     2502004-08-30 Benoit Grégoire  <bock@step.polymtl.ca> 
    246251        * Add link to original requested site. 
    247252        * wifidog/node_list.php:  New file.  Will become the main node status page. 
    248253 
    249 2004-08-28 Benoit Grgoire  <bock@step.polymtl.ca> 
     2542004-08-28 Benoit Grégoire  <bock@step.polymtl.ca> 
    250255        * Primitive network status available form the index page 
    251256        * Administrative security is implemented. 
    252257 
    253 2004-08-28 Benoit Grgoire  <bock@step.polymtl.ca> 
     2582004-08-28 Benoit Grégoire  <bock@step.polymtl.ca> 
    254259        * Fix big gaping security hole in login page (password would be ignored if the username was used to login) 
    255260        * PostgreSql port 
     
    261266        * wifidog/auth/index.php:   Fix code injection vulnerability. 
    262267         
    263 2004-08-27 Benoit Grgoire  <bock@step.polymtl.ca> 
     2682004-08-27 Benoit Grégoire  <bock@step.polymtl.ca> 
    264269        * SSL support and RSS improvement 
    265270        * Last commit tested with mysql support 
     
    269274        * Replace all SERVER_NAME by HTTP_HOST to fix non-standard server ports 
    270275 
    271 2004-08-11 Benoit Grgoire  <bock@step.polymtl.ca> 
     2762004-08-11 Benoit Grégoire  <bock@step.polymtl.ca> 
    272277        * wifidog/config.php: Add USER_MANAGEMENT_PAGE 
    273278        * wifidog/include/user_management_menu.php:  Code meant to deal with non-standard ports broke the menu.  Hopefully fixed. 
     
    277282        * wifidog/ping/index.php: will now reply if the wifidog auth server is up. to be used by wifidog to do heartbeats. 
    278283 
    279 2004-08-07 Benoit Grgoire  <bock@step.polymtl.ca> 
     2842004-08-07 Benoit Grégoire  <bock@step.polymtl.ca> 
    280285        * Add code to import a NoCat user database (passwd).  The username will be generated from the first part of the email if the name was en email. 
    281286        * Change password hashing algorithm to make it compatible with NoCat (For the curious among you, the hashing algorithm is now:  take the md5 digest in binary format of the password, and base64 encode it. 
     
    288293        * wifidog/config.php: Add SYSTEM_PATH and test/fix non-standard server ports 
    289294 
    290 2004-08-03 Benoit Grgoire  <bock@step.polymtl.ca> 
     2952004-08-03 Benoit Grégoire  <bock@step.polymtl.ca> 
    291296        * Make gettext support optionnal, and define GETTEXT_AVAILABLE, will be set to true if gettext is available.  If false, blank _() and gettext() functions will be defined so the system still works. 
    292297 
    293 2004-08-03 Benoit Grgoire  <bock@step.polymtl.ca> 
     2982004-08-03 Benoit Grégoire  <bock@step.polymtl.ca> 
    294299        * Fix BASE_URL_PATH to properly detect non-standard server ports (hopefully). 
    295300 
    296 2004-08-02 Benoit Grgoire  <bock@step.polymtl.ca> 
     3012004-08-02 Benoit Grégoire  <bock@step.polymtl.ca> 
    297302        * wifidog-auth lives! New since the dark ages 
    298303        * Demo page to allow people to hack more easely on it 
  • trunk/wifidog-auth/INSTALL

    r523 r530  
    4141php5-devel 
    4242php5-xml 
    43 php5-xmlrpc ---> d�pend de libxmlrpc 
     43php5-xmlrpc ---> depends on libxmlrpc 
    4444php5-mhash  
    4545php5-mcrypt 
  • trunk/wifidog-auth/sql/dump_initial_data_postgres.sh

    r523 r530  
    22echo "\connect wifidog;" 
    33echo "BEGIN;" 
    4  
    5 echo "--- The default admin user, delete or change password as soon as possible.  The password is admin " 
    6 echo "INSERT INTO users (user_id, username, pass, email, account_status, validation_token) VALUES ('admin_original_user_delete_me', 'admin', 'ISMvKXpXpadDiUoOSoAfww==', 'test_user_please@delete.me', 1, 'df16cc4b1d0975e267f3425eaac31950');"; 
    7  
    8 echo "INSERT INTO administrators (user_id) VALUES ('admin_original_user_delete_me');" 
    94 
    105pg_dump -a -D --username=wifidog -t token_status 
  • trunk/wifidog-auth/sql/wifidog-postgres-initial-data.sql

    r529 r530  
    11\connect wifidog; 
    22BEGIN; 
    3 --- The default admin user, delete or change password as soon as possible.  The password is admin  
    4 INSERT INTO users (user_id, username, pass, email, account_status, validation_token) VALUES ('admin_original_user_delete_me', 'admin', 'ISMvKXpXpadDiUoOSoAfww==', 'test_user_please@delete.me', 1, 'df16cc4b1d0975e267f3425eaac31950'); 
    5 INSERT INTO administrators (user_id) VALUES ('admin_original_user_delete_me'); 
    63-- 
    74-- PostgreSQL database dump 
     
    1613 
    1714-- 
    18 -- Data for TOC entry 2 (OID 157593) 
     15-- Data for TOC entry 2 (OID 144784) 
    1916-- Name: token_status; Type: TABLE DATA; Schema: public; Owner: wifidog 
    2017-- 
     
    3734 
    3835-- 
    39 -- Data for TOC entry 2 (OID 157627) 
     36-- Data for TOC entry 2 (OID 144818) 
    4037-- Name: venue_types; Type: TABLE DATA; Schema: public; Owner: wifidog 
    4138-- 
     
    8986 
    9087-- 
    91 -- Data for TOC entry 2 (OID 157625) 
     88-- Data for TOC entry 2 (OID 144816) 
    9289-- Name: node_deployment_status; Type: TABLE DATA; Schema: public; Owner: wifidog 
    9390-- 
     
    114111 
    115112-- 
    116 -- Data for TOC entry 2 (OID 157637) 
     113-- Data for TOC entry 2 (OID 144828) 
    117114-- Name: schema_info; Type: TABLE DATA; Schema: public; Owner: wifidog 
    118115-- 
    119116 
    120 INSERT INTO schema_info (tag, value) VALUES ('schema_version', '3'); 
     117INSERT INTO schema_info (tag, value) VALUES ('schema_version', '5'); 
    121118 
    122119 
  • trunk/wifidog-auth/sql/wifidog-postgres-schema.sql

    r529 r530  
    2222 
    2323-- 
    24 -- TOC entry 5 (OID 157590) 
     24-- TOC entry 5 (OID 144781) 
    2525-- Name: administrators; Type: TABLE; Schema: public; Owner: wifidog 
    2626-- 
     
    3232 
    3333-- 
    34 -- TOC entry 6 (OID 157593) 
     34-- TOC entry 6 (OID 144784) 
    3535-- Name: token_status; Type: TABLE; Schema: public; Owner: wifidog 
    3636-- 
     
    4242 
    4343-- 
    44 -- TOC entry 7 (OID 157597) 
     44-- TOC entry 7 (OID 144788) 
    4545-- Name: connections; Type: TABLE; Schema: public; Owner: wifidog 
    4646-- 
     
    6464 
    6565-- 
    66 -- TOC entry 8 (OID 157603) 
     66-- TOC entry 8 (OID 144794) 
    6767-- Name: nodes; Type: TABLE; Schema: public; Owner: wifidog 
    6868-- 
     
    8989 
    9090-- 
    91 -- TOC entry 9 (OID 157613) 
     91-- TOC entry 9 (OID 144804) 
    9292-- Name: users; Type: TABLE; Schema: public; Owner: wifidog 
    9393-- 
     
    108108 
    109109-- 
    110 -- TOC entry 10 (OID 157623) 
     110-- TOC entry 10 (OID 144814) 
    111111-- Name: node_owners; Type: TABLE; Schema: public; Owner: wifidog 
    112112-- 
     
    119119 
    120120-- 
    121 -- TOC entry 11 (OID 157625) 
     121-- TOC entry 11 (OID 144816) 
    122122-- Name: node_deployment_status; Type: TABLE; Schema: public; Owner: wifidog 
    123123-- 
     
    129129 
    130130-- 
    131 -- TOC entry 12 (OID 157627) 
     131-- TOC entry 12 (OID 144818) 
    132132-- Name: venue_types; Type: TABLE; Schema: public; Owner: wifidog 
    133133-- 
     
    139139 
    140140-- 
    141 -- TOC entry 13 (OID 157632) 
     141-- TOC entry 13 (OID 144823) 
    142142-- Name: venues; Type: TABLE; Schema: public; Owner: wifidog 
    143143-- 
     
    150150 
    151151-- 
    152 -- TOC entry 14 (OID 157637) 
     152-- TOC entry 14 (OID 144828) 
    153153-- Name: schema_info; Type: TABLE; Schema: public; Owner: wifidog 
    154154-- 
     
    161161 
    162162-- 
    163 -- TOC entry 18 (OID 174755) 
     163-- TOC entry 18 (OID 144841) 
    164164-- Name: idx_token; Type: INDEX; Schema: public; Owner: wifidog 
    165165-- 
     
    169169 
    170170-- 
    171 -- TOC entry 19 (OID 174756) 
     171-- TOC entry 19 (OID 144842) 
    172172-- Name: idx_token_status_and_user_id; Type: INDEX; Schema: public; Owner: wifidog 
    173173-- 
     
    177177 
    178178-- 
    179 -- TOC entry 21 (OID 174757) 
     179-- TOC entry 21 (OID 144843) 
    180180-- Name: idx_unique_username_and_account_origin; Type: INDEX; Schema: public; Owner: wifidog 
    181181-- 
     
    185185 
    186186-- 
    187 -- TOC entry 15 (OID 174758) 
     187-- TOC entry 15 (OID 144844) 
    188188-- Name: administrators_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    189189-- 
     
    194194 
    195195-- 
    196 -- TOC entry 16 (OID 174760) 
     196-- TOC entry 16 (OID 144846) 
    197197-- Name: token_status_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    198198-- 
     
    203203 
    204204-- 
    205 -- TOC entry 17 (OID 174762) 
     205-- TOC entry 17 (OID 144848) 
    206206-- Name: connections_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    207207-- 
     
    212212 
    213213-- 
    214 -- TOC entry 20 (OID 174764) 
     214-- TOC entry 20 (OID 144850) 
    215215-- Name: nodes_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    216216-- 
     
    221221 
    222222-- 
    223 -- TOC entry 22 (OID 174766) 
     223-- TOC entry 22 (OID 144852) 
    224224-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    225225-- 
     
    230230 
    231231-- 
    232 -- TOC entry 23 (OID 174768) 
     232-- TOC entry 23 (OID 144854) 
    233233-- Name: node_owners_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    234234-- 
     
    239239 
    240240-- 
    241 -- TOC entry 24 (OID 174770) 
     241-- TOC entry 24 (OID 144856) 
    242242-- Name: node_deployment_status_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    243243-- 
     
    248248 
    249249-- 
    250 -- TOC entry 25 (OID 174772) 
     250-- TOC entry 25 (OID 144858) 
    251251-- Name: venue_types_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    252252-- 
     
    257257 
    258258-- 
    259 -- TOC entry 26 (OID 174774) 
     259-- TOC entry 26 (OID 144860) 
    260260-- Name: schema_info_pkey; Type: CONSTRAINT; Schema: public; Owner: wifidog 
    261261-- 
     
    266266 
    267267-- 
    268 -- TOC entry 28 (OID 174776) 
     268-- TOC entry 28 (OID 144862) 
    269269-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    270270-- 
     
    275275 
    276276-- 
    277 -- TOC entry 27 (OID 174780) 
     277-- TOC entry 27 (OID 144866) 
    278278-- Name: administrators_ibfk_1; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    279279-- 
     
    284284 
    285285-- 
    286 -- TOC entry 29 (OID 174784) 
     286-- TOC entry 29 (OID 144870) 
    287287-- Name: fk_users; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    288288-- 
     
    293293 
    294294-- 
    295 -- TOC entry 30 (OID 174788) 
     295-- TOC entry 30 (OID 144874) 
    296296-- Name: fk_nodes; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    297297-- 
     
    302302 
    303303-- 
    304 -- TOC entry 33 (OID 174792) 
     304-- TOC entry 33 (OID 144878) 
    305305-- Name: fk_users; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    306306-- 
     
    311311 
    312312-- 
    313 -- TOC entry 34 (OID 174796) 
     313-- TOC entry 34 (OID 144882) 
    314314-- Name: fk_nodes; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    315315-- 
     
    320320 
    321321-- 
    322 -- TOC entry 31 (OID 174800) 
     322-- TOC entry 31 (OID 144886) 
    323323-- Name: fk_node_deployment_status; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    324324-- 
     
    329329 
    330330-- 
    331 -- TOC entry 32 (OID 174804) 
     331-- TOC entry 32 (OID 144890) 
    332332-- Name: fk_venue_types; Type: FK CONSTRAINT; Schema: public; Owner: wifidog 
    333333-- 
  • trunk/wifidog-auth/wifidog/change_password.php

    r517 r530  
    2222  /**@file 
    2323   * Login page 
    24    * @author Copyright (C) 2004 Benoit Grgoire et Philippe April 
     24   * @author Copyright (C) 2004 Benoit Grégoire et Philippe April 
    2525   */ 
    2626define('BASEPATH','./'); 
     
    3333if (isset($_REQUEST["submit"])) { 
    3434    try { 
    35         if (!$_REQUEST["username"] || !$_REQUEST["oldpassword"] || !$_REQUEST["newpassword"] || !$_REQUEST["newpassword_again"]) 
     35        // If the source is present and that it's in our AUTH_SOURCE_ARRAY, save it to a var for later use 
     36                $_REQUEST['auth_source'] && in_array($_REQUEST['auth_source'], array_keys($AUTH_SOURCE_ARRAY)) && $account_origin = $_REQUEST['auth_source']; 
     37                 
     38        if (!$account_origin || !$_REQUEST["username"] || !$_REQUEST["oldpassword"] || !$_REQUEST["newpassword"] || !$_REQUEST["newpassword_again"]) 
    3639            throw new Exception(_('You MUST fill in all the fields.')); 
    3740        $username = $db->EscapeString(trim($_REQUEST['username'])); 
     
    3942        $new_password = $db->EscapeString(trim($_REQUEST['newpassword'])); 
    4043 
     44                if(empty($account_origin)) 
     45                        throw new Exception(_("Sorry, this network does not exist !")); 
     46                                 
    4147        if ($_REQUEST["newpassword"] != $_REQUEST["newpassword_again"]) 
    4248            throw new Exception(_("Passwords do not match.")); 
    4349 
    4450        // Warning for now, password change only works for local users, registered through our signup process. 
    45         $user = User::getUserByUsernameAndOrigin($username, LOCAL_USER_ACCOUNT_ORIGIN); 
    46         if ($user->getPasswordHash() != User::passwordHash($current_password)) 
     51        $user = User::getUserByUsernameAndOrigin($username, $account_origin); 
     52        /** 
     53         * utf8_decode is used for backward compatibility with old passwords 
     54         * containing special characters.  
     55         * Conversion from UTF-8 to ISO-8859-1 is done to match the MD5 hash  
     56         */ 
     57        if ($user->getPasswordHash() != User::passwordHash(utf8_decode($current_password))) 
    4758            throw new Exception(_("Wrong password.")); 
    4859 
     
    5566    } 
    5667} 
     68 
     69// Add the auth servers list to smarty variables 
     70$sources = array (); 
     71// Preserve keys 
     72foreach (array_keys($AUTH_SOURCE_ARRAY) as $auth_source_key) 
     73        if ($AUTH_SOURCE_ARRAY[$auth_source_key]['authenticator']->isRegistrationPermitted()) 
     74                $sources[$auth_source_key] = $AUTH_SOURCE_ARRAY[$auth_source_key]; 
     75                 
     76isset ($sources) && $smarty->assign('auth_sources', $sources); 
     77// Pass the account_origin along, if it's set 
     78isset ($_REQUEST["auth_source"]) && $smarty->assign('selected_auth_source', $_REQUEST["auth_source"]); 
     79 
    5780$smarty->display("templates/change_password.html"); 
    5881?> 
  • trunk/wifidog-auth/wifidog/classes/Authenticator.php

    r523 r530  
    2020 \********************************************************************/ 
    2121/**@file Authenticator.php 
    22  * @author Copyright (C) 2005 Benoit Grgoire <bock@step.polymtl.ca>, 
     22 * @author Copyright (C) 2005 Benoit Grégoire <bock@step.polymtl.ca>, 
    2323 * Technologies Coeus inc. 
    2424 */ 
     
    8484                $db->ExecSqlUpdate("UPDATE connections SET "."timestamp_out=NOW(),"."token_status='".TOKEN_USED."' "."WHERE conn_id='{$info['conn_id']}';\n"); 
    8585        } 
     86         
     87        /** 
     88         * Property method that tells if the class allows registration 
     89         */ 
     90        function isRegistrationPermitted() 
     91        { 
     92                return false; 
     93        } 
    8694 
    8795} // End class 
  • trunk/wifidog-auth/wifidog/classes/AuthenticatorLocalUser.php

    r527 r530  
    2222 \********************************************************************/ 
    2323/**@file AuthenticatorLocalUser.php 
    24  * @author Copyright (C) 2005 Benoit Grgoire <bock@step.polymtl.ca>, 
     24 * @author Copyright (C) 2005 Benoit Grégoire <bock@step.polymtl.ca>, 
    2525 * Technologies Coeus inc. 
    2626 */ 
     
    7171                $username = $db->EscapeString($username); 
    7272                $password = $db->EscapeString($password); 
    73                 $password_hash = User :: passwordHash($_REQUEST['password']); 
     73                /** 
     74         * utf8_decode is used for backward compatibility with old passwords 
     75         * containing special characters.  
     76         * Conversion from UTF-8 to ISO-8859-1 is done to match the MD5 hash 
     77         */ 
     78                $password_hash = User :: passwordHash(utf8_decode($_REQUEST['password'])); 
    7479 
    7580                $sql = "SELECT user_id FROM users WHERE (username='$username' OR email='$username') AND account_origin='".$this->getAccountOrigin()."' AND pass='$password_hash'"; 
     
    137142                return true; 
    138143        } 
     144         
     145        function isRegistrationPermitted() 
     146        { 
     147                return true; 
     148        } 
    139149 
    140150} // End class 
  • trunk/wifidog-auth/wifidog/classes/AuthenticatorRadius.php

    r523 r530  
    2020 \********************************************************************/ 
    2121/**@file AuthenticatorRadius.php 
    22  * @author Copyright (C) 2005 Benoit Grgoire <bock@step.polymtl.ca>, Technologies Coeus inc. 
    23 * @author Copyright (C) 2005 Franois Proulx <francois.proulx@gmail.com>,Technologies Coeus inc. 
     22 * @author Copyright (C) 2005 Benoit Grégoire <bock@step.polymtl.ca>, Technologies Coeus inc. 
     23* @author Copyright (C) 2005 François Proulx <francois.proulx@gmail.com>,Technologies Coeus inc. 
    2424* */ 
    2525 
     
    8282                $password = $db->EscapeString($password); 
    8383                // Local database password hashing is based on an empty string ( we do not store remote passwords ) 
     84                /** 
     85                 * Backward compatibility conversion is not needed since the password is 
     86                 * blank ( we do not keep RADIUS passwords 
     87                 */ 
    8488                $password_hash = User :: passwordHash(""); 
    8589 
  • trunk/wifidog-auth/wifidog/classes/Style.php

    r317 r530  
    2626Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); # Past date 
    2727Header("Pragma: no-cache"); 
    28 Header("Content-Type: text/html; charset=iso-8859-1"); 
     28Header("Content-Type: text/html; charset=utf-8"); 
    2929require_once BASEPATH.'include/common.php'; 
    3030require_once BASEPATH.'classes/SmartyWifidog.php'; 
     
    6565 
    6666  /**Affiche le pied de page HTML 
    67    * @return string chaine à afficher dans la page. 
     67   * @return string chaine à afficher dans la page. 
    6868   */ 
    6969  function GetFooter() 
     
    9393 
    9494     $retval.= "<div class='content'>\n"; 
    95      $retval.= "<P>Temps écoulé: $display_timetaken seconde(s) dont $display_sql_percent ($display_sql_total_time seconde(s)) pour les $sql_num_querys requêtes SQL ($sql_num_select_querys select, $sql_num_select_unique_querys select valeur unique, $sql_num_update_querys modifications)</P>\n"; 
     95     $retval.= "<P>Temps écoulé: $display_timetaken seconde(s) dont $display_sql_percent ($display_sql_total_time seconde(s)) pour les $sql_num_querys requêtes SQL ($sql_num_select_querys select, $sql_num_select_unique_querys select valeur unique, $sql_num_update_querys modifications)</P>\n"; 
    9696     $retval.= "</div>\n"; 
    9797    */ 
  • trunk/wifidog-auth/wifidog/classes/User.php

    r524 r530  
    2020 \********************************************************************/ 
    2121/**@file User.php 
    22  * @author Copyright (C) 2005 Benoit Grgoire <bock@step.polymtl.ca> 
     22 * @author Copyright (C) 2005 Benoit Grégoire <bock@step.polymtl.ca> 
    2323 */ 
    2424 
     
    5656                $db->ExecSqlUniqueRes("SELECT user_id FROM users WHERE username = '$username_str' AND account_origin = '$account_origin_str'", $user_info, false); 
    5757 
    58                 $object = new self($user_info['user_id']); 
     58                if($user_info != null) 
     59                        $object = new self($user_info['user_id']); 
     60                return $object; 
     61        } 
     62         
     63        /** Instantiate a user object  
     64         * @param $email The email of the user 
     65         * @param $account_origin The account origin 
     66         * @return a User object, or null if there was an error 
     67         */ 
     68        public static function getUserByEmailAndOrigin($email, $account_origin) 
     69        { 
     70                global $db; 
     71                $object = null; 
     72 
     73                $email_str = $db->EscapeString($email); 
     74                $account_origin_str = $db->EscapeString($account_origin); 
     75                $db->ExecSqlUniqueRes("SELECT user_id FROM users WHERE email = '$email_str' AND account_origin = '$account_origin_str'", $user_info, false); 
     76 
     77                if($user_info != null) 
     78                        $object = new self($user_info['user_id']); 
    5979                return $object; 
    6080        } 
     
    175195                $account_origin_str = $db->EscapeString($account_origin); 
    176196                $email_str = $db->EscapeString($email); 
    177                 $password_hash = $db->EscapeString(User :: passwordHash($password)); 
     197                /** 
     198         * utf8_decode is used for backward compatibility with old passwords 
     199         * containing special characters.  
     200         * Conversion from UTF-8 to ISO-8859-1 is done to match the MD5 hash 
     201         */ 
     202                $password_hash = $db->EscapeString(User :: passwordHash(utf8_decode($password))); 
    178203                $status = ACCOUNT_STATUS_VALIDATION; 
    179204                $token = User :: generateToken(); 
     
    318343        { 
    319344                global $db; 
    320  
    321                 $new_password_hash = User :: passwordHash($password); 
     345                 
     346                $new_password_hash = User :: passwordHash(utf8_decode($password)); 
    322347                if (!($update = $db->ExecSqlUpdate("UPDATE users SET pass='$new_password_hash' WHERE user_id='{$this->mId}'"))) 
    323348                { 
     
    352377                $username = $this->getUsername(); 
    353378                $headers  = 'MIME-Version: 1.0' . "\r\n"; 
    354                 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
     379                $headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n"; 
    355380                $headers .= "From: ".VALIDATION_EMAIL_FROM_ADDRESS; 
    356381                $subject = HOTSPOT_NETWORK_NAME._(" lost username request"); 
    357                 $body = _("Hello,<br>You have requested that the authentication server send you your username:<br>Username: ").$username._("<br><br>Have a nice day,<br>The Team"); 
     382                $body = _("Hello,\nYou have requested that the authentication server send you your username:\nUsername: ").$username._("\n\nHave a nice day,\nThe Team"); 
    358383                 
    359384                mail($this->getEmail(), $subject, $body, $headers); 
     
    375400                        { 
    376401                                $headers  = 'MIME-Version: 1.0' . "\r\n"; 
    377                                 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
     402                                $headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n"; 
    378403                                $headers .= "From: ".VALIDATION_EMAIL_FROM_ADDRESS; 
    379404                                $subject = HOTSPOT_NETWORK_NAME._(" new user validation"); 
    380405                                $url = "http://".$_SERVER["SERVER_NAME"]."/validate.php?user_id=".$this->getId()."&token=".$this->getValidationToken(); 
    381                                 $body = _("Hello,<br>Please follow the link below to validate your account.<br>").$url._("<br><br>Thank you,<br>The Team."); 
     406                                $body = _("Hello,\nPlease follow the link below to validate your account.\n").$url._("\n\nThank you,\nThe Team."); 
    382407                                 
    383408                                mail($this->getEmail(), $subject, $body, $headers); 
     
    395420                 
    396421                $headers  = 'MIME-Version: 1.0' . "\r\n"; 
    397                 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
     422                $headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n"; 
    398423                $headers .= "From: ".VALIDATION_EMAIL_FROM_ADDRESS; 
    399424                $subject = HOTSPOT_NETWORK_NAME._(" new password request"); 
    400                 $body = _("Hello,<br>You have requested that the authentication server send you a new password:<br>Username: ").$username._("<br>Password: ").$new_password._("<br><br>Have a nice day,<br>The Team"); 
     425                $body = _("Hello,\nYou have requested that the authentication server send you a new password:\nUsername: ").$username._("\nPassword: ").$new_password._("\n\nHave a nice day,\nThe Team"); 
    401426                 
    402427                mail($this->getEmail(), $subject, $body, $headers); 
  • trunk/wifidog-auth/wifidog/config.php

    r528 r530  
    77 * 
    88 *     $Log$ 
     9 *     Revision 1.30  2005/04/01 21:38:23  fproulx 
     10 *     2005-04-01 Francois Proulx  <francois.proulx@gmail.com> 
     11 *      * EVERYTHING IS NOW UTF-8 YOU MUST EDIT YOUR FILES WITH AN UTF-8 COMPLIANT EDITOR 
     12 *      * The database will be converted to UTF-8 (version 5) 
     13 *      * Added select boxes ( or hidden ) html form elements to choose the network for signup, lost password, username 
     14 * 
    915 *     Revision 1.29  2005/04/01 20:58:28  benoitg 
    1016 *     2005-04-01 Benoit Gr�goire  <bock@step.polymtl.ca> 
     
    1723 * 
    1824 *     Revision 1.27  2005/04/01 02:05:32  benoitg 
    19  *     2005-03-31 Benoit Grgoire  <bock@step.polymtl.ca> 
     25 *     2005-03-31 Benoit Grégoire  <bock@step.polymtl.ca> 
    2026 *      * Remove spaces after php blocks in various files. 
    2127 *      * Temporarely fix single authentication source not present bug in login smarty template.  All other places where we select the network will be fixed tommorow. 
     
    2329 * 
    2430 *     Revision 1.26  2005/03/31 18:35:23  benoitg 
    25  *     2005-03-31 Benoit Grgoire  <bock@step.polymtl.ca> 
     31 *     2005-03-31 Benoit Grégoire  <bock@step.polymtl.ca> 
    2632 *      * More RADIUS install documentation. 
    2733 *      * Fix schema_validate.php 
     
    137143/**< Set this to true if your server has SSL available, otherwise, passwords will be transmitted in clear text over the air */ 
    138144define('SSL_AVAILABLE', true);  
    139 define('HOTSPOT_NETWORK_NAME', 'le sans fil'); 
     145define('HOTSPOT_NETWORK_NAME', 'Île sans fil'); 
    140146define('HOTSPOT_NETWORK_URL', 'http://www.ilesansfil.org/'); 
    141147define('TECH_SUPPORT_EMAIL', 'tech@ilesansfil.org'); 
     
    198204$AUTH_SOURCE_ARRAY[IDRC_ACCOUNT_ORIGIN]=array( 
    199205                             'name'=>"IDRC RADIUS Server", 
    200                              'authenticator'=>new AuthenticatorRadius(IDRC_ACCOUNT_ORIGIN, "localhost", 1812, 1813, "secret_key", "CHAP_MD5")); 
     206                             'authenticator'=>new AuthenticatorRadius(IDRC_ACCOUNT_ORIGIN, "192.168.0.11", 1812, 1813, "secret_key", "CHAP_MD5")); 
    201207*/ 
    202208 
  • trunk/wifidog-auth/wifidog/include/schema_validate.php

    r528 r530  
    11<?php 
     2 
     3 
    24/********************************************************************\ 
    35 * This program is free software; you can redistribute it and/or    * 
     
    2123/**@file schema_validate.php 
    2224 * Network status page 
    23  * @author Copyright (C) 2004 Benoit Grgoire 
     25 * @author Copyright (C) 2004 Benoit Grégoire 
    2426 */ 
    2527error_reporting(E_ALL); 
     
    2729require_once BASEPATH.'classes/AbstractDb.php'; 
    2830require_once BASEPATH.'classes/Session.php'; 
    29 define('REQUIRED_SCHEMA_VERSION', 3); 
     31define('REQUIRED_SCHEMA_VERSION', 5); 
    3032 
    3133/** Check that the database schema is up to date.  If it isn't, offer to update it. */ 
    3234function validate_schema() 
    3335{ 
    34   global $db; 
     36        global $db; 
    3537 
    36   $db -> ExecSqlUniqueRes ("SELECT * FROM schema_info WHERE tag='schema_version'", $row, false); 
    37   if(empty($row)) 
    38     { 
    39       echo "<html><head><h1>"._("Unable to retrieve schema version.  The database schema is too old to be updated.")."</h1></html></head>"; 
    40       exit(); 
    41     } 
    42   else if($row['value']<REQUIRED_SCHEMA_VERSION) 
    43     { 
    44       if(!empty($_REQUEST['schema_update_confirm']) && $_REQUEST['schema_update_confirm']=='on') 
     38        check_users_not_empty(); 
     39        $db->ExecSqlUniqueRes("SELECT * FROM schema_info WHERE tag='schema_version'", $row, false); 
     40        if (empty ($row)) 
    4541        { 
    46           update_schema(); 
     42                echo "<html><head><h1>"._("Unable to retrieve schema version.  The database schema is too old to be updated.")."</h1></html></head>"; 
     43                exit (); 
    4744        } 
    48       else 
    49         { 
    50           echo "<html><head><h1>"; 
    51           echo _("The database schema is not up to date.  Do you want to try to update it?  This operation is irreversible."); 
    52           echo "</h1><form name='login_form' method='get'>\n"; 
    53           echo "<input type='submit' name='submit' value='"._("Try to update database schema")."'>\n"; 
    54           echo _("Yes, I am sure:")."<input type='checkbox' name='schema_update_confirm'>\n"; 
    55           echo "</form>\n"; 
    56           echo "</html></head>"; 
    57           exit(); 
    58         } 
    59     } 
    60   else 
    61     { 
    62       //echo "<html><head><h1>The database schema is up to date.</h1></html></head>"; 
    63       //exit(); 
    64     } 
     45        else 
     46                if ($row['value'] < REQUIRED_SCHEMA_VERSION) 
     47                { 
     48                        if (!empty ($_REQUEST['schema_update_confirm']) && $_REQUEST['schema_update_confirm'] == 'on') 
     49                        { 
     50                                update_schema(); 
     51                        } 
     52                        else 
     53                        { 
     54                                echo "<html><head><h1>"; 
     55                                echo _("The database schema is not up to date.  Do you want to try to update it?  This operation is irreversible."); 
     56                                echo "</h1><form name='login_form' method='get'>\n"; 
     57                                echo "<input type='submit' name='submit' value='"._("Try to update database schema")."'>\n"; 
     58                                echo _("Yes, I am sure:")."<input type='checkbox' name='schema_update_confirm'>\n"; 
     59                                echo "</form>\n"; 
     60                                echo "</html></head>"; 
     61                                exit (); 
     62                        } 
     63                } 
     64                else 
     65                { 
     66                        //echo "<html><head><h1>The database schema is up to date.</h1></html></head>"; 
     67                        //exit(); 
     68                } 
    6569} 
    6670 
    67 /** Try to bring the database schema up to date. */ 
    68 function update_schema() { 
     71/** 
     72 * Auto create an administrator user with the first authenticator available 
     73 */ 
     74function check_users_not_empty() 
     75{ 
     76        // Extract the first account origin, assume it's the default 
     77        global $AUTH_SOURCE_ARRAY; 
     78        if (!empty ($AUTH_SOURCE_ARRAY)) 
     79        { 
     80                $default_account_origin = array_values(array_keys($AUTH_SOURCE_ARRAY)); 
     81                $default_account_origin = $default_account_origin[0]; 
     82        } 
     83 
     84        if (!empty ($default_account_origin)) 
     85        { 
     86                global $db; 
     87                $db->ExecSqlUniqueRes("SELECT user_id FROM users WHERE account_origin = '$default_account_origin' LIMIT 1", $row, false); 
     88                if ($row == null) 
     89                { 
     90                        echo "<html><head><h1>"; 
     91                        echo _("No user matches the default account origin, a new user admin/admin will be created. Change the password as soon as possible !"); 
     92                        echo "</html></head>"; 
     93                        $sql = "BEGIN;"; 
     94                        $sql .= "INSERT INTO users (user_id, username, pass, email, account_status, validation_token, account_origin) VALUES ('admin_original_user_delete_me', 'admin', 'ISMvKXpXpadDiUoOSoAfww==', 'test_user_please@delete.me', 1, 'df16cc4b1d0975e267f3425eaac31950', '$default_account_origin');"; 
     95                        $sql .= "INSERT INTO administrators (user_id) VALUES ('admin_original_user_delete_me');"; 
     96                        $sql .= "COMMIT;"; 
     97                        $db->ExecSqlUpdate($sql, $row, false); 
     98                        exit; 
     99                } 
     100        } 
     101        else 
     102        { 
     103                echo "<html><head><h1>"; 
     104                echo _("Could not get a default account origin, make sure you config.php has at least one AUTH_SOURCE_ARRAY entry."); 
     105                echo "</html></head>"; 
     106                exit (); 
     107        } 
     108} /** Try to bring the database schema up to date. */ 
     109function update_schema() 
     110{ 
    69111        global $db; 
    70112        echo "<html><head><h1>\n"; 
     
    72114        echo "</h1>\n"; 
    73115        $db->ExecSqlUniqueRes("SELECT * FROM schema_info WHERE tag='schema_version'", $row, false); 
    74  
    75         if (empty ($row)) { 
     116        if (empty ($row)) 
     117        { 
    76118                echo "<h1>"._("Unable to retrieve schema version.  The database schema is too old to be updated.")."</h1>"; 
    77119                exit (); 
    78         } else { 
     120        } 
     121        else 
     122        { 
    79123                $schema_version = $row['value']; 
    80124                $sql = ''; 
    81                 if ($schema_version < 2) { 
     125                if ($schema_version < 2) 
     126                { 
    82127                        $new_schema_version = 2; 
    83128                        echo "<h2>Preparing SQL statements to update schema to version  $new_schema_version</h2>"; 
     
    86131                        $sql .= "ALTER TABLE users ADD COLUMN account_origin text;\n"; 
    87132                        $db->ExecSql("SELECT user_id FROM users", $results, false); 
    88                         foreach ($results as $row) { 
     133                        foreach ($results as $row) 
     134                        { 
    89135                                $user_id = $db->EscapeString($row['user_id']); 
    90136                                $sql .= "UPDATE users SET username='$user_id', user_id='".get_guid()."', account_origin='".LOCAL_USER_ACCOUNT_ORIGIN."' WHERE user_id='$user_id';\n"; 
     
    92138                        $sql .= "CREATE UNIQUE INDEX idx_unique_username_and_account_origin ON users (username, account_origin);\n"; 
    93139                        $sql .= "CREATE UNIQUE INDEX idx_unique_email_and_account_origin ON users USING btree (email, account_origin);\n"; 
    94                 } else 
    95                         if ($schema_version < 3) { 
     140                } 
     141                else 
     142                        if ($schema_version < 3) 
     143                        { 
    96144                                $new_schema_version = 3; 
    97145                                echo "<h2>Preparing SQL statements to update schema to version  $new_schema_version</h2>"; 
     
    99147                                $sql .= "DROP INDEX idx_unique_email_and_account_origin;\n"; 
    100148                                $sql .= "ALTER TABLE users DROP CONSTRAINT check_email_not_empty;\n"; 
    101                         } 
     149                        } //  $db -> ExecSqlUpdate("BEGIN;\n$sql\nROLLBACK;\n", true); 
     150 
    102151                else 
    103                         if ($schema_version < 4) { 
     152                        if ($schema_version < 4) 
     153                        { 
    104154                                $new_schema_version = 4; 
    105155                                echo "<h2>Preparing SQL statements to update schema to version  $new_schema_version</h2>"; 
     
    108158                                $sql .= "ALTER TABLE users ADD CONSTRAINT check_account_origin_not_empty CHECK (account_origin::text <> ''::text);\n"; 
    109159                        } 
    110  
    111                 //  $db -> ExecSqlUpdate("BEGIN;\n$sql\nROLLBACK;\n", true); 
     160                        else 
     161                                if ($schema_version < 5) 
     162                                { 
     163                                        $new_schema_version = 5; 
     164                                        echo "<h1>Recoding database from ISO-8859-1 to UTF-8</h1>"; 
     165                                        echo "<h1>YOU MUST EXECUTE THESE COMMANDS IN COMMAND_LINE</h1>"; 
     166                                        echo "pg_dump wifidog - U wifidog > wifidog_dump.sql<br>"; 
     167                                        echo "dropdb wifidog - U wifidog <br>"; 
     168                                        echo "createdb--encoding = UNICODE--template = template0 - U wifidog wifidog <br>"; 
     169                                        echo "psql wifidog - U wifidog < wifidog_dump.sql<br><br>"; 
     170                                        echo "THEN use psql to modify to schema_version manually<br><br>"; 
     171                                        echo "UPDATE schema_info SET value='$new_schema_version' WHERE tag='schema_version'<p>"; 
     172                                        exit; 
     173                                } 
    112174                $db->ExecSqlUpdate("BEGIN;\n$sql\nCOMMIT;\n", true); 
    113175                echo "</html></head>"; 
  • trunk/wifidog-auth/wifidog/local_content/default/header.html

    r516 r530  
    22<html> 
    33<head> 
    4 <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'> 
     4<meta http-equiv='Content-Type' content='text/html; charset=utf-8'> 
    55<meta http-equiv='Pragma' CONTENT='no-cache'> 
    66<meta http-equiv='Expires' CONTENT='-1'> 
     
    1111</head> 
    1212<body> 
    13  
    14 <!--portal page EN - $Id$ --> 
    1513<div id='head'> 
    1614<h1>{"Welcome! Hotspot:"|_} {$hotspot_name}</h1> 
  • trunk/wifidog-auth/wifidog/locale/fr/LC_MESSAGES/messages.po

    r517 r530  
    99"Project-Id-Version: PACKAGE VERSION\n" 
    1010"Report-Msgid-Bugs-To: \n" 
    11 "POT-Creation-Date: 2005-03-30 14:54-0500\n" 
     11"POT-Creation-Date: 2005-04-01 11:23-0500\n" 
    1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
     
    1818 
    1919#: smarty.txt:2 smarty.txt:20 smarty.txt:19 smarty.txt:22 smarty.txt:102 
     20#: smarty.txt:103 smarty.txt:100 
    2021msgid "Find more HotSpots" 
    2122msgstr "Trouver plus de points d'acc&egrave;s sans-fil" 
    2223 
    2324#: smarty.txt:3 smarty.txt:21 smarty.txt:20 smarty.txt:23 smarty.txt:111 
    24 #: smarty.txt:103 
     25#: smarty.txt:103 smarty.txt:104 smarty.txt:101 
    2526msgid "List of all HotSpots" 
    2627msgstr "Liste de tous les points d'acc&egrave;s sans-fil" 
    2728 
    2829#: smarty.txt:4 smarty.txt:22 smarty.txt:21 smarty.txt:24 smarty.txt:104 
     30#: smarty.txt:105 smarty.txt:102 
    2931msgid "User management" 
    3032msgstr "Gestion des utilisateurs" 
    3133 
    3234#: smarty.txt:5 smarty.txt:23 smarty.txt:22 smarty.txt:25 smarty.txt:105 
     35#: smarty.txt:106 smarty.txt:103 
    3336msgid "Create new account" 
    3437msgstr "Cr&eacute;er un nouveau compte" 
     
    3639#: smarty.txt:6 smarty.txt:24 smarty.txt:37 smarty.txt:38 smarty.txt:39 
    3740#: smarty.txt:33 smarty.txt:23 smarty.txt:72 smarty.txt:66 smarty.txt:34 
    38 #: smarty.txt:26 smarty.txt:73 smarty.txt:91 smarty.txt:106 
     41#: smarty.txt:26 smarty.txt:73 smarty.txt:91 smarty.txt:106 smarty.txt:107 
     42#: smarty.txt:89 smarty.txt:104 
    3943msgid "Re-send validation email" 
    4044msgstr "Envoyez-moi de nouveau le courriel de validation" 
     
    4246#: smarty.txt:7 smarty.txt:25 smarty.txt:24 smarty.txt:67 smarty.txt:62 
    4347#: smarty.txt:60 smarty.txt:61 smarty.txt:27 smarty.txt:69 smarty.txt:56 
    44 #: smarty.txt:107 
     48#: smarty.txt:107 smarty.txt:108 smarty.txt:54 smarty.txt:105 
    4549msgid "Lost username" 
    4650msgstr "Nom d'utilisateur perdu" 
     
    4852#: smarty.txt:8 smarty.txt:26 smarty.txt:25 smarty.txt:61 smarty.txt:57 
    4953#: smarty.txt:64 smarty.txt:65 smarty.txt:28 smarty.txt:51 smarty.txt:108 
     54#: smarty.txt:109 smarty.txt:49 smarty.txt:106 
    5055msgid "Lost password" 
    5156msgstr "Mot de passe perdu" 
    5257 
    5358#: smarty.txt:9 smarty.txt:27 smarty.txt:26 smarty.txt:29 smarty.txt:109 
     59#: smarty.txt:110 smarty.txt:107 
    5460msgid "Change password" 
    5561msgstr "Changer mon mot de passe" 
    5662 
    5763#: smarty.txt:10 smarty.txt:28 smarty.txt:27 smarty.txt:30 smarty.txt:110 
     64#: smarty.txt:111 smarty.txt:108 
    5865msgid "Accounts on" 
    5966msgstr "Les comptes sur" 
    6067 
    6168#: smarty.txt:11 smarty.txt:29 smarty.txt:28 smarty.txt:31 smarty.txt:111 
     69#: smarty.txt:112 smarty.txt:109 
    6270msgid "" 
    6371"are and will remain <emp>totally free</emp>, use the left menu to create a " 
     
    6977 
    7078#: smarty.txt:12 smarty.txt:30 smarty.txt:29 smarty.txt:32 smarty.txt:112 
     79#: smarty.txt:113 smarty.txt:110 
    7180msgid "Please report any problem or interruption in our service to" 
    7281msgstr "" 
     
    7584 
    7685#: smarty.txt:13 smarty.txt:9 smarty.txt:8 smarty.txt:11 smarty.txt:77 
     86#: smarty.txt:75 
    7787msgid "Status of all nodes of the" 
    7888msgstr "Statut de tous les noeuds" 
     
    8191#: smarty.txt:133 smarty.txt:120 smarty.txt:146 smarty.txt:12 smarty.txt:123 
    8292#: smarty.txt:151 smarty.txt:129 smarty.txt:157 smarty.txt:78 smarty.txt:117 
    83 #: smarty.txt:153 
     93#: smarty.txt:153 smarty.txt:118 smarty.txt:154 smarty.txt:76 smarty.txt:116 
     94#: smarty.txt:152 
    8495msgid "network" 
    8596msgstr "r&eacute;seau" 
    8697 
    8798#: smarty.txt:15 smarty.txt:11 smarty.txt:10 smarty.txt:13 smarty.txt:79 
     99#: smarty.txt:77 
    88100msgid "Status" 
    89101msgstr "Statut" 
     
    92104#: smarty.txt:121 smarty.txt:147 smarty.txt:14 smarty.txt:124 smarty.txt:152 
    93105#: smarty.txt:130 smarty.txt:158 smarty.txt:80 smarty.txt:118 smarty.txt:154 
     106#: smarty.txt:119 smarty.txt:155 smarty.txt:78 smarty.txt:117 smarty.txt:153 
    94107msgid "Id" 
    95108msgstr "Id" 
     
    99112#: smarty.txt:125 smarty.txt:133 smarty.txt:153 smarty.txt:131 smarty.txt:139 
    100113#: smarty.txt:159 smarty.txt:81 smarty.txt:119 smarty.txt:127 smarty.txt:155 
     114#: smarty.txt:120 smarty.txt:128 smarty.txt:156 smarty.txt:79 smarty.txt:118 
     115#: smarty.txt:126 smarty.txt:154 
    101116msgid "Name" 
    102117msgstr "Nom" 
    103118 
    104119#: smarty.txt:18 smarty.txt:14 smarty.txt:13 smarty.txt:16 smarty.txt:82 
     120#: smarty.txt:80 
    105121msgid "Local content demo" 
    106122msgstr "D&eacute;mo de contenu local" 
     
    108124#: smarty.txt:19 smarty.txt:15 smarty.txt:14 smarty.txt:111 smarty.txt:123 
    109125#: smarty.txt:17 smarty.txt:126 smarty.txt:132 smarty.txt:83 smarty.txt:120 
     126#: smarty.txt:121 smarty.txt:81 smarty.txt:119 
    110127msgid "Opened on" 
    111128msgstr "Ouvert le" 
    112129 
    113130#: smarty.txt:20 smarty.txt:16 smarty.txt:15 smarty.txt:18 smarty.txt:84 
     131#: smarty.txt:82 
    114132msgid "Online users" 
    115133msgstr "Usagers en ligne" 
    116134 
    117135#: smarty.txt:21 smarty.txt:17 smarty.txt:16 smarty.txt:19 smarty.txt:85 
     136#: smarty.txt:83 
    118137msgid "days" 
    119138msgstr "jours" 
    120139 
    121140#: smarty.txt:22 smarty.txt:18 smarty.txt:17 smarty.txt:20 smarty.txt:86 
     141#: smarty.txt:84 
    122142msgid "Login page" 
    123143msgstr "Authentification" 
    124144 
    125145#: smarty.txt:23 smarty.txt:19 smarty.txt:18 smarty.txt:21 smarty.txt:87 
     146#: smarty.txt:85 
    126147msgid "Portal page" 
    127148msgstr "Portail" 
    128149 
    129150#: smarty.txt:24 smarty.txt:2 smarty.txt:27 smarty.txt:5 smarty.txt:60 
     151#: smarty.txt:58 
    130152msgid "The network currently has" 
    131153msgstr "Le r&eacute;seau a pr&eacute;sentement" 
    132154 
    133155#: smarty.txt:25 smarty.txt:3 smarty.txt:28 smarty.txt:6 smarty.txt:61 
     156#: smarty.txt:59 
    134157msgid "valid users" 
    135158msgstr "utilisateurs valides" 
    136159 
    137160#: smarty.txt:26 smarty.txt:4 smarty.txt:29 smarty.txt:7 smarty.txt:62 
     161#: smarty.txt:60 
    138162msgid "user(s) are currently online" 
    139163msgstr "utilisateurs pr&eacute;sentement en ligne" 
    140164 
    141165#: smarty.txt:27 smarty.txt:5 smarty.txt:30 smarty.txt:8 smarty.txt:63 
     166#: smarty.txt:61 
    142167msgid "Deployed HotSpots status with coordinates" 
    143168msgstr "Noeuds sans-fil d&eacute;ploy&eacute;s avec coordonn&eacute;es" 
    144169 
    145170#: smarty.txt:28 smarty.txt:6 smarty.txt:31 smarty.txt:9 smarty.txt:64 
     171#: smarty.txt:62 
    146172msgid "Full node technical status (includes non-deployed nodes)" 
    147173msgstr "" 
     
    154180 
    155181#: smarty.txt:30 smarty.txt:8 smarty.txt:7 smarty.txt:32 smarty.txt:10 
    156 #: smarty.txt:65 
     182#: smarty.txt:65 smarty.txt:63 
    157183msgid "Administration" 
    158184msgstr "" 
     
    179205 
    180206#: ../admin/index.php:36 smarty.txt:98 smarty.txt:110 smarty.txt:112 
    181 #: smarty.txt:118 smarty.txt:144 
     207#: smarty.txt:118 smarty.txt:144 smarty.txt:145 smarty.txt:143 
    182208msgid "" 
    183209"For now, you need to be logged in at a hotspot or to fake a login from one " 
     
    227253#: smarty.txt:46 smarty.txt:53 smarty.txt:54 smarty.txt:59 smarty.txt:76 
    228254#: smarty.txt:70 smarty.txt:95 smarty.txt:107 smarty.txt:110 smarty.txt:116 
    229 #: smarty.txt:114 
     255#: smarty.txt:114 smarty.txt:115 smarty.txt:113 
    230256msgid "Online at this hotspot" 
    231257msgstr "En ligne &agrave; ce point d'acc&egrave;s sans-fil" 
     
    234260#: smarty.txt:47 smarty.txt:54 smarty.txt:55 smarty.txt:60 smarty.txt:77 
    235261#: smarty.txt:71 smarty.txt:96 smarty.txt:108 smarty.txt:111 smarty.txt:117 
    236 #: smarty.txt:115 
     262#: smarty.txt:115 smarty.txt:116 smarty.txt:114 
    237263msgid "Go to the site I originally requested" 
    238264msgstr "Aller au site web que j'ai demand&eacute;" 
     
    243269 
    244270#: smarty.txt:31 smarty.txt:30 smarty.txt:33 smarty.txt:36 smarty.txt:26 
    245 #: smarty.txt:88 
     271#: smarty.txt:88 smarty.txt:86 
    246272msgid "Language" 
    247273msgstr "Langue" 
     
    250276#: smarty.txt:44 smarty.txt:36 smarty.txt:51 smarty.txt:52 smarty.txt:41 
    251277#: smarty.txt:57 smarty.txt:35 smarty.txt:78 smarty.txt:45 smarty.txt:88 
    252 #: smarty.txt:89 smarty.txt:85 smarty.txt:31 
     278#: smarty.txt:89 smarty.txt:85 smarty.txt:31 smarty.txt:30 
    253279msgid "Username (or email)" 
    254280msgstr "Utilisateur (ou courriel)" 
     
    258284#: smarty.txt:42 smarty.txt:58 smarty.txt:36 smarty.txt:46 smarty.txt:79 
    259285#: smarty.txt:55 smarty.txt:89 smarty.txt:56 smarty.txt:90 smarty.txt:86 
    260 #: smarty.txt:32 smarty.txt:98 
     286#: smarty.txt:32 smarty.txt:98 smarty.txt:99 smarty.txt:31 smarty.txt:96 
    261287msgid "Password" 
    262288msgstr "Mot de passe" 
     
    350376#: smarty.txt:35 smarty.txt:36 smarty.txt:38 smarty.txt:43 smarty.txt:37 
    351377#: smarty.txt:47 smarty.txt:90 smarty.txt:91 smarty.txt:87 smarty.txt:33 
    352 #: smarty.txt:46 
     378#: smarty.txt:46 smarty.txt:32 smarty.txt:44 
    353379msgid "Login" 
    354380msgstr "Ouvrir une session" 
     
    397423 
    398424#: smarty.txt:34 smarty.txt:39 smarty.txt:33 smarty.txt:43 smarty.txt:86 
    399 #: smarty.txt:87 smarty.txt:83 smarty.txt:28 smarty.txt:41 
     425#: smarty.txt:87 smarty.txt:83 smarty.txt:28 smarty.txt:41 smarty.txt:40 
    400426msgid "Please log-in or" 
    401427msgstr "Ouvrez une session ou" 
     
    406432 
    407433#: smarty.txt:39 smarty.txt:44 smarty.txt:38 smarty.txt:48 smarty.txt:91 
    408 #: smarty.txt:92 smarty.txt:88 smarty.txt:34 smarty.txt:47 
     434#: smarty.txt:92 smarty.txt:88 smarty.txt:34 smarty.txt:47 smarty.txt:33 
     435#: smarty.txt:45 
    409436msgid "I already have an account, but" 
    410437msgstr "J'ai d&eacute;j&agrave; un compte, mais" 
    411438 
    412439#: smarty.txt:40 smarty.txt:45 smarty.txt:39 smarty.txt:49 smarty.txt:92 
    413 #: smarty.txt:93 smarty.txt:89 smarty.txt:35 smarty.txt:48 
     440#: smarty.txt:93 smarty.txt:89 smarty.txt:35 smarty.txt:48 smarty.txt:34 
     441#: smarty.txt:46 
    414442msgid "I Forgot my username" 
    415443msgstr "J'ai oubli&eacute; mon nom d'utilisateur" 
    416444 
    417445#: smarty.txt:41 smarty.txt:46 smarty.txt:40 smarty.txt:50 smarty.txt:93 
    418 #: smarty.txt:94 smarty.txt:90 smarty.txt:36 smarty.txt:49 
     446#: smarty.txt:94 smarty.txt:90 smarty.txt:36 smarty.txt:49 smarty.txt:35 
     447#: smarty.txt:47 
    419448msgid "I Forgot my password" 
    420449msgstr "J'ai oubli&eacute; mon mot de passe" 
    421450 
    422451#: smarty.txt:42 smarty.txt:47 smarty.txt:41 smarty.txt:51 smarty.txt:94 
    423 #: smarty.txt:95 smarty.txt:91 smarty.txt:37 smarty.txt:50 
     452#: smarty.txt:95 smarty.txt:91 smarty.txt:37 smarty.txt:50 smarty.txt:36 
     453#: smarty.txt:48 
    424454msgid "Re-send the validation email" 
    425455msgstr "Envoyez-moi de nouveau le courriel de validation" 
    426456 
    427457#: smarty.txt:44 smarty.txt:49 smarty.txt:43 smarty.txt:42 smarty.txt:52 
    428 #: smarty.txt:53 smarty.txt:95 
     458#: smarty.txt:53 smarty.txt:95 smarty.txt:93 
    429459msgid "Register a free account with" 
    430460msgstr "Ouvrir un compte gratuit avec" 
    431461 
    432462#: smarty.txt:45 smarty.txt:50 smarty.txt:44 smarty.txt:43 smarty.txt:53 
    433 #: smarty.txt:54 smarty.txt:96 
     463#: smarty.txt:54 smarty.txt:96 smarty.txt:97 smarty.txt:94 
    434464msgid "Username desired" 
    435465msgstr "Nom d'utilisateur d&eacute;sir&eacute;" 
     
    438468#: smarty.txt:44 smarty.txt:59 smarty.txt:54 smarty.txt:61 smarty.txt:66 
    439469#: smarty.txt:55 smarty.txt:62 smarty.txt:67 smarty.txt:70 smarty.txt:53 
    440 #: smarty.txt:57 smarty.txt:97 
     470#: smarty.txt:57 smarty.txt:97 smarty.txt:98 smarty.txt:95 
    441471msgid "Your email address" 
    442472msgstr "Votre courriel" 
    443473 
    444474#: smarty.txt:48 smarty.txt:53 smarty.txt:47 smarty.txt:46 smarty.txt:56 
    445 #: smarty.txt:57 smarty.txt:99 
     475#: smarty.txt:57 smarty.txt:99 smarty.txt:100 smarty.txt:97 
    446476msgid "Password (again)" 
    447477msgstr "Mot de passe (encore)" 
    448478 
    449479#: smarty.txt:49 smarty.txt:54 smarty.txt:48 smarty.txt:47 smarty.txt:57 
    450 #: smarty.txt:58 smarty.txt:100 
     480#: smarty.txt:58 smarty.txt:100 smarty.txt:101 smarty.txt:98 
    451481msgid "Sign-up" 
    452482msgstr "Souscrire" 
    453483 
    454484#: smarty.txt:50 smarty.txt:55 smarty.txt:49 smarty.txt:48 smarty.txt:58 
    455 #: smarty.txt:59 smarty.txt:101 
     485#: smarty.txt:59 smarty.txt:101 smarty.txt:102 smarty.txt:99 
    456486msgid "" 
    457487"Your email address must be valid in order for your account to be activated" 
     
    476506#: ../include/mgmt_helpers.php:39 ../classes/User.php:157 
    477507#: ../classes/User.php:167 ../classes/User.php:365 ../classes/User.php:367 
     508#: ../classes/User.php:387 ../classes/User.php:386 
    478509msgid "The user is not in validation period." 
    479510msgstr "L'utilisateur n'est pas en p&eacute;riode de validation." 
     
    482513#: ../include/mgmt_helpers.php:42 ../classes/User.php:160 
    483514#: ../classes/User.php:170 ../classes/User.php:371 ../classes/User.php:373 
     515#: ../classes/User.php:393 ../classes/User.php:392 
    484516msgid "The validation token is empty." 
    485517msgstr "Le jeton de validation est vide." 
     
    487519#: ../signup.php:66 ../include/validation.php:32 
    488520#: ../include/mgmt_helpers.php:58 ../signup.php:85 ../signup.php:90 
     521#: ../signup.php:99 ../signup.php:102 
    489522msgid "" 
    490523"An email with confirmation instructions was sent to your email address.  " 
     
    501534 
    502535#: ../signup.php:80 ../signup.php:43 ../signup.php:33 ../signup.php:38 
     536#: ../signup.php:41 
    503537msgid "Username is required." 
    504538msgstr "Le nom d'utilisateur est requis." 
    505539 
    506540#: ../signup.php:82 ../signup.php:45 ../signup.php:36 ../signup.php:41 
     541#: ../signup.php:44 
    507542msgid "Username contains invalid characters." 
    508543msgstr "Le nom d'utilisateur contient des caract&egrave;res invalides." 
    509544 
    510545#: ../signup.php:84 ../signup.php:47 ../signup.php:41 ../signup.php:46 
     546#: ../signup.php:50 
    511547msgid "A valid email address is required." 
    512548msgstr "Une adresse courriel est requise." 
    513549 
    514 #: ../signup.php:86 ../signup.php:49 ../signup.php:44 
     550#: ../signup.php:86 ../signup.php:49 ../signup.php:44 ../signup.php:53 
    515551msgid "The email address must be of the form user@domain.com." 
    516552msgstr "" 
     
    518554 
    519555#: ../signup.php:88 ../signup.php:51 ../signup.php:49 ../signup.php:54 
     556#: ../signup.php:59 
    520557msgid "A password of at least 6 characters is required." 
    521558msgstr "Un mot de passe d'au moins 6 caract&egrave;res est requis." 
    522559 
    523560#: ../signup.php:90 ../signup.php:53 ../signup.php:52 ../signup.php:57 
     561#: ../signup.php:62 
    524562msgid "Password contains invalid characters." 
    525563msgstr "Le mot de passe contient des caract&egrave;res invalides." 
    526564 
    527 #: ../signup.php:92 ../signup.php:55 ../signup.php:60 
     565#: ../signup.php:92 ../signup.php:55 ../signup.php:60 ../signup.php:65 
    528566msgid "You must type your password twice." 
    529567msgstr "Vous devez entrer votre mot de passe deux fois pour le confirmer." 
     
    531569#: ../signup.php:94 ../signup.php:57 ../change_password.php:57 
    532570#: ../signup.php:58 ../change_password.php:42 ../signup.php:63 
     571#: ../signup.php:68 ../change_password.php:48 
    533572msgid "Passwords do not match." 
    534573msgstr "Les mots de passe ne sont pas identiques." 
    535574 
    536575#: ../signup.php:96 ../signup.php:59 ../signup.php:61 ../signup.php:66 
     576#: ../signup.php:71 
    537577msgid "Password is too short, it must be 6 characters minimum." 
    538578msgstr "Mot de passe trop court, il doit contenir 6 caract&egrave;res minimum." 
    539579 
    540580#: ../signup.php:105 ../signup.php:68 ../signup.php:78 ../signup.php:83 
     581#: ../signup.php:92 ../signup.php:95 
    541582msgid "" 
    542583"Sorry, a user account is already associated to this username. Pick another " 
     
    620661#: smarty.txt:58 smarty.txt:67 smarty.txt:35 smarty.txt:65 smarty.txt:70 
    621662#: smarty.txt:66 smarty.txt:71 smarty.txt:57 smarty.txt:74 smarty.txt:3 
    622 #: smarty.txt:52 smarty.txt:92 
     663#: smarty.txt:52 smarty.txt:92 smarty.txt:90 
    623664msgid "Your username" 
    624665msgstr "Votre nom d'utilisateur" 
    625666 
    626667#: smarty.txt:35 smarty.txt:74 smarty.txt:68 smarty.txt:36 smarty.txt:75 
    627 #: smarty.txt:93 
     668#: smarty.txt:93 smarty.txt:91 
    628669msgid "Re-send" 
    629670msgstr "Envoyer de nouveau" 
    630671 
    631672#: smarty.txt:36 smarty.txt:75 smarty.txt:69 smarty.txt:37 smarty.txt:76 
    632 #: smarty.txt:94 
     673#: smarty.txt:94 smarty.txt:92 
    633674msgid "" 
    634675"Please enter your username and the validation email will be resent to your " 
     
    638679"sera renvoy&eacute; &agrave; votre adresse courriel" 
    639680 
    640 #: ../lost_username.php:39 ../lost_username.php:34 
     681#: ../lost_username.php:39 ../lost_username.php:34 ../lost_username.php:40 
    641682msgid "Please specify an email address" 
    642683msgstr "Veuillez sp&eacute;cifier une adresse courriel" 
     
    647688 
    648689#: ../change_password.php:54 ../change_password.php:46 
    649 #: ../change_password.php:47 
     690#: ../change_password.php:47 ../change_password.php:53 
    650691msgid "Wrong password." 
    651692msgstr "Mauvais mot de passe." 
    652693 
    653694#: ../change_password.php:62 ../change_password.php:49 
    654 #: ../change_password.php:50 
     695#: ../change_password.php:50 ../change_password.php:56 
    655696msgid "Your password has been changed succesfully." 
    656697msgstr "" 
     
    666707 
    667708#: ../include/mgmt_helpers.php:87 ../lost_username.php:38 
    668 #: ../lost_username.php:41 
     709#: ../lost_username.php:41 ../lost_username.php:48 
    669710msgid "Your username has been emailed to you." 
    670711msgstr "Votre nom d'utilisateur vous a &eacute;t&eacute; envoy&eacute;." 
     
    675716 
    676717#: ../include/mgmt_helpers.php:120 ../lost_password.php:42 
    677 #: ../lost_password.php:51 
     718#: ../lost_password.php:51 ../lost_password.php:55 
    678719msgid "A new password has been emailed to you." 
    679720msgstr "Un nouveau mot de passe vous &agrave; &eacute;t&eacute; envoy&eacute;." 
     
    716757 
    717758#: smarty.txt:64 smarty.txt:60 smarty.txt:67 smarty.txt:68 smarty.txt:54 
     759#: smarty.txt:52 
    718760msgid "Reset my password" 
    719761msgstr "R&eacute;initialiser mon mot de passe" 
    720762 
    721763#: smarty.txt:65 smarty.txt:61 smarty.txt:68 smarty.txt:69 smarty.txt:55 
     764#: smarty.txt:53 
    722765msgid "Please enter your username or email address to reset your password" 
    723766msgstr "" 
     
    726769 
    727770#: smarty.txt:69 smarty.txt:64 smarty.txt:62 smarty.txt:63 smarty.txt:71 
    728 #: smarty.txt:58 
     771#: smarty.txt:58 smarty.txt:56 
    729772msgid "Retrieve" 
    730773msgstr "Rechercher" 
    731774 
    732775#: smarty.txt:70 smarty.txt:65 smarty.txt:63 smarty.txt:64 smarty.txt:72 
    733 #: smarty.txt:59 
     776#: smarty.txt:59 smarty.txt:57 
    734777msgid "Please enter your email address to recover your username" 
    735778msgstr "" 
     
    742785 
    743786#: smarty.txt:32 smarty.txt:42 smarty.txt:38 smarty.txt:109 smarty.txt:114 
    744 #: smarty.txt:115 smarty.txt:27 smarty.txt:113 
     787#: smarty.txt:115 smarty.txt:27 smarty.txt:113 smarty.txt:112 
    745788msgid "Welcome! Hotspot:" 
    746789msgstr "Bienvenue! Noeud sans-fil:" 
     
    750793msgstr "serveur d'authentification" 
    751794 
    752 #: ../signup.php:81 ../signup.php:86 
     795#: ../signup.php:81 ../signup.php:86 ../signup.php:95 ../signup.php:98 
    753796msgid "Sorry, a user account is already associated to this email address." 
    754797msgstr "" 
     
    757800 
    758801#: ../resend_validation.php:38 ../resend_validation.php:41 
     802#: ../resend_validation.php:48 
    759803msgid "An email with confirmation instructions was sent to your email address." 
    760804msgstr "" 
     
    806850 
    807851#: ../classes/User.php:110 ../classes/User.php:114 ../classes/User.php:325 
     852#: ../classes/User.php:345 ../classes/User.php:344 
    808853msgid "Could not change user's password." 
    809854msgstr "Impossible de changer le mot de passe de l'utilisateur" 
    810855 
    811856#: ../classes/User.php:120 ../classes/User.php:130 ../classes/User.php:239 
     857#: ../classes/User.php:259 ../classes/User.php:257 
    812858msgid "Could not update status." 
    813859msgstr "Impossible de mettre &agrave; jour le statut." 
    814860 
    815861#: ../classes/User.php:132 ../classes/User.php:142 ../classes/User.php:346 
     862#: ../classes/User.php:366 ../classes/User.php:365 
    816863msgid "No users could not be found in the database" 
    817864msgstr "" 
     
    826873msgid "The id $node_id_str could not be found in the database" 
    827874msgstr "" 
    828 "L'identifiant $node_id_str n'a pu �re trouv&eacute; dans la base de " 
     875"L'identifiant $node_id_str n'a pu ُ؟�re trouv&eacute; dans la base de " 
    829876"donn&eacute;es" 
    830877 
     
    853900msgstr "Connexion ?" 
    854901 
    855 #: smarty.txt:38 smarty.txt:92 smarty.txt:73 
     902#: smarty.txt:38 smarty.txt:92 smarty.txt:73 smarty.txt:71 
    856903msgid "Hotspot" 
    857904msgstr "Point d'acc&egrave;s" 
    858905 
    859 #: smarty.txt:39 smarty.txt:93 smarty.txt:74 
     906#: smarty.txt:39 smarty.txt:93 smarty.txt:74 smarty.txt:72 
    860907msgid "is unknown to this authentication server." 
    861908msgstr "est inconnu de ce serveur d'authentification." 
    862909 
    863 #: smarty.txt:40 smarty.txt:94 smarty.txt:75 
     910#: smarty.txt:40 smarty.txt:94 smarty.txt:75 smarty.txt:73 
    864911msgid "No Hotspot specified!" 
    865912msgstr "Aucun point d'acc&egrave;s sp&eacute;cifi&eacute;!" 
    866913 
    867914#: smarty.txt:41 smarty.txt:95 smarty.txt:107 smarty.txt:21 smarty.txt:76 
     915#: smarty.txt:74 
    868916msgid "Please get in touch with " 
    869917msgstr "Veuillez contacter " 
    870918 
    871 #: smarty.txt:77 smarty.txt:78 smarty.txt:33 smarty.txt:66 
     919#: smarty.txt:77 smarty.txt:78 smarty.txt:33 smarty.txt:66 smarty.txt:64 
    872920msgid "" 
    873921"You have now been granted 15 minutes of Internet access without being " 
     
    877925"minutes pour que vous puissiez aller valider votre compte." 
    878926 
    879 #: smarty.txt:78 smarty.txt:79 smarty.txt:34 smarty.txt:67 
     927#: smarty.txt:78 smarty.txt:79 smarty.txt:34 smarty.txt:67 smarty.txt:65 
    880928msgid "" 
    881929"If you fail to validate your account in 15 minutes, you will have to " 
     
    885933"depuis un autre endroit." 
    886934 
    887 #: smarty.txt:79 smarty.txt:80 smarty.txt:35 smarty.txt:68 
     935#: smarty.txt:79 smarty.txt:80 smarty.txt:35 smarty.txt:68 smarty.txt:66 
    888936msgid "" 
    889937"If you do not receive an email from our validation server in the next " 
     
    895943"votre adresse de courriel. Vous pourriez devoir cr&eacute;er un autre compte." 
    896944 
    897 #: smarty.txt:80 smarty.txt:81 smarty.txt:77 smarty.txt:69 
     945#: smarty.txt:80 smarty.txt:81 smarty.txt:77 smarty.txt:69 smarty.txt:67 
    898946msgid "No message has been specified! (this is probably an error)" 
    899947msgstr "" 
     
    901949"probablement une erreur)" 
    902950 
    903 #: smarty.txt:81 smarty.txt:82 smarty.txt:78 smarty.txt:70 
     951#: smarty.txt:81 smarty.txt:82 smarty.txt:78 smarty.txt:70 smarty.txt:68 
    904952msgid "Access denied!" 
    905953msgstr "Acc&egrave;s refus&eacute;!" 
    906954 
    907 #: smarty.txt:82 smarty.txt:83 smarty.txt:79 smarty.txt:71 
     955#: smarty.txt:82 smarty.txt:83 smarty.txt:79 smarty.txt:71 smarty.txt:69 
    908956msgid "You have failed to validate your account in 15 minutes." 
    909957msgstr "" 
     
    911959"15 minutes requises." 
    912960 
    913 #: smarty.txt:83 smarty.txt:84 smarty.txt:80 smarty.txt:72 
     961#: smarty.txt:83 smarty.txt:84 smarty.txt:80 smarty.txt:72 smarty.txt:70 
    914962msgid "Please validate your account from somewhere else or create a new one." 
    915963msgstr "" 
     
    917965"nouveau." 
    918966 
    919 #: smarty.txt:84 smarty.txt:85 smarty.txt:81 smarty.txt:39 
     967#: smarty.txt:84 smarty.txt:85 smarty.txt:81 smarty.txt:39 smarty.txt:38 
    920968msgid "Welcome!" 
    921969msgstr "Bienvenue!" 
    922970 
    923 #: smarty.txt:85 smarty.txt:86 smarty.txt:82 smarty.txt:40 
     971#: smarty.txt:85 smarty.txt:86 smarty.txt:82 smarty.txt:40 smarty.txt:39 
    924972msgid "" 
    925973"This is the 'virtual login' page you can use to get the credentials which " 
     
    931979"vous rendre dans un point d'acc&egrave;s." 
    932980 
    933 #: smarty.txt:87 smarty.txt:88 smarty.txt:84 smarty.txt:42 
     981#: smarty.txt:87 smarty.txt:88 smarty.txt:84 smarty.txt:42 smarty.txt:41 
    934982msgid "sign-up." 
    935983msgstr "cr&eacute;er un compte" 
    936984 
    937985#: smarty.txt:97 smarty.txt:109 smarty.txt:120 smarty.txt:126 smarty.txt:158 
     986#: smarty.txt:159 smarty.txt:157 
    938987msgid "new users" 
    939988msgstr "nouveaux utilisateurs" 
    940989 
    941990#: smarty.txt:99 smarty.txt:111 smarty.txt:113 smarty.txt:119 smarty.txt:145 
     991#: smarty.txt:146 smarty.txt:144 
    942992msgid "User logs" 
    943993msgstr "Logs des utilisateurs" 
    944994 
    945995#: smarty.txt:100 smarty.txt:112 smarty.txt:114 smarty.txt:108 smarty.txt:120 
    946 #: smarty.txt:146 
     996#: smarty.txt:146 smarty.txt:147 smarty.txt:145 
    947997msgid "Online Users" 
    948998msgstr "Usagers en ligne" 
    949999 
    9501000#: smarty.txt:101 smarty.txt:113 smarty.txt:115 smarty.txt:121 smarty.txt:147 
     1001#: smarty.txt:148 smarty.txt:146 
    9511002msgid "Cumulative user statistics" 
    9521003msgstr "Statistiques cumulatives des utilisateurs" 
    9531004 
    9541005#: smarty.txt:102 smarty.txt:114 smarty.txt:116 smarty.txt:122 smarty.txt:148 
     1006#: smarty.txt:149 smarty.txt:147 
    9551007msgid "Hotspot logs" 
    9561008msgstr "Logs des noeuds" 
    9571009 
    9581010#: smarty.txt:103 smarty.txt:115 smarty.txt:117 smarty.txt:123 smarty.txt:149 
     1011#: smarty.txt:150 smarty.txt:148 
    9591012msgid "Import NoCat user database" 
    9601013msgstr "Importer la base d'utilisateur NoCat" 
    9611014 
    9621015#: smarty.txt:104 smarty.txt:116 smarty.txt:118 smarty.txt:124 smarty.txt:150 
     1016#: smarty.txt:151 smarty.txt:149 
    9631017msgid "Hotspot creation and configuration" 
    9641018msgstr "Cr&eacute;ation et configuration d'un point d'acc&egrave;s" 
    9651019 
    9661020#: smarty.txt:105 smarty.txt:117 smarty.txt:119 smarty.txt:125 smarty.txt:151 
     1021#: smarty.txt:152 smarty.txt:150 
    9671022msgid "Hotspot owner administration" 
    9681023msgstr "Administrateur du propri&eacute;taire de point d'acc&egrave;s" 
    9691024 
    9701025#: smarty.txt:106 smarty.txt:118 smarty.txt:121 smarty.txt:127 smarty.txt:157 
     1026#: smarty.txt:158 smarty.txt:156 
    9711027msgid "Sort" 
    9721028msgstr "Trier" 
     
    9741030#: smarty.txt:107 smarty.txt:127 smarty.txt:132 smarty.txt:119 smarty.txt:145 
    9751031#: smarty.txt:122 smarty.txt:150 smarty.txt:128 smarty.txt:156 smarty.txt:116 
    976 #: smarty.txt:152 
     1032#: smarty.txt:152 smarty.txt:117 smarty.txt:153 smarty.txt:115 smarty.txt:151 
    9771033msgid "Configurations of all nodes of the" 
    9781034msgstr "Configuration de tous les noeuds de" 
     
    9811037#: smarty.txt:149 smarty.txt:127 smarty.txt:146 smarty.txt:154 smarty.txt:133 
    9821038#: smarty.txt:152 smarty.txt:160 smarty.txt:121 smarty.txt:140 smarty.txt:156 
     1039#: smarty.txt:122 smarty.txt:157 smarty.txt:120 smarty.txt:139 smarty.txt:155 
    9831040msgid "Action" 
    9841041msgstr "Action" 
    9851042 
    9861043#: smarty.txt:113 smarty.txt:125 smarty.txt:128 smarty.txt:134 smarty.txt:122 
     1044#: smarty.txt:123 smarty.txt:121 
    9871045msgid "Edit" 
    9881046msgstr "Modifier" 
    9891047 
    9901048#: smarty.txt:114 smarty.txt:126 smarty.txt:129 smarty.txt:135 smarty.txt:123 
     1049#: smarty.txt:124 smarty.txt:122 
    9911050msgid "Owner" 
    9921051msgstr "Propri&eacute;taire" 
    9931052 
    9941053#: smarty.txt:115 smarty.txt:127 smarty.txt:130 smarty.txt:136 smarty.txt:124 
     1054#: smarty.txt:125 smarty.txt:123 
    9951055msgid "Delete" 
    9961056msgstr "Supprimer" 
    9971057 
    9981058#: smarty.txt:116 smarty.txt:128 smarty.txt:131 smarty.txt:137 smarty.txt:125 
     1059#: smarty.txt:126 smarty.txt:124 
    9991060msgid "Add a new node" 
    10001061msgstr "Ajouter un nouveau noeud" 
    10011062 
    10021063#: smarty.txt:118 smarty.txt:131 smarty.txt:134 smarty.txt:140 smarty.txt:128 
     1064#: smarty.txt:129 smarty.txt:127 
    10031065msgid "RSS URL" 
    10041066msgstr "Adresse URL du fil RSS" 
    10051067 
    10061068#: smarty.txt:119 smarty.txt:132 smarty.txt:135 smarty.txt:141 smarty.txt:129 
     1069#: smarty.txt:130 smarty.txt:128 
    10071070msgid "Homepage URL" 
    10081071msgstr "Adresse URL de la page d'accueil" 
    10091072 
    10101073#: smarty.txt:120 smarty.txt:133 smarty.txt:136 smarty.txt:142 smarty.txt:130 
     1074#: smarty.txt:131 smarty.txt:129 
    10111075msgid "Description" 
    10121076msgstr "Description" 
    10131077 
    10141078#: smarty.txt:121 smarty.txt:134 smarty.txt:137 smarty.txt:143 smarty.txt:131 
     1079#: smarty.txt:132 smarty.txt:130 
    10151080msgid "Map URL" 
    10161081msgstr "Adresse URL de la carte" 
    10171082 
    10181083#: smarty.txt:122 smarty.txt:135 smarty.txt:138 smarty.txt:144 smarty.txt:132 
     1084#: smarty.txt:133 smarty.txt:131 
    10191085msgid "Street address" 
    10201086msgstr "Adresse" 
    10211087 
    10221088#: smarty.txt:123 smarty.txt:136 smarty.txt:139 smarty.txt:145 smarty.txt:133 
     1089#: smarty.txt:134 smarty.txt:132 
    10231090msgid "Public phone number" 
    10241091msgstr "Num&eacute;ro de t&eacute;l&eacute;phone" 
    10251092 
    10261093#: smarty.txt:124 smarty.txt:137 smarty.txt:140 smarty.txt:146 smarty.txt:134 
     1094#: smarty.txt:135 smarty.txt:133 
    10271095msgid "Public email" 
    10281096msgstr "Courriel" 
    10291097 
    10301098#: smarty.txt:125 smarty.txt:138 smarty.txt:141 smarty.txt:147 smarty.txt:135 
     1099#: smarty.txt:136 smarty.txt:134 
    10311100msgid "Mass transit info" 
    10321101msgstr "Information sur transport en commun" 
    10331102 
    10341103#: smarty.txt:126 smarty.txt:139 smarty.txt:142 smarty.txt:148 smarty.txt:136 
     1104#: smarty.txt:137 smarty.txt:135 
    10351105msgid "Node deployment status" 
    10361106msgstr "Statut de d&eacute;ploiement du point d'acc&egrave;s" 
    10371107 
    10381108#: smarty.txt:129 smarty.txt:143 smarty.txt:148 smarty.txt:154 smarty.txt:142 
     1109#: smarty.txt:141 
    10391110msgid "User ID" 
    10401111msgstr "Nom d'utilisateur" 
     
    10481119msgstr "Modifier un point d'acc&egrave;s" 
    10491120 
    1050 #: ../login/index.php:46 ../classes/User.php:262 
     1121#: ../login/index.php:46 ../classes/User.php:262 ../classes/User.php:282 
     1122#: ../classes/User.php:281 
    10511123msgid "Sorry, your " 
    10521124msgstr "D&eacute;sol&eacute;, votre p&eacute;riode de validation de " 
    10531125 
    1054 #: ../login/index.php:46 ../classes/User.php:262 
     1126#: ../login/index.php:46 ../classes/User.php:262 ../classes/User.php:282 
     1127#: ../classes/User.php:281 
    10551128msgid "" 
    10561129" minutes grace period to retrieve your email and validate your account has " 
     
    10631136"compte. Pour de l'aide, veuillez " 
    10641137 
    1065 #: ../login/index.php:46 ../classes/User.php:262 
     1138#: ../login/index.php:46 ../classes/User.php:262 ../classes/User.php:282 
     1139#: ../classes/User.php:281 
    10661140msgid "click here." 
    10671141msgstr "cliquer ici." 
    10681142 
    1069 #: smarty.txt:52 smarty.txt:48 smarty.txt:38 
     1143#: smarty.txt:52 smarty.txt:48 smarty.txt:38 smarty.txt:37 
    10701144msgid "I have trouble connecting and I would like some help" 
    10711145msgstr "" 
     
    11601234"aurez un acc&egrave;s complet gratuit &agrave; l'Internet" 
    11611235 
    1162 #: smarty.txt:129 smarty.txt:132 smarty.txt:138 smarty.txt:126 
     1236#: smarty.txt:129 smarty.txt:132 smarty.txt:138 smarty.txt:126 smarty.txt:127 
     1237#: smarty.txt:125 
    11631238msgid "ID" 
    11641239msgstr "" 
    11651240 
    1166 #: smarty.txt:140 smarty.txt:145 smarty.txt:151 smarty.txt:139 
     1241#: smarty.txt:140 smarty.txt:145 smarty.txt:151 smarty.txt:139 smarty.txt:138 
    11671242msgid "Administrators" 
    11681243msgstr "Administrateurs" 
    11691244 
    1170 #: smarty.txt:142 smarty.txt:147 smarty.txt:153 smarty.txt:141 
     1245#: smarty.txt:142 smarty.txt:147 smarty.txt:153 smarty.txt:141 smarty.txt:140 
    11711246msgid "Give a user rights to administer this node" 
    11721247msgstr "Donner &agrave; un utilisateur acc&egrave;s d'administrer ce noeud" 
    11731248 
    1174 #: smarty.txt:144 smarty.txt:149 smarty.txt:155 smarty.txt:143 
     1249#: smarty.txt:144 smarty.txt:149 smarty.txt:155 smarty.txt:143 smarty.txt:142 
    11751250msgid "Add" 
    11761251msgstr "Ajouter" 
     
    12021277msgstr "" 
    12031278 
    1204 #: smarty.txt:143 smarty.txt:149 smarty.txt:137 
     1279#: smarty.txt:143 smarty.txt:149 smarty.txt:137 smarty.txt:138 smarty.txt:136 
    12051280msgid "Add new node" 
    12061281msgstr "Ajouter un nouveau noeud" 
    12071282 
    1208 #: smarty.txt:144 smarty.txt:150 smarty.txt:138 
     1283#: smarty.txt:144 smarty.txt:150 smarty.txt:138 smarty.txt:139 smarty.txt:137 
    12091284msgid "Update node" 
    12101285msgstr "Mettre &agrave; jour le noeud" 
     
    12161291"donn&eacute;es" 
    12171292 
    1218 #: ../change_password.php:36 
     1293#: ../change_password.php:36 ../change_password.php:39 
    12191294msgid "You MUST fill in all the fields." 
    12201295msgstr "Vous DEVEZ remplir tous les champs" 
     
    13161391msgstr "Canal: " 
    13171392 
    1318 #: smarty.txt:109 smarty.txt:90 
     1393#: smarty.txt:109 smarty.txt:90 smarty.txt:88 
    13191394msgid "Username" 
    13201395msgstr "Nom d'usager" 
     
    13371412#: ../classes/AuthenticatorRadius.php:168 
    13381413#: ../classes/AuthenticatorRadius.php:185 
     1414#: ../classes/AuthenticatorRadius.php:166 
     1415#: ../classes/AuthenticatorRadius.php:183 
    13391416msgid "Login successfull" 
    13401417msgstr "Session d&eacutemarr&eacute correctement" 
     
    13421419#: ../classes/AuthenticatorRadius.php:95 
    13431420#: ../classes/AuthenticatorRadius.php:106 
     1421#: ../classes/AuthenticatorRadius.php:104 
    13441422msgid "Invalid RADIUS encryption method." 
    13451423msgstr "M&eacute;thode d'encryption RADIUS invalide." 
     
    13471425#: ../classes/AuthenticatorRadius.php:130 
    13481426#: ../classes/AuthenticatorRadius.php:141 
     1427#: ../classes/AuthenticatorRadius.php:139 
    13491428msgid "Could not initiate PEAR RADIUS Auth class : " 
    13501429msgstr "Le syst&egrave;me n'a pu initialiser la classe PEAR RADIUS." 
     
    13521431#: ../classes/AuthenticatorRadius.php:139 
    13531432#: ../classes/AuthenticatorRadius.php:150 
     1433#: ../classes/AuthenticatorRadius.php:148 
    13541434msgid "Failed to send authentication request to the RADIUS server. : " 
    13551435msgstr "" 
     
    13581438#: ../classes/AuthenticatorRadius.php:180 
    13591439#: ../classes/AuthenticatorRadius.php:191 
     1440#: ../classes/AuthenticatorRadius.php:189 
    13601441msgid "The RADIUS server rejected this username/password combination." 
    13611442msgstr "" 
     
    13661447msgstr "La combinaison nom d'usager / mot de passe est invalide." 
    13671448 
    1368 #: ../classes/User.php:267 
     1449#: ../classes/User.php:267 ../classes/User.php:287 ../classes/User.php:286 
    13691450msgid "Your account is currently valid." 
    13701451msgstr "Votre compte est actuellement valide." 
    13711452 
    1372 #: ../classes/User.php:273 
     1453#: ../classes/User.php:273 ../classes/User.php:293 ../classes/User.php:292 
    13731454msgid "Sorry, your account is not valid: " 
    13741455msgstr "D&eacute;sol&eacute;, votre compte n'est pas valide." 
    13751456 
    13761457#: ../include/schema_validate.php:38 ../include/schema_validate.php:77 
     1458#: ../include/schema_validate.php:40 ../include/schema_validate.php:39 
     1459#: ../include/schema_validate.php:76 
    13771460msgid "" 
    13781461"Unable to retrieve schema version.  The database schema is too old to be " 
     
    13831466"jour." 
    13841467 
    1385 #: ../include/schema_validate.php:50 
     1468#: ../include/schema_validate.php:50 ../include/schema_validate.php:52 
     1469#: ../include/schema_validate.php:51 
    13861470msgid "" 
    13871471"The database schema is not up to date.  Do you want to try to update it?  " 
     
    13921476"&ecirc;tre annul&eacute;e." 
    13931477 
    1394 #: ../include/schema_validate.php:52 
     1478#: ../include/schema_validate.php:52 ../include/schema_validate.php:54 
     1479#: ../include/schema_validate.php:53 
    13951480msgid "Try to update database schema" 
    13961481msgstr "" 
    13971482"Tenter de mettre &agrave; jour le sch&eacute;ma de la base de donn&eacute;es." 
    13981483 
    1399 #: ../include/schema_validate.php:53 
     1484#: ../include/schema_validate.php:53 ../include/schema_validate.php:55 
     1485#: ../include/schema_validate.php:54 
    14001486msgid "Yes, I am sure:" 
    14011487msgstr "Oui, je suis certain:" 
    14021488 
    1403 #: ../include/schema_validate.php:71 
     1489#: ../include/schema_validate.php:71 ../include/schema_validate.php:72 
    14041490msgid "Trying to update the database schema." 
    14051491msgstr "" 
     
    14111497msgstr "Veuillez entrer un nom d'usager et un mot de passe" 
    14121498 
    1413 #: smarty.txt:30 smarty.txt:43 
     1499#: smarty.txt:30 smarty.txt:43 smarty.txt:96 smarty.txt:111 
    14141500msgid "Network" 
    14151501msgstr "R&eacute;seau" 
    14161502 
    1417 #: smarty.txt:89 
     1503#: smarty.txt:89 smarty.txt:87 
    14181504msgid "Users Online" 
    14191505msgstr "Usagers en ligne" 
    14201506 
    1421 #: ../classes/User.php:358 
    1422 msgid "" 
    1423 "Hello,<br>You have requested that the authentication server send you your " 
    1424 "username:<br>Username: " 
    1425 msgstr "" 
    1426 "Bonjour,<br>Vous avez demand&eacute; au syst&egrave;me de vous envoyer votre " 
    1427 "nom d'utilisateur:<br>Nom d'utilisateur: " 
    1428  
    1429 #: ../classes/User.php:358 ../classes/User.php:401 
    1430 msgid "<br><br>Have a nice day,<br>The Team" 
    1431 msgstr "<br><br>Bonne journ&eacute;e,<br>L'&eacute;quipe" 
    1432  
    1433 #: ../classes/User.php:382 
    1434 msgid "Hello,<br>Please follow the link below to validate your account.<br>" 
    1435 msgstr "" 
    1436 "Bonjour,<br>Veuillez cliquer sur le lien ci-dessous pour compl&eacute;ter " 
    1437 "votre enregistrement.<br>" 
    1438  
    1439 #: ../classes/User.php:382 
    1440 msgid "<br><br>Thank you,<br>The Team." 
    1441 msgstr "<br><br>Merci,<br>L'&eacute;quipe." 
    1442  
    1443 #: ../classes/User.php:401 
    1444 msgid "" 
    1445 "Hello,<br>You have requested that the authentication server send you a new " 
    1446 "password:<br>Username: " 
    1447 msgstr "" 
    1448 "Bonjour,<br>Vous avez demand&eacute; au syst&egrave;me de vous envoyer un " 
    1449 "nouveau mot de passe. <br>Nom d'utilisateur: " 
    1450  
    1451 #: ../config.php:111 
     1507#: ../classes/User.php:358 ../classes/User.php:378 ../classes/User.php:377 
     1508msgid "" 
     1509"Hello,\n" 
     1510"You have requested that the authentication server send you your username:\n" 
     1511"Username: " 
     1512msgstr "" 
     1513"Bonjour,\n" 
     1514"Vous avez demandé au système de vous envoyer votre nom d'utilisateur:\n" 
     1515"Nom d'utilisateur: " 
     1516 
     1517#: ../classes/User.php:358 ../classes/User.php:401 ../classes/User.php:378 
     1518#: ../classes/User.php:421 ../classes/User.php:377 ../classes/User.php:420 
     1519msgid "" 
     1520"\n" 
     1521"\n" 
     1522"Have a nice day,\n" 
     1523"The Team" 
     1524msgstr "" 
     1525"\n" 
     1526"\n" 
     1527"Bonne journée, de la part de tout l'équipe" 
     1528 
     1529#: ../classes/User.php:382 ../classes/User.php:402 ../classes/User.php:401 
     1530msgid "" 
     1531"Hello,\n" 
     1532"Please follow the link below to validate your account.\n" 
     1533msgstr "" 
     1534"Bonjour,\n" 
     1535"Veuillez cliquer sur le lien ci-dessous pour compléter votre " 
     1536"enregistrement.\n" 
     1537 
     1538#: ../classes/User.php:382 ../classes/User.php:402 ../classes/User.php:401 
     1539msgid "" 
     1540"\n" 
     1541"\n" 
     1542"Thank you,\n" 
     1543"The Team." 
     1544msgstr "" 
     1545"\n" 
     1546"\n" 
     1547"Merci, de la part de tout l'équipe" 
     1548 
     1549#: ../classes/User.php:401 ../classes/User.php:421 ../classes/User.php:420 
     1550msgid "" 
     1551"Hello,\n" 
     1552"You have requested that the authentication server send you a new password:\n" 
     1553"Username: " 
     1554msgstr "" 
     1555"Bonjour,\n" 
     1556"Vous avez demandé au système de vous envoyer un nouveau mot de passe. \n" 
     1557"Nom d'utilisateur: " 
     1558 
     1559#: ../config.php:111 ../classes/User.php:380 ../classes/User.php:400 
     1560#: ../classes/User.php:399 
    14521561msgid " new user validation" 
    14531562msgstr " validation de l'enregistrement" 
    14541563 
    1455 #: ../config.php:113 
     1564#: ../config.php:113 ../classes/User.php:400 ../classes/User.php:420 
     1565#: ../classes/User.php:419 
    14561566msgid " new password request" 
    14571567msgstr " demande de changement de mot de passe" 
    14581568 
    1459 #: ../config.php:114 
     1569#: ../config.php:114 ../classes/User.php:357 ../classes/User.php:377 
     1570#: ../classes/User.php:376 
    14601571msgid " lost username request" 
    14611572msgstr " demande de nom d'utilisateur perdu" 
    14621573 
    1463 #: ../classes/User.php:401 
    1464 msgid "<br>Password: " 
    1465 msgstr "<br>Mot de passe: " 
     1574#: ../classes/User.php:401 ../classes/User.php:421 ../classes/User.php:420 
     1575msgid "" 
     1576"\n" 
     1577"Password: " 
     1578msgstr "" 
     1579"\n" 
     1580"Mot de passe: " 
     1581 
     1582#: ../change_password.php:45 ../lost_password.php:42 ../lost_username.php:37 
     1583#: ../resend_validation.php:40 ../signup.php:88 
     1584msgid "Sorry, this network does not exist !" 
     1585msgstr "Désolé ce réseau n'existe pas !" 
     1586 
     1587#: ../lost_password.php:53 
     1588msgid "This username or email could not be found in our database" 
     1589msgstr "" 
     1590"Ce nom d'utilisateur ou courriel n'a pu être trouvé dans notre base de " 
     1591"données." 
     1592 
     1593#: ../lost_username.php:45 
     1594msgid "This email could not be found in our database" 
     1595msgstr "Ce courriel n'a pu être trouvé dans notre base de données." 
     1596 
     1597#: ../resend_validation.php:45 
     1598msgid "This username could not be found in our database" 
     1599msgstr "Ce nom d'utilisateur n'a pu être trouvé dans notre base de données." 
  • trunk/wifidog-auth/wifidog/login/index.php

    r517 r530  
    2323/**@file 
    2424 * Login page 
    25  * @author Copyright (C) 2004 Benoit Grgoire et Philippe April 
     25 * @author Copyright (C) 2004 Benoit Grégoire et Philippe April 
    2626 */ 
    2727define('BASEPATH', '../'); 
     
    6363isset ($AUTH_SOURCE_ARRAY) && $smarty->assign('auth_sources', $AUTH_SOURCE_ARRAY); 
    6464// Pass the account_origin along, if it's set 
    65 isset ($_REQUEST["auth_source"]) && $smarty->assign('auth_source', $_REQUEST["auth_source"]); 
     65isset ($_REQUEST["auth_source"]) && $smarty->assign('selected_auth_source', $_REQUEST["auth_source"]); 
    6666 
    6767if (isset ($_REQUEST['gw_id'])) { 
  • trunk/wifidog-auth/wifidog/lost_password.php

    r517 r530  
    2222  /**@file 
    2323   * Login page 
    24    * @author Copyright (C) 2004 Benoit Grgoire et Philippe April 
     24   * @author Copyright (C) 2004 Benoit Grégoire et Philippe April 
    2525   */ 
    2626define('BASEPATH','./'); 
     
    3535        $username = $db->EscapeString($_REQUEST['username']); 
    3636        $email = $db->EscapeString($_REQUEST['email']); 
     37        // If the source is present and that it's in our AUTH_SOURCE_ARRAY, save it to a var for later use 
     38                $_REQUEST['auth_source'] && in_array($_REQUEST['auth_source'], array_keys($AUTH_SOURCE_ARRAY)) && $account_origin = $_REQUEST['auth_source']; 
    3739 
    3840        try { 
     41                if(empty($account_origin)) 
     42                                throw new Exception(_("Sorry, this network does not exist !")); 
     43                                 
    3944                // Get a list of users associated with either a username of an e-mail 
    40             $username && $users_list = User::getUsersByUsername($username); 
    41             $email && $users_list = User::getUsersByEmail($email); 
     45            $username && $user = User::getUserByUsernameAndOrigin($username, $account_origin); 
     46            $email && $user = User::getUserByEmailAndOrigin($email, $account_origin); 
    4247             
    4348            // In the case that both previous function calls failed to return a users list 
    4449            // Throw an exception 
    45             if(!empty($users_list)) 
    46                     foreach($users_list as $user) 
    47                         $user->sendLostPasswordEmail(); 
     50            if($user != null) 
     51                    $user->sendLostPasswordEmail(); 
    4852                else 
    49                         throw new Exception(_("user_id '{$object_id_str}' could not be found in the database")); 
     53                        throw new Exception(_("This username or email could not be found in our database")); 
    5054                 
    5155            $smarty->assign('message', _('A new password has been emailed to you.')); 
     
    5862} 
    5963 
     64// Add the auth servers list to smarty variables 
     65$sources = array (); 
     66// Preserve keys 
     67foreach (array_keys($AUTH_SOURCE_ARRAY) as $auth_source_key) 
     68        if ($AUTH_SOURCE_ARRAY[$auth_source_key]['authenticator']->isRegistrationPermitted()) 
     69                $sources[$auth_source_key] = $AUTH_SOURCE_ARRAY[$auth_source_key]; 
     70 
     71isset ($sources) && $smarty->assign('auth_sources', $sources); 
     72// Pass the account_origin along, if it's set 
     73isset ($_REQUEST["auth_source"]) && $smarty->assign('selected_auth_source', $_REQUEST["auth_source"]); 
     74 
    6075$smarty->display("templates/lost_password.html"); 
    6176?> 
  • trunk/wifidog-auth/wifidog/lost_username.php

    r517 r530  
    2222  /**@file 
    2323   * Login page 
    24    * @author Copyright (C) 2004 Benoit Grgoire et Philippe April 
     24   * @author Copyright (C) 2004 Benoit Grégoire et Philippe April 
    2525   */ 
    2626define('BASEPATH','./'); 
     
    3030 
    3131if (isset($_REQUEST["submit"])) { 
     32        // If the source is present and that it's in our AUTH_SOURCE_ARRAY, save it to a var for later use 
     33        $_REQUEST['auth_source'] && in_array($_REQUEST['auth_source'], array_keys($AUTH_SOURCE_ARRAY)) && $account_origin = $_REQUEST['auth_source']; 
     34         
    3235    try { 
     36        if(empty($account_origin)) 
     37                                throw new Exception(_("Sorry, this network does not exist !")); 
     38                                 
    3339        if (!$_REQUEST["email"]) 
    3440            throw new Exception(_("Please specify an email address")); 
    3541     
    3642        // Get a list of User objects and send mail messages to them. 
    37         $users_list = User::getUsersByEmail($_REQUEST['email']); 
    38         foreach($users_list as $user) 
    39                 $user->sendLostUsername(); 
     43        $user = User::getUserByEmailAndOrigin($_REQUEST['email'], $account_origin); 
     44        if($user == null) 
     45                throw new Exception(_("This email could not be found in our database")); 
     46        $user->sendLostUsername(); 
    4047                 
    4148        $smarty->assign("message", _("Your username has been emailed to you.")); 
     
    4754} 
    4855 
     56// Add the auth servers list to smarty variables 
     57$sources = array (); 
     58// Preserve keys 
     59foreach (array_keys($AUTH_SOURCE_ARRAY) as $auth_source_key) 
     60        if ($AUTH_SOURCE_ARRAY[$auth_source_key]['authenticator']->isRegistrationPermitted()) 
     61                $sources[$auth_source_key] = $AUTH_SOURCE_ARRAY[$auth_source_key]; 
     62 
     63isset ($sources) && $smarty->assign('auth_sources', $sources); 
     64// Pass the account_origin along, if it's set 
     65isset ($_REQUEST["auth_source"]) && $smarty->assign('selected_auth_source', $_REQUEST["auth_source"]); 
     66 
    4967$smarty->display("templates/lost_username.html"); 
    5068?> 
  • trunk/wifidog-auth/wifidog/resend_validation.php

    r517 r530  
    2222  /**@file 
    2323   * Login page 
    24    * @author Copyright (C) 2004 Benoit Grgoire et Philippe April 
     24   * @author Copyright (C) 2004 Benoit Grégoire et Philippe April 
    2525   */ 
    2626define('BASEPATH','./'); 
     
    3333        $smarty->assign("error", _("Please specify a username")); 
    3434    } else { 
     35        // If the source is present and that it's in our AUTH_SOURCE_ARRAY, save it to a var for later use 
     36                $_REQUEST['auth_source'] && in_array($_REQUEST['auth_source'], array_keys($AUTH_SOURCE_ARRAY)) && $account_origin = $_REQUEST['auth_source']; 
     37                 
    3538        try { 
     39                if(empty($account_origin)) 
     40                                throw new Exception(_("Sorry, this network does not exist !")); 
     41                         
    3642                // Get a list of users with this username 
    37             $users_list = User::getUsersByUsername($_REQUEST['username']); 
    38             foreach($users_list as $user) 
    39                 $user->sendValidationEmail(); 
     43            $user = User::getUserByUsernameAndOrigin($_REQUEST['username'], $account_origin); 
     44            if($user == null) 
     45                throw new Exception(_("This username could not be found in our database"));  
     46            $user->sendValidationEmail(); 
    4047                 
    4148            $smarty->assign('message', _("An email with confirmation instructions was sent to your email address.")); 
     
    4855} 
    4956 
     57// Add the auth servers list to smarty variables 
     58$sources = array (); 
     59// Preserve keys 
     60foreach (array_keys($AUTH_SOURCE_ARRAY) as $auth_source_key) 
     61        if ($AUTH_SOURCE_ARRAY[$auth_source_key]['authenticator']->isRegistrationPermitted()) 
     62                $sources[$auth_source_key] = $AUTH_SOURCE_ARRAY[$auth_source_key]; 
     63                 
     64isset ($sources) && $smarty->assign('auth_sources', $sources); 
     65// Pass the account_origin along, if it's set 
     66isset ($_REQUEST["auth_source"]) && $smarty->assign('selected_auth_source', $_REQUEST["auth_source"]); 
     67 
    5068$smarty->display("templates/resend_validation.html"); 
    5169?> 
  • trunk/wifidog-auth/wifidog/signup.php

    r516 r530  
    11<?php 
    2   // $Id$ 
    3   /********************************************************************\ 
    4    * This program is free software; you can redistribute it and/or    * 
    5    * modify it under the terms of the GNU General Public License as   * 
    6    * published by the Free Software Foundation; either version 2 of   * 
    7    * the License, or (at your option) any later version.              * 
    8    *                                                                  * 
    9    * This program is distributed in the hope that it will be useful,  * 
    10    * but WITHOUT ANY WARRANTY; without even the implied warranty of   * 
    11    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    * 
    12    * GNU General Public License for more details.                     * 
    13    *                                                                  * 
    14    * You should have received a copy of the GNU General Public License* 
    15    * along with this program; if not, contact:                        * 
    16    *                                                                  * 
    17    * Free Software Foundation           Voice:  +1-617-542-5942       * 
    18    * 59 Temple Place - Suite 330        Fax:    +1-617-542-2652       * 
    19    * Boston, MA  02111-1307,  USA       gnu@gnu.org                   * 
    20    *                                                                  * 
    21    \********************************************************************/ 
    22   /**@file 
    23    * Login page 
    24    * @author Copyright (C) 2004 Benoit Gr�goire et Philippe April 
    25    */ 
    26 define('BASEPATH','./'); 
     2 
     3// $Id$ 
     4/********************************************************************\ 
     5 * This program is free software; you can redistribute it and/or    * 
     6 * modify it under the terms of the GNU General Public License as   * 
     7 * published by the Free Software Foundation; either version 2 of   * 
     8 * the License, or (at your option) any later version.              * 
     9 *                                                                  * 
     10 * This program is distributed in the hope that it will be useful,  * 
     11 * but WITHOUT ANY WARRANTY; without even the implied warranty of   * 
     12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    * 
     13 * GNU General Public License for more details.                     * 
     14 *                                                                  * 
     15 * You should have received a copy of the GNU General Public License* 
     16 * along with this program; if not, contact:                        * 
     17 *                                                                  * 
     18 * Free Software Foundation           Voice:  +1-617-542-5942       * 
     19 * 59 Temple Place - Suite 330        Fax:    +1-617-542-2652       * 
     20 * Boston, MA  02111-1307,  USA       gnu@gnu.org                   * 
     21 *                                                                  * 
     22 \********************************************************************/ 
     23/**@file 
     24 * Login page 
     25 * @author Copyright (C) 2004 Benoit Grégoire et Philippe April 
     26 */ 
     27define('BASEPATH', './'); 
    2728require_once BASEPATH.'include/common.php'; 
    2829require_once BASEPATH.'include/common_interface.php'; 
    2930require_once BASEPATH.'classes/User.php'; 
    3031 
    31 if(defined("CUSTOM_SIGNUP_URL")){ 
     32if (defined("CUSTOM_SIGNUP_URL")) 
     33{ 
    3234        header("Location: ".CUSTOM_SIGNUP_URL."?gw=".base64_encode($_SERVER['REQUEST_URI'])); 
    33         exit;    
     35        exit; 
    3436} 
    3537 
    36 function validate_username($username) { 
    37     if (!isset($username) || !$username) 
    38         throw new Exception(_('Username is required.')); 
     38function validate_username($username) 
     39{ 
     40        if (!isset ($username) || !$username) 
     41                throw new Exception(_('Username is required.')); 
    3942 
    40     if (!ereg("^[0-9a-zA-Z_]*$", $username)) 
    41         throw new Exception(_('Username contains invalid characters.')); 
     43        if (!ereg("^[0-9a-zA-Z_]*$", $username)) 
     44                throw new Exception(_('Username contains invalid characters.')); 
    4245} 
    4346 
    44 function validate_email($email) { 
    45     if (!isset($email) || !$email) 
    46         throw new Exception(_("A valid email address is required.")); 
     47function validate_email($email) 
     48{ 
     49        if (!isset ($email) || !$email) 
     50                throw new Exception(_("A valid email address is required.")); 
    4751 
    48     if (!ereg("^.*@.*\..*$", $email)) 
    49         throw new Exception(_("The email address must be of the form user@domain.com.")); 
     52        if (!ereg("^.*@.*\..*$", $email)) 
     53                throw new Exception(_("The email address must be of the form user@domain.com.")); 
    5054} 
    5155 
    52 function validate_passwords($password, $password_again) { 
    53     if (!isset($password) || !$password) 
    54         throw new Exception(_("A password of at least 6 characters is required.")); 
     56function validate_passwords($password, $password_again) 
     57{ 
     58        if (!isset ($password) || !$password) 
     59                throw new Exception(_("A password of at least 6 characters is required.")); 
    5560 
    56     if (!ereg("^[0-9a-zA-Z]*$", $password)) 
    57         throw new Exception(_("Password contains invalid characters.")); 
     61        if (!ereg("^[0-9a-zA-Z]*$", $password)) 
     62                throw new Exception(_("Password contains invalid characters.")); 
    5863 
    59     if (!isset($password_again)) 
    60         throw new Exception(_("You must type your password twice.")); 
     64        if (!isset ($password_again)) 
     65                throw new Exception(_("You must type your password twice.")); 
    6166 
    62     if ($password != $password_again) 
    63         throw new Exception(_("Passwords do not match.")); 
     67        if ($password != $password_again) 
     68                throw new Exception(_("Passwords do not match.")); 
    6469 
    65     if (strlen($password) < 6) 
    66         throw new Exception(_("Password is too short, it must be 6 characters minimum.")); 
     70        if (strlen($password) < 6) 
     71                throw new Exception(_("Password is too short, it must be 6 characters minimum.")); 
    6772} 
    6873 
    69 if (isset($_REQUEST["submit"])) { 
    70     $username       = trim($_REQUEST['username']); 
    71     $email          = trim($_REQUEST['email']); 
    72     $password       = trim($_REQUEST['password']); 
    73     $password_again = trim($_REQUEST['password_again']); 
    74     $smarty->assign('username', $username); 
    75     $smarty->assign('email',    $email); 
     74if (isset ($_REQUEST["submit"])) 
     75{ 
     76        $username = trim($_REQUEST['username']); 
     77        $email = trim($_REQUEST['email']); 
     78        $password = trim($_REQUEST['password']); 
     79        $password_again = trim($_REQUEST['password_again']); 
     80        $smarty->assign('username', $username); 
     81        $smarty->assign('email', $email); 
     82        // If the source is present and that it's in our AUTH_SOURCE_ARRAY, save it to a var for later use 
     83        $_REQUEST['auth_source'] && in_array($_REQUEST['auth_source'], array_keys($AUTH_SOURCE_ARRAY)) && $account_origin = $_REQUEST['auth_source']; 
    7684 
    77     try { 
    78         validate_username($username); 
    79         validate_email($email); 
    80         validate_passwords($password, $password_again); 
     85        try 
     86        { 
     87                if(empty($account_origin)) 
     88                        throw new Exception(_("Sorry, this network does not exist !")); 
     89                         
     90                validate_username($username); 
     91                validate_email($email); 
     92                validate_passwords($password, $password_again); 
    8193 
    82         if (User::UserExists($username)) 
    83             throw new Exception(_("Sorry, a user account is already associated to this username. Pick another one.")); 
     94                if (User :: getUserByUsernameAndOrigin($username, $account_origin)) 
     95                        throw new Exception(_("Sorry, a user account is already associated to this username. Pick another one.")); 
    8496 
    85         if (User::EmailExists($email)) 
    86             throw new Exception(_("Sorry, a user account is already associated to this email address.")); 
     97                if (User :: getUserByEmailAndOrigin($email, $account_origin)) 
     98                        throw new Exception(_("Sorry, a user account is already associated to this email address.")); 
    8799 
    88         $user = User::CreateUser(get_guid(), $username, LOCAL_USER_ACCOUNT_ORIGIN, $email, $password); 
    89         $user->sendValidationEmail(); 
    90         $smarty->assign('message', _('An email with confirmation instructions was sent to your email address.  Your account has been granted 15 minutes of access to retrieve your email and validate your account.  You may now open a browser window and go to any remote Internet address to obtain the login page.')); 
    91         $smarty->display("templates/validate.html"); 
    92         exit; 
    93     } catch (Exception $e) { 
    94         $smarty->assign('error', $e->getMessage()); 
    95     } 
     100                $user = User :: CreateUser(get_guid(), $username, $account_origin, $email, $password); 
     101                $user->sendValidationEmail(); 
     102                $smarty->assign('message', _('An email with confirmation instructions was sent to your email address.  Your account has been granted 15 minutes of access to retrieve your email and validate your account.  You may now open a browser window and go to any remote Internet address to obtain the login page.')); 
     103                $smarty->display("templates/validate.html"); 
     104                exit; 
     105        } 
     106        catch (Exception $e) 
     107        { 
     108                $smarty->assign('error', $e->getMessage()); 
     109        } 
    96110} 
     111 
     112// Add the auth servers list to smarty variables 
     113$sources = array (); 
     114// Preserve keys 
     115foreach (array_keys($AUTH_SOURCE_ARRAY) as $auth_source_key) 
     116        if ($AUTH_SOURCE_ARRAY[$auth_source_key]['authenticator']->isRegistrationPermitted()) 
     117                $sources[$auth_source_key] = $AUTH_SOURCE_ARRAY[$auth_source_key]; 
     118 
     119isset ($sources) && $smarty->assign('auth_sources', $sources); 
     120// Pass the account_origin along, if it's set 
     121isset ($_REQUEST["auth_source"]) && $smarty->assign('selected_auth_source', $_REQUEST["auth_source"]); 
    97122 
    98123$smarty->display("templates/signup.html"); 
    99124?> 
     125 
  • trunk/wifidog-auth/wifidog/templates/change_password.html

    r366 r530  
    55        <form name="form" method="post"> 
    66        <table> 
     7        {include file="templates/auth_sources_selection.html"} 
    78        <tr> 
    89            <td>{"Your username"|_}:</td> 
  • trunk/wifidog-auth/wifidog/templates/header.html

    r402 r530  
    22<html> 
    33<head> 
    4 <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'> 
     4<meta http-equiv='Content-Type' content='text/html; charset=utf-8'> 
    55<meta http-equiv='Pragma' CONTENT='no-cache'> 
    66<meta http-equiv='Expires' CONTENT='-1'> 
  • trunk/wifidog-auth/wifidog/templates/header_small.html

    r415 r530  
    22<html> 
    33<head> 
    4 <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'> 
     4<meta http-equiv='Content-Type' content='text/html; charset=utf-8'> 
    55<meta http-equiv='Pragma' CONTENT='no-cache'> 
    66<meta http-equiv='Expires' CONTENT='-1'> 
  • trunk/wifidog-auth/wifidog/templates/login.html

    r523 r530  
    1111            <input type="hidden" name="gw_id" value="{$gw_id}"> 
    1212        <table> 
    13  
    14         <tr> 
    15                 <td>{"Network"|_}:</td> 
    16                 <td> 
    17                         <select name="auth_source"> 
    18                         {foreach key=key item=source from=$auth_sources} 
    19                                 {if $auth_source == $key}  
    20                                 <option SELECTED label="{$source.name}" value="{$key}">{$source.name}</option> 
    21                                 {else} 
    22                                 <option label="{$source.name}" value="{$key}">{$source.name}</option> 
    23                                 {/if} 
    24                                 {/foreach} 
    25                                 </select> 
    26                 </td> 
    27         </tr> 
    28  
     13        {include file="templates/auth_sources_selection.html"} 
    2914        <tr> 
    3015            <td>{"Username (or email)"|_}:</td> 
  • trunk/wifidog-auth/wifidog/templates/login_virtual.html

    r523 r530  
    99        <form name="login_form" method="post"> 
    1010        <table> 
    11  
    12         <tr> 
    13                 <td>{"Network"|_}:</td> 
    14                 <td> 
    15                         <select name="auth_source"> 
    16                         {foreach key=key item=source from=$auth_sources} 
    17                                 {if $auth_source == $key}  
    18                                 <option SELECTED label="{$source.name}" value="{$key}">{$source.name}</option> 
    19                                 {else} 
    20                                 <option label="{$source.name}" value="{$key}">{$source.name}</option> 
    21                                 {/if} 
    22                                 {/foreach} 
    23                                 </select> 
    24                 </td> 
    25         </tr> 
    26  
     11        {include file="templates/auth_sources_selection.html"} 
    2712        <tr> 
    2813            <td>{"Username (or email)"|_}:</td> 
  • trunk/wifidog-auth/wifidog/templates/lost_password.html

    r366 r530  
    55        <form name="form" method="post"> 
    66        <table> 
     7        {include file="templates/auth_sources_selection.html"} 
    78        <tr> 
    89            <td>{"Your username"|_}:</td> 
  • trunk/wifidog-auth/wifidog/templates/lost_username.html

    r366 r530  
    55        <form name="form" method="post"> 
    66        <table> 
     7        {include file="templates/auth_sources_selection.html"} 
    78        <tr> 
    89            <td>{"Your email address"|_}:</td> 
  • trunk/wifidog-auth/wifidog/templates/resend_validation.html

    r366 r530  
    55        <form name="form"> 
    66        <table> 
     7        {include file="templates/auth_sources_selection.html"} 
    78        <tr> 
    89            <td>{"Your username"|_}:</td> 
  • trunk/wifidog-auth/wifidog/templates/signup.html

    r387 r530  
    55        <form name="signup_form" method="post"> 
    66        <table> 
     7        {include file="templates/auth_sources_selection.html"} 
    78        <tr> 
    89            <td>{"Username desired"|_}:</td>