Setări opționale
From LimeSurvey Manual
Următoarea secțiune se adresează celor dintre dumneavoastră care ar dori să editeze acele setări de configurare care nu au putut fi modificate cu ajutorul GUI (Graphical User Interface) a instalării LimeSurvey. Vă rugăm să rețineți că toate modificările din directorul rădăcină LimeSurvey se fac pe propriul risc. Cu toate acestea, în cazul în care întâmpinați probleme/aveți nevoie de îndrumare suplimentară, alăturați-vă forumurilor de discuții [1] sau IRC canal pentru ajutor din partea comunității LimeSurvey.
Introducere
Pentru a modifica setările de configurare ale instalării, trebuie să editați setările opționale. Acestea pot fi găsite în /application/config/config-defaults.php, care se află în directorul rădăcină LimeSurvey. Setările implicite ale instalării standard pot fi găsite în config-defaults.php. Unele dintre ele pot fi suprascrise folosind dialogul Setări globale, în timp ce celelalte vor trebui editate manual.
Când are loc o actualizare, doar setările config-defaults.php sunt modificate. Prin urmare, editarea fișierului config.php va salva setările dvs. personalizate.
Pentru a actualiza/a adăuga setările LimeSurvey în /application/config/config.php, trebuie să actualizați matricea de config:
'config'=>array(
'debug'=>0,
'debugsql'=>0,
'LimeSurveySetting'=>'Valoare nouă', // Actualizați configurația implicită LimeSurvey aici
)
Yii setări
LimeSurvey folosește cadrul Yii, care are propriii parametri de configurare în fișierul application/config/internal.php și application/config/config.php. De asemenea, puteți accesa unele setări de configurare specifice ale LimeSurvey prin configurația Yii.
Deoarece matricea config.php este îmbinată cu întreaga configurație, puteți înlocui orice parametri Yii din fișierul config.php.
Setările specifice Yii sunt setate în matricea de componente:
'components' => array(
'db' => array(
....
),
'Setări specifice'=>array(
....
),
),
Setări baze de date
Setările bazei de date sunt scrise în config.php de fișierul de instalare când instalați LimeSurvey pentru prima dată. Dacă este necesar, puteți actualiza această parte a fișierului config.php. Vă rugăm să rețineți că faceți acest lucru pe propriul risc! Consultați și Yii documentație și vă rugăm rețineți că LimeSurvey acceptă numai următoarele tipuri de baze de date: mysql, pgsql, dblib, mssql și sqlsrv.
Setări de sesiune
Puteți seta niște parametri de sesiune în config.php (verificați cele două exemple de mai jos). Puteți decomenta/adăugați partea necesară în config.php. Consultați Yii Documentation pentru alte setări.
Utilizați sesiuni bazate pe tabel
LimeSurvey poate folosi sesiuni bazate pe tabel, găsiți o parte comentată în fișierul implicit generat config.php. Pentru a utiliza sesiunea bazată pe tabel, eliminați // dinaintea fiecărei linii.
'session' => matrice (
'class' => 'application.core.web.DbHttpSession',
'connectionID' => 'db',
'sessionTableName' => '{{sesiuni} }',
),
Actualizare alte sesiuni
Dacă utilizați SSL ('https') pentru instalarea dvs. LimeSurvey, adăugarea următoarelor linii la config.php va crește securitatea sesiunii:
// Setați cookie-ul prin SSL
'session' => array (
'cookieParams' => array(
'secure' => true, // utilizați SSL pentru cookie-uri
'httponly' => true // Cookie-urile nu pot fi utilizate de către alte protocoale - experimentale
),
),
Dacă doriți să reparați domeniul pentru un cookie, utilizați următoarea sintaxă în config.php:
// Setați domeniul pentru cookie
'session' => matrice (
'cookieParams' => matrice(
'domeniu' => '.example.org',
),
),
Dacă aveți mai multe instalări pe același server, poate fi mai rapid și mai ușor să setați un nume de sesiune diferit pentru fiecare instanță LimeSurvey. Acest lucru poate fi necesar pentru IE11 în anumite condiții (consultați problema 12083)
// Setați numele sesiunii
'session' => matrice (
'sessionName' => "LimeSurveyN1",
),
Setări de solicitare
Setările de solicitare sunt importante, dar setările implicite sunt deja optimizate pentru utilizarea LimeSurvey. Pentru a citi mai multe despre ele, consultați Yii Documentation.
De exemplu, configurația setărilor de solicitare LimeSurvey poate fi modificată în următorul mod (pe propriul risc) :
// Dezactivează protecția CSRF
'request' => array(
'enableCsrfValidation'=>false,
),
// Implementați o anumită bază URL
'request' => array(
'hostInfo' => 'http://www.example.org/'
),
// Setați numele domeniului cookie și calea pentru protecția CSRF, calea este folosită dacă aveți instanță diferită pe același domeniu
'request' => array(
'csrfCookie' => array(
'domain' => '.example.com',
'path' => '/limesurvey/',
)
),
Dacă trebuie să actualizați doar adresa URL pentru e-mailurile cu simbol, setați publicurl în fișierul config.php.
Permite utilizarea sondajelor într-un iframe
După ce ați permis Încorporarea Iframe, o soluție 100% fiabilă poate fi garantată numai dacă site-ul de încadrare folosește același domeniu rădăcină. Dacă utilizați LimeSurvey Cloud, acest lucru poate fi realizat utilizând alias de domeniu need-it
Setări URL
Pentru a modifica setările implicite de URL, actualizați urlManager:
// Folosiți adresa URL scurtă
'urlManager' => array(
'urlFormat' => 'cale',
'showScriptName' => false,
),
De asemenea, puteți adăuga .html după id-ul sondajului în felul următor:
// Utilizați adresa URL scurtă
'urlManager' => array(
'urlFormat' => 'cale',
'rules' => matrice (
'<sid:\d+> ' => array('survey/index','urlSuffix'=>'.html','matchValue'=>true),
),
'showScriptName' => fals,
),
Pentru mai multe informații, consultați documentația Yii.
Setări de înregistrare
Yii oferă diferite soluții pentru a genera jurnalele. Pentru a afla mai multe despre ele, consultați subiectul special de logare. LimeSurvey folosește „1” sau „2” în mod implicit, ceea ce permite fiecărui utilizator web să vadă jurnalele. Puteți crea propriile setări folosind Yii direct.
De exemplu, o soluție rapidă pentru a înregistra erori și avertismente în fișiere este:
return array(
'components' => array(
/* O altă componentă aici 'db', de exemplu */
'log' => array(
'routes' => array(
'fileError' => array(
'class' => 'CFileLogRoute',
'levels' => 'avertisment, eroare',
'except' => 'exception.CHttpException .404',
),
),
),
/* O altă parte componentă aici 'urlManager', de exemplu */
),
/* Partea finală (cu ' runtimePath' 'config' de exemplu) */
);
Cale de rulare
Calea de rulare trebuie să fie un director care poate fi citit și scris pentru „utilizatorul web”. Totuși, calea de rulare conține fișiere cu informații potențiale de securitate care se află în zona publică de acces web. LimeSurvey colectează aceste fișiere în directorul temporar al directorului rădăcină LimeSurvey. Pentru a elimina accesul la astfel de date importante, puteți seta calea de rulare în afara accesului web public prin editarea liniilor respective în fișierul /application/config/config.php:
return array(
'components' => array(
[…]
'runtimePath'=>'/var/limesurvey/runtime/',
'config'=>array(
[…]
)
)
)
Setări generale
- sitename: Oferă un nume site-ului dvs. de sondaj. Acest nume va apărea în prezentarea generală a listei de sondaje și în antetul de administrare. Valoarea implicită este „LimeSurvey” și poate fi înlocuită în dialogul global settings sau editată în config.php.
- siteadminemail: Aceasta este adresa de e-mail implicită a administratorul site-ului și este folosit pentru mesajele de sistem și opțiunile de contact. Această setare este folosită numai ca valoare implicită și poate fi înlocuită în dialogul Setări globale.
- siteadminbounce: Aceasta este adresa de e-mail la care vor fi trimise e-mailurile returnate. Această setare este folosită numai ca valoare implicită și poate fi înlocuită de dialogul Setări globale.
- siteadminname: Numele real al administratorului site-ului. Această setare este folosită numai ca valoare implicită și poate fi înlocuită în dialogul Setări globale).
- proxy_host_name: Acesta este numele de gazdă al serverului dumneavoastră proxy (are de menționat dacă sunteți în spatele unui proxy și doriți să actualizați LimeSurvey folosind ComfortUpdate).
- proxy_host_port: Acesta este portul serverului dumneavoastră proxy (trebuie să fie menționat dacă sunteți în spatele unui proxy și doriți să actualizați LimeSurvey folosind ComfortUpdate).
Securitate
- maxLoginAttempt: Acesta este numărul de încercări pe care le are un utilizator pentru a introduce parola corectă înainte ca adresa sa IP să fie blocată/blocata. Valoarea implicită este 3 și poate fi modificată din config.php.
- timeOutTime: Dacă utilizatorul introduce parola incorect pentru<maxLoginAttempt> , ea sau el este blocat pentru<timeOutTime> secunde. Valoarea implicită este de 10 minute și poate fi modificată din config.php.
- maxLoginAttemptParticipants: Acesta este numărul de încercări pe care le are un participant pentru a introduce un token valid înainte de a-și obține Adresă IP blocată/blocat. Valoarea implicită este 3 și poate fi modificată din config.php.
- timeOutParticipants: Dacă participantul introduce incorect jetonul pentru<maxLoginAttemptParticipants> , ea sau el este blocat pentru<timeOutParticipants> secunde. Valoarea implicită este de 10 minute și poate fi modificată din config.php.
- surveyPreview_require_Auth: Setată implicit la true. Dacă setați acest lucru la „fals”, orice persoană vă poate testa sondajul folosind adresa URL a sondajului, fără a se conecta la panoul de administrare și fără a fi nevoie să activeze mai întâi sondajul. Această setare este o valoare implicită și poate fi suprascrisă în dialogul Setări globale sau editată în config.php.
- usercontrolSameGroupPolicy: Setată la true implicit. În mod implicit, utilizatorii non-administratori definiți în interfața de gestionare LimeSurvey vor putea vedea doar utilizatorii pe care îi creează sau utilizatorii care aparțin cel puțin unui același grup. Valoarea implicită poate fi înlocuită în dialogul Setări globale sau editată în config.php.
- filterxsshtml: Această setare permite filtrarea etichetelor html suspecte aflate în sondaje, grupuri și texte cu întrebări și răspunsuri în interfața de administrare. Lăsați acest lucru la „fals” doar dacă aveți încredere absolută în utilizatorii pe care i-ați creat pentru administrarea LimeSurvey și dacă doriți să le permiteți acestor utilizatori să poată folosi Javascript, Flash Movies etc.. Super-administratorii nu au niciodată filtrat HTML . Valoarea implicită poate fi înlocuită în dialogul global settings sau editată în config.php.
- demoMode: Dacă această opțiune este setată la „true” în config.php. , apoi LimeSurvey va intra în modul demonstrativ. Modul demo modifică următoarele lucruri:
- Dezactivează detaliile utilizatorului administrator și schimbarea parolei;
- Dezactivează încărcarea fișierelor în editorul de șabloane;
- Dezactivează trimiterea de invitații și mementouri prin e-mail;!N !** Dezactivează crearea unui dump de bază de date;
- Dezactivează posibilitatea de a modifica următoarele setări globale: numele site-ului, limba implicită, modul editor HTML implicit, filtrul XSS.
- 'forcedsuperadmin:' Matrice de id-uri de utilizator cu toate drepturile pe toate LimeSurvey. Aceste setări pot fi actualizate numai în fișierul config.php. Drepturile acestui utilizator nu pot fi editate în permisiunile globale pentru un utilizator nici măcar de către alt super-administrator forțat. Implicit: utilizatorul cu aceste drepturi este utilizator cu id: 1. Primul utilizator creat imediat după instalare.
- force_ssl: forțează LimeSurvey să ruleze prin HTTPS sau să blocheze HTTPS. Consultați Force HTTPS în GUI de administrare a setărilor globale.
- ssl_emergency_override: Această setare forțează SSL dezactivat. Dacă ați activat HTTPS/SSL în setările globale, dar serverul dvs. nu are HTTPS activat, singura modalitate de a-l dezactiva este prin modificarea directă a unei valori din baza de date. Acest lucru vă permite să forțați dezactivarea HTTPS în timp ce modificați setările globale pentru Force Secure. Acest lucru ar trebui să fie întotdeauna fals, cu excepția situațiilor de urgență în care îl schimbați în adevărat până când remediați problema. Această setare poate fi setată numai prin fișierul config.php.
- ssl_disable_alert: Dezactivați alerta pentru super-administrator despre SSL neforțat, dacă într-adevăr nu puteți sau nu doriți să forțați ssl. Această setare poate fi setată numai prin fișierul config.php.
Resources
- sessionlifetime: Definește timpul în secunde după care expiră o sesiune de sondaj. Se aplică numai dacă utilizați sesiuni de bază de date. Dacă folosiți sesiuni de bază de date, modificați parametrul în config.php sau înlocuiți valoarea implicită din dialogul Setări globale.
- memorylimit: Aceasta determină câtă memorie LimeSurvey poate accesa. „128 MB” este minimul recomandat (MB=Megabyte). Dacă primiți erori de timeout sau aveți probleme la generarea de statistici sau la exportul fișierelor, ridicați această limită la „256 MB” sau mai mare. Dacă serverul dvs. web a stabilit o limită mai mare în config.php, atunci această setare va fi ignorată.
Pentru a crește limita de memorie la 128M, puteți încerca, de asemenea, să adăugați:
- memory_limit = 128M la fișierul php.ini principal al serverului dvs. (recomandat, dacă aveți acces)
- memory_limit = 128M la un fișier php.ini în rădăcina LimeSurvey
- php_value memory_limit 128M într-un fișier .htaccess în rădăcina LimeSurvey
- max_execution_time: Setează numărul de secunde în care un script poate rula. Dacă se ajunge la aceasta, scriptul returnează o eroare fatală. Pentru a putea exporta date și statistici mari ale sondajelor, LimeSurvey încearcă să le seteze implicit la 1200 de secunde. Puteți seta un timp mai mare sau un timp mai mic dacă este necesar. Accesibil numai prin fișierul de configurare php.
Appearance
- dropdownthreshold (Obsolete since 2.50): When "R" is selected for
$dropdowns, the administrator is allowed to set a maximum number of options that will be displayed as radio buttons, before converting back to a dropdown list. If there is a question that has a large number of options, displaying all of them at once as radio buttons can look unwieldy, and can become counter-intuitive to users. Setting this to a maximum of, say 25 (which is the default) means that large lists are easier to be used by the administrators for the survey participant. - repeatheadings: With the Array question type, you'll often have a lot of subquestions, which - when displayed on screen - take up more than one page. This setting lets you decide how many subquestions should be displayed before repeating the header information for the question. A good setting for this is around 15. If you don't want the headings to repeat at all, set this to 0. This setting is overridden in the global settings dialog (New in 2.05 ).
- minrepeatheadings: The minimum number of remaining subquestions that are required before repeating the headings in Array questions. The default value is 3 and it can be edited in config.php.
- defaulttemplate: This setting specifies the default theme used for the 'public list' of surveys. This setting can be overridden in the global settings dialog or edited in config.php.
- defaulthtmleditormode: Sets the default mode for the integrated HTML editor. This setting can be overridden in the global settings dialog or edited in config.php. The valid settings are:
- 'inline' - Inline replacement of fields by an HTML editor. Slow but convenient and user friendly;
- 'popup' - Adds an icon that runs the HTML editor in a popup if needed. Faster, but HTML code is displayed in the form;
- 'none'- No HTML editor;
- column_style: Defines how columns are rendered for survey answers when using display_columns. It can be edited in the config.php file. The valid settings are:
- 'css' - it uses one of the various CSS methods to create columns (see the template style sheet for details);
- 'ul' - the columns are rendered as multiple floated unordered lists (default);
- 'table' - it uses conventional-tables-based layout;
- NULL - it disables the use of columns.
Language & time
- defaultlang: This should be set to the default language to be used in your administration scripts, and also the default setting for language in the public survey list. This setting can be overridden in the global settings dialog or edited in config.php.
- timeadjust: If your web server is in a different time zone to the location where your surveys will be based, put the difference between your server and your home time zone here. For example, I live in Australia, but I use a US web server. The web server is 14 hours behind my local time zone. So my setting here is "14". In other words, it adds 14 hours to the web servers time. This setting is particularly important when surveys timestamp the responses. This setting can be overridden in the global settings dialog or edited in config.php.
Survey behavior
- deletenonvalues: Use this feature with caution. By default (a value of 1), irrelevant questions are NULLed in the database. This ensures that the data in your database is internally consistent. However, there are rare cases where you might want to hold onto irrelevant values, in which case you can set the value to 0. For example, you ask a male person his gender, and he accidentally says 'female' and then answers some female-specific questions (questions that are conditioned on being female, so are only relevant for women). Then, he realizes his mistake, backs up, sets the gender to 'male', and continues with the survey. Now, the female-specific questions are irrelevant. If
$deletenonvalues==1, those irrelevant values will be cleared (NULLed) in the database. If$deletenonvalues==0, his erroneous answers will not be deleted, so they will still be present in the database when you analyze it. - shownoanswer: When a radio button/select type question that contains editable answers (i.e.: List, Array questions) is not mandatory and 'shownoanswer' is set to 1, an additional 'No answer' entry is shown - so that participants may choose to not answer the question. Some people prefer this not to be available. This setting can be overridden from the global settings dialog or edited in config.php. Valid values are:
- '0': No;
- '1': Yes;
- '2': The Survey admin can choose.
- printanswershonorsconditions: This setting determines if the printanswers feature will display entries from questions that were hidden by conditions-branching (Default: 1 = hide answers from questions hidden by conditions).
- hide_groupdescr_allinone: This setting is relevant for all-in-one surveys using conditions . When this is set to 'true', the group name and description is hidden if all questions in the group are hidden. The default value is 'true' - hides group name and description when all questions in the group are hidden by conditions. It can be edited in config.php.
- showpopups: Show popup messages if mandatory or conditional questions have not been answered correctly:
- '2' = defined by Theme option (default)
- '1'= show popup message;
- '0'= show message on page instead;
- '-1'= do not show the message at all (in this case, users will still see the question-specific tips indicating which questions must be answered).
Numerical question type behavior
- bFixNumAuto: Numeric fields can be automatically filtered to remove all non numeric values. By default this is enable, you can disable it globally. This settings is related to Fix automatically numeric value in core theme options. It was enable for Yes, disable for Only for expression and No.
- bNumRealValue: Numeric fields used in expression manager can be fixed or not. It's fixed by default. If NUMERIC is a numerical question : disable or 0 : {NUMERIC} with bad caracters send '', enable or 1 : {NUMERIC} send all character entered. This settings is related to Fix automatically numeric value in core theme options. It was enable for Yes and Only for expression and disable for No.
Development and debugging
- debug: With this setting, you set the PHP error reporting to E_ALL. This means that every little notice, warning or error related to the script is shown. This setting should be only switched to '1' if you are trying to debug the application for any reason. If you are a developer, switch it to '2'. Don't switch it to '1' or '2' in production since it might cause path disclosure. The default value is '0' and it can be edited in config.php.
- debugsql: Activate this setting if you want to display all SQL queries executed for the script on the bottom of each page. Very useful for the optimization of the the number of queries. In order to activate it, change the default value to '1' from the config.php file.
- use_asset_manager: By default : debug mode disable asset manager, you can allow you to use asse manager with debug mode enable.
In the case in which you experience an error in the application, we strongly recommend to activate the debug setting in order to get a more detailed error that you can submit with the bug report:
'config'=>array(
'debug'=>2,
'debugsql'=>0,
)
If you work on plugin and need a quick way to dump variables on screen : you can use traceVar function. If debug is set : this function use CWebLogRoute to be shown on HTML page. Usage traceVar($MyVariable)
Email settings
All the settings from below can be overridden in the global settings dialog.
- 'emailmethod: This determines how email messages are being sent. The following options are available:
- 'mail:' it uses internal PHP mailer;
- 'sendmail:' it uses sendmail mailer;
- 'smtp:' it uses SMTP relaying. Use this setting when you are running LimeSurvey on a host that is not your mail server.
- 'emailsmtphost: If you use 'smtp' as
$emailmethod, then you have to put your SMTP-server here. If you are using Google mail you might have to add the port number like $emailsmtphost = 'smtp.gmail.com:465'. - emailsmtpuser: If your SMTP-server needs authentication then set this to your user name, otherwise it must be blank.
- emailsmtppassword: If your SMTP-server needs authentication then set this to your password, otherwise it must be blank.
- emailsmtpssl: Set this to 'ssl' or 'tls' to use SSL/TLS for SMTP connection.
- maxemails: When sending invitations or reminders to survey participants, this setting is used to determine how many emails can be sent in one bunch. Different web servers have different email capacities and if your script takes too long to send a bunch of emails, the script could time out and cause errors. Most web servers can send 100 emails at a time within the default 30 second time limit for a PHP script. If you get script timeout errors when sending large numbers of emails, reduce the number in this setting. Clicking the 'send email invitation' button from the token control toolbar (not the button situated on the right of each token) sends the <maxemails> number of invitations, then it displays a list of the addresses of the recipients and a warning that there are more emails pending than could be sent in one batch. Continue sending emails by clicking below. There are ### emails still to be sent. and provides a "continue button" to proceed with the next batch. I.e., the user determines when to send the next batch after each batch gets emailed. It is not necessary to wait with this screen active. The admin could log out and come back at a later time to send the next batch of invites.
Statistics and response browsing
- filterout_incomplete_answers: Control the default behavior of filtering incomplete answers when browsing or analyzing responses. For a discussion on incomplete responses see our browsing survey results wiki. Since these records can corrupt the statistics, an option is given to switch this filter on or off in several GUI forms. The parameter can be edited in the config.php. The following options are available:
- 'show': Allows you to visualize both complete and incomplete answers;
- 'filter': It shows only complete answers;
- 'incomplete': Show only incomplete answers.
- strip_query_from_referer_url: This setting determines if the referrer URL saves the parameter or not. The default value is 'false' (in this case, the referrer URL saves all parameters). Alternatively, this value can be set to 'true' and the parameter part of the referrer URL will be removed.
- showaggregateddata: when activated, additional statistical values such as the arithmetic mean and standard deviation are shown. Furthermore, the data is aggregated to get a faster overview. For example, results of scale 1+2 and 4+5 are added to have a general ranking like "good" (1/2), "average" (3) and "bad" (4/5). This only affects question types "A" (5 point array) and "5" (5 point choice).
- PDF Export Settings: This feature activates PDF export for printable surveys and Print Answers. The PDF export function is totally experimental and the output is far from being perfect. Unfortunately, no support can be given at the moment - if you want to help to fix it, please get in touch with us.
- 'usepdfexport': Set '0' to disable and '1' to enable;
- 'pdfdefaultfont': It represents the default font that will be used by the pdf export function. The default value is 'auto'. To change it, you have to set it to one of the PDF core fonts.
- 'alternatepdffontfile': It's an array with language keys and their corresponding font. The default font for each language can be replaced in the config.php file;
- 'pdffontsize': it shows the font size for normal texts; For the title of the survey, it is <pdffontsize>+4, while for the group title is <pdffontsize>+2. It can be edited in the config.php file or from the [Global settings|global settings]] dialog;
- 'notsupportlanguages': it includes a list with the languages for which no PDF font was found. The list includes Amharic ('am'), Sinhala ('si'), and Thai ('th'), and it can be found in the config-defaults.php file;
- 'pdforientation': Set 'L' for Landscape or 'P' for portrait format. It can be edited from the config.php file.
- Graph setting
- 'chartfontfile': Sets the font file name that is used to create the statistical charts. The file has to be located in the fonts directory, located in the LimeSurvey root folder. It can be edited in the config.php file;
- 'alternatechartfontfile': It's an array with language keys and their corresponding font. It can be edited in the config.php file.
- showsgqacode: This setting is used at the printable survey feature and defaults to 'false. If you set showsgqacode = 'true';, the IDs of each question - and answer if applicable - will be shown. These IDs match the column heading at the Lime_survey_12345 table, which holds the answer data for a certain survey. These IDs can be used for a code book for manual database queries.
LDAP settings
As this is an extensive topic we have moved LDAP settings to another page.
Authentication
Starting with LimeSurvey 2.05, authentication will be handled by plugins. As a result, the information below might be outdated. See the plugins wiki for most up to date information.
Authentication delegation to the webserver
System administrators may want to have their survey administrators authenticated against a central authentication system (Active Directory, openLdap, Radius, ...) rather than using the internal LimeSurvey database. An easy way to do this is to setup your web server software to use this external authentication system, and then ask LimeSurvey to trust the user identity reported by the web server. In order to enable this feature, you have to:
- set auth_webserver to 'true' in config.php;
- enable authentication from the web server side.
Please note that:
- LimeSurvey will then bypass its own authentication process (by using the login name reported by the web server without asking for a password);
- this can only replace the LimeSurvey GUI authentication system, not the survey invitation system (participant interface).
Authentication delegation with no automatic user import
Please note that Authentication Delegation doesn't bypass the LimeSurvey authorization system by default - meaning that, even if you don't have to manage passwords in LimeSurvey, you still need to define the users in the LimeSurvey database and assign them the correct set of rights in order to let them access the administration panel.
A user is then granted access to LimeSurvey if and only if:
- he has been authenticated to the web server;
- his login name is defined as a user in the LimeSurvey user database (the user is then granted the privileges of the user defined in the LimeSurvey user database).
Authentication delegation with automatic user import
When managing a huge user database, it is sometimes easier to auto-import users in the LimeSurvey database:
- auth_webserver_autocreate_user: If set to 'true', LimeSurvey will try to auto-import users authenticated by the web server but not already in its users DB.
- auth_webserver_autocreate_profile: An array describing the default profile that will be assigned to the user, including the full (fake) name, email, and privileges.
If you want to customize the user profile so that it matches the logged-in user, you'll have to develop a simple function called hook_get_autouserprofile - with this function you can retrieve from a central user account database (for instance, from a LDAP directory) the true full name, names, and email of a particular user. You can even customize his privileges on the system based on the groups he is allocated in the external database.
The hook_get_auth_webserver_profile function takes the user login name as the only argument and can return:
- False or an empty array - in this case the user is denied access to LimeSurvey;
- an array containing all common userprofile entries as described in the
$WebserverAuth_autouserprofile
function hook_get_auth_webserver_profile($user_name)
{
// Retrieve user's data from your database backend (for instance LDAP) here
... get $user_name_from_backend
... get $user_email_from_backend
... get $user_lang_from_backend
... from groups defined in your backend set $user_admin_status_frombackend_0_or_1
return Array(
'full_name' => "$user_name_from_backend",
'email' => "$user_email_from_backend",
'lang' => '$user_lang_from_backend',
'htmleditormode' => 'inline',
'templatelist' => 'default,basic,MyOrgTemplate',
'create_survey' => 1,
'create_user' => 0,
'delete_user' => 0,
'superadmin' => $user_admin_status_frombackend_0_or_1,
'configurator' =>0,
'manage_template' => 0,
'manage_label' => 0);
}
// If user should be denied access, return an empty array
// return Array();
User name mapping
In the case in which some users have an external user name that is different from their LimeSurvey user name, you may find useful to use a user name mapping. This is done in LimeSurvey by using the auth_webserver_user_map parameter. For instance, imagine you don't have an 'admin' user name defined in your external authentication database. Then, in order to login to LimeSurvey as admin, you'll have to map your external user name (let's call it 'myname') to the admin login name in LimeSurvey. The corresponding setup is:
'config'=>array(
...
'auth_webserver_user_map' => array ('myname' => 'admin');
)
After a successful authentication with the 'myname' login and web server password, you'll be directly authorized to use LimeSurvey as the 'admin' user.
This has serious security implications, so use it with care. Also, protect your config.php from write access by the web server.
Use one-time passwords
A user can open the LimeSurvey login page at default.com/limesurvey/admin and type the username and the one-time password which was previously written into the users table (column one_time_pw) by an external application.
This setting has to be turned on config.php file to enable the usage of one-time passwords (default = false).
'config'=>array(
'debug'=>0,
'debugsql'=>0,
'use_one_time_passwords'=>true,
)
More information can be found in the "Manage Users" section.
Encryption settings (New in 4.0.0 )
application/config/security.php file. You can move this settings in config.php if you want or leave in security.php.See data encryption for detail on this feature.
- encryptionkeypair
- encryptionpublickey
- encryptionsecretkey
Advanced url settings
- publicurl: This should be set to the URL location of your 'public scripts'. The public scripts are those located in the "limesurvey" folder (or whatever name you gave to the directory that all the other scripts and directories are kept in). This settings is available in config.php and it is used when LimeSurvey need an absolute url (for example when token emails are sent).
- homeurl: This should be set to the URL location of your administration scripts. These are located in the /limesurvey/admin folder. This should be set to the WEB URL location - for example, http://www.example.com/limesurvey/html/admin. Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the name of your server automatically using a php variable setting -
{$_SERVER['SERVER_NAME']}. In most cases, you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in. - tempurl: This should be set to the URL location of your "/limesurvey/tmp" directory - or to a directory in which you would like LimeSurvey to use to serve temporary files.
- uploadurl: This should be set to the URL location of your "/limesurvey/upload" directory - or to a directory in which you would like LimeSurvey to use to serve uploaded files. This allow you to set uploaded files on another url domain.
Advanced path settings
- homedir: This should be set to the physical disk location of your administration scripts - for example "/home/usr/htdocs/limesurvey/admin". Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the default root path of all your documents using the php variable setting
{$_SERVER['DOCUMENT_ROOT']}. In most cases you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in. - publicdir: This should be set to the physical disk location of your 'public scripts'.
- tempdir: This should be set to the physical disk location of your /limesurvey/tmp directory so that the script can read and write files.
- uploaddir: This should be set to the physical disk location of your /limesurvey/upload directory so that the script can read and write files.
- sCKEditorURL: url of the fckeditor script.
- fckeditexpandtoolbar: defines if the fckeditor toolbar should be opened by default.
- pdfexportdir: This is the directory with the tcpdf.php extensiontcpdf.php.
- pdffonts: This is the directory for the TCPDF fonts.
Other advanced settings
Upload files
- allowedthemeuploads: File types allowed to be uploaded in theme editor
- allowedresourcesuploads: File types allowed to be uploaded in the resources sections, and with the HTML Editor
- allowedfileuploads (New in 4.0.0 ) Global restriction on file type to be uploaded
- magic_database: (New in 3.17.17 ) Allow to use a different MIME database for finfo_open. Can be updated only in config.php file. Example :
/usr/share/misc/magic.mgcfor redhat based linux. - magic_file: (New in 3.17.17 ) Allow to use a different file to get the array of extension by mime type than the included one. Must be a PHP file return an array. Can be updated only in config.php file.
Update
- updatable: This setting is in version.php. Can be true or false. If you set to true : when an super admin user log in : LimeSurvey checks if an update is available and show you a warning. If set to false : no check is done and you can't use ComfortUpdate.